WO2012111872A1 - 물리적 공격을 방어하는 암호화 장치 및 암호화 방법 - Google Patents

물리적 공격을 방어하는 암호화 장치 및 암호화 방법 Download PDF

Info

Publication number
WO2012111872A1
WO2012111872A1 PCT/KR2011/001376 KR2011001376W WO2012111872A1 WO 2012111872 A1 WO2012111872 A1 WO 2012111872A1 KR 2011001376 W KR2011001376 W KR 2011001376W WO 2012111872 A1 WO2012111872 A1 WO 2012111872A1
Authority
WO
WIPO (PCT)
Prior art keywords
encryption key
encryption
module
key module
inverter
Prior art date
Application number
PCT/KR2011/001376
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 EP11858891.2A priority Critical patent/EP2677452B1/en
Priority to ES11858891.2T priority patent/ES2685758T3/es
Priority to CN201180070008.XA priority patent/CN103621006B/zh
Priority to US13/985,765 priority patent/US9014371B2/en
Priority to JP2013554380A priority patent/JP2014506095A/ja
Publication of WO2012111872A1 publication Critical patent/WO2012111872A1/ko
Priority to US14/665,599 priority patent/US9397826B2/en
Priority to US15/187,630 priority patent/US20160301528A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Definitions

  • It relates to the field of digital security, and more particularly to cryptographic devices and methods for managing encryption keys to protect against physical attacks in IC security modules such as smart cards.
  • Smart cards are plastic cards the size of a credit card and include an integrated circuit (IC) that can process and process data.
  • IC integrated circuit
  • Such a smart card has various advantages over a conventional magnetic card, has a data storage capacity of its own, and has a processing unit such as a co-processor along with a microprocessor.
  • an encryption operation is performed by using an encryption algorithm for handling personal information for identification and handling financial settlement information.
  • Some of the known physical attacks include bus probing, test-mode probing, overwriting ROM or EEPROM, depending on the memory characteristics and data storage methods of the EEPROM and ROM used in the hardware security module. (overwriting) attack methods.
  • An encryption apparatus and method that are robust against physical attacks on smart cards are provided.
  • cryptographic devices and methods are provided in which the generated or stored cryptographic keys are not extracted directly in memory. Also provided are cryptographic devices and methods that do not leak through a bus in the IC chip of a smart card.
  • an encryption apparatus for receiving an input data to be encrypted and performing an encryption algorithm using an encryption key, comprising: an encryption key module for providing an encryption key therein, the encryption provided by the encryption key module There is provided an encryption device comprising an encryption module for performing the encryption algorithm using a key.
  • the encryption module may include a plurality of encryption key modules, each providing a different encryption key therein, in this case, the encryption module encryption key module selection unit for selecting any one of the plurality of encryption key modules And an encryption unit that performs the encryption algorithm using an encryption key provided by the selected encryption key module.
  • the encryption key module selecting unit may select an encryption key module corresponding to a predetermined identification index among the plurality of encryption key modules.
  • the encryption module includes a plurality of standard cells, and the plurality of encryption key modules are disposed at random positions during the layout of the plurality of standard cells included in the encryption module.
  • the standard cell may be a standardized element or element block used in the implementation of an encryption module.
  • the encryption module performs the encryption algorithm using an encryption key provided by the encryption key module included in the encryption module, and the encryption key provided by the encryption key module is the encryption. It does not leak out of the module, and no additional encryption key is introduced into the encryption module to perform the encryption algorithm.
  • the encryption key module is a nonvolatile memory module that stores the encryption key generated in advance.
  • the encryption key module is a non-memory module for generating and providing the encryption key.
  • the cryptographic key module intentionally violates the design rules provided in the semiconductor manufacturing process, thereby probablely determining whether a short circuit between nodes in the cryptographic key module is determined, and the cryptographic key module reads whether the short circuit between the nodes exists.
  • the encryption key can be generated and provided according to the result.
  • the node in the cryptographic key module is a conductive layer of a semiconductor, and the design rule is related to the size of a contact or via formed between the conductive layers of the semiconductor, and the cryptographic key module is a conductive layer of the semiconductor.
  • the encryption key may be generated and provided using whether or not a contact or via formed between them shorts the conductive layer.
  • the encryption key module the probability that the contact or via formed between the conductive layers of the semiconductor intentionally violates the design rules provided in the semiconductor manufacturing process and the probability of not shorting the conductive layer. It can have a size of the contact or via, such that the difference is within a predetermined error range.
  • the cryptographic key module has N unit structures for generating a 1-bit digital value using a pair of conductive layers and a contact or via connecting therebetween , N is a natural number.-Generates the N-bit digital value generated through the N unit structures as the encryption key.
  • the cryptographic key module groups the generated N-bit digital values in k units, where k is a natural number, and compares the first group and the second group of the plurality of grouped groups.
  • the digital value representing the first group and the second group is determined as 1 when a value composed of k digital bits included in the first group is greater than a value comprised of k digital bits included in the second group.
  • a digital value representing the first group and the second group may be determined as 0, and a digital value of N / k bits may be generated as the encryption key.
  • the node in the cryptographic key module is a conductive layer of a semiconductor
  • the design rule is associated with a gap between the conductive layers of the semiconductor
  • the cryptographic key module is the semiconductor
  • the encryption key may be generated and provided by using whether or not the conductive layers of the substrate are short-circuited.
  • the cryptographic key module includes N unit cells each outputting a digital value of 1 bit, where N is a natural number, each of the N unit cells
  • the encryption key module may generate and provide an N-bit encryption key by generating a 1-bit digital value based on a semiconductor manufacturing process variation.
  • a first unit cell of the N unit cells includes a first inverter having a first logic threshold and a second inverter having a second logic threshold, wherein the input terminal of the first inverter and the second inverter are provided.
  • the output terminal of the inverter is connected to the first node, the output terminal of the first inverter and the input terminal of the second inverter are connected to the second node, forming a feedback structure, and the first logic threshold and the second logic
  • the thresholds are different from each other based on the semiconductor manufacturing process variation, and a 1-bit digital value corresponding to the first unit cell may be determined according to the logic level of the first node and the logic level of the second node.
  • the cryptographic key module includes N (where N is a natural number) differential amplifiers, wherein the first differential amplifier of the N differential amplifiers comprises: When two input terminals of the first differential amplifier are shorted, the logic levels of the two output terminals of the first differential amplifier are different from each other based on the semiconductor manufacturing process deviation, and the logic levels of the two output terminals are different from each other.
  • a one-bit digital value corresponding to one differential amplifier may be determined so that the cryptographic key module generates and provides an N-bit cryptographic key.
  • the step of receiving the data to be encrypted into the encryption module including an encryption key module for providing an encryption key therein, and performing the encryption algorithm using the encryption key provided by the encryption key module
  • an encryption method comprising the step of encrypting the data.
  • an IC chip for receiving an input data to be encrypted and performing an encryption algorithm using an encryption key includes an encryption key module for providing an encryption key therein, the encryption key module providing An IC chip including an encryption module for performing the encryption algorithm using an encryption key is provided.
  • the IC chip may be embedded in a smart card to perform the encryption algorithm in the application example of the smart card.
  • FIG 1 illustrates an encryption apparatus according to an embodiment of the present invention.
  • FIG 2 illustrates an encryption module according to an embodiment of the present invention.
  • FIG. 3 is a block diagram illustrating an exemplary configuration of an encryption module according to an embodiment of the present invention.
  • FIG. 4 is an exemplary circuit diagram illustrating a concept of a unit cell constituting an encryption key module having a PUF (Physical Unclonable Functions) type that generates an encryption key using a process deviation according to an embodiment of the present invention.
  • PUF Physical Unclonable Functions
  • FIG. 5 is a reference graph for understanding the embodiment of FIG. 4.
  • FIG. 6 is a block diagram illustrating an exemplary implementation of a cryptographic key module according to one embodiment of the invention.
  • FIG. 7 illustrates a unit cell of a cryptographic key module that generates a digital value using process deviations of a differential amplifier, in accordance with an embodiment of the invention.
  • FIG 8 shows an exemplary circuit diagram in which an encryption key module is implemented according to an embodiment of the present invention.
  • FIG. 9 is a conceptual diagram illustrating a principle of generating an encryption key module intentionally violating a semiconductor design rule according to an embodiment of the present invention.
  • FIG. 10 is a graph illustrating a configuration of an encryption key module implemented intentionally in violation of semiconductor design rules according to an embodiment of the present invention.
  • FIG. 11 is a conceptual diagram illustrating a process of generating an encryption key module by adjusting a gap between conductive layers according to an embodiment of the present invention.
  • FIG. 12 is a conceptual diagram illustrating an exemplary structure of a via or contact array formed in a semiconductor layer for implementing an encryption key module according to an embodiment of the present invention.
  • FIG. 13 is a conceptual diagram illustrating a post-processing process for balancing 0 and 1 without using a digital value generated in the embodiment of FIG. 12 as an encryption key according to an embodiment of the present invention.
  • FIG 1 illustrates an encryption apparatus 100 according to an embodiment of the present invention.
  • the encryption apparatus 100 may be a component included in an IC chip of a smart card, and may have an EEPROM 120, a CPU 130, and optionally an SDRAM 140 for storing data. Communicate with the outside via the I / O interface 101.
  • the encryption apparatus 100 includes an encryption module 110.
  • the encryption module 110 may be a crypto co-processor for encryption.
  • the I / O interface 101 is an input / output route of data entering and exiting the encryption apparatus 100 regardless of any method such as contact and / or contactless.
  • the encryption module 110 of the encryption apparatus 100 may use the encryption key in the process of performing the encryption algorithm.
  • Such an encryption key may be a concept including a public key, a secret key, and the like.
  • an encryption key for performing an encryption algorithm is stored in the form of a digital value outside the encryption module 110, and the encryption module 110 performs the encryption algorithm to encrypt and / or decrypt the data.
  • the key was input via bus 102.
  • Such a physical attack may directly attack an area where an encryption key is located in a memory such as the EEPROM 120 to extract an encryption key in a memory by a method such as probing or memory scan.
  • a method such as probing or memory scan.
  • an encryption key can be extracted by artificially executing a specific instruction and performing a bus probing using a micro-probe. have.
  • the encryption key is generated by the encryption key module 111 included in the encryption module 110 directly, and / or the encryption key module 111 stores and encrypts a previously generated encryption key. Provided when module 110 performs an encryption algorithm.
  • the encryption key to be used in the process of performing the encryption algorithm by the encryption module 110 is not stored outside the encryption module 110 in the form of a digital value, and the encryption key is transmitted through the bus 102. Therefore, a physical attack on the encryption algorithm of the encryption module 110 may be prevented.
  • the encryption key module 111 that generates and / or stores the encryption key and provides the encryption key 110 when performing the encryption algorithm may be physically included in the encryption module 110. Exemplary embodiments will be described below with reference to FIG. 2 or below.
  • FIG 2 illustrates an encryption module 110 according to an embodiment of the present invention.
  • the encryption module 110 may be connected to other components in the encryption apparatus 100 through the bus 102.
  • the encryption module 110 includes at least one encryption key module (210, 220, 230, 240 and 250, etc.).
  • Each cipher key module 210, 220, 230, 240, 250, etc. illustrated by way of example may be independently or correlated to each other to generate and / or store cipher keys required for performing an encryption algorithm, and the encryption module 110. To provide.
  • only one encryption key module may be included in the encryption module 110, but in another embodiment, a plurality of encryption key modules are included in the encryption module 110.
  • the encryption module 110 when a plurality of cryptographic key modules are included in the encryption module 110, at least some of the plurality of cryptographic key modules 210, 220, 230, 240, and 250 may not actually provide an encryption key. dummy).
  • the cryptographic key modules 210, 220, 230, 240, and 250 may be different from those of a memory device. In the case of a memory device (non-memory device) and the like.
  • cryptographic key modules 210, 220, 230, 240, 250, etc. may be embodiments in which some are memory elements and others are non-memory elements, and the present invention is not limited to the embodiments.
  • the encryption key modules 210, 220, 230, 240, and 250 are constituted by a memory device
  • the encryption key modules 210 may include a cryptographic key in the form of a digital value generated in advance. 220, 230, 240, 250, etc.), the encryption module 110 can read and write them as needed in the process of performing the encryption algorithm.
  • PEF physically unclonable function
  • the cryptographic key modules 210, 220, 230, 240, and 250 are constituted by non-memory elements such as PUF
  • the cryptographic key modules 210, 220, 230, 240, and 250 are constituted by non-memory elements such as PUF
  • PUF non-memory elements
  • FIG. 3 is a block diagram illustrating an exemplary configuration of an encryption module 110 according to an embodiment of the present invention.
  • the cryptographic key module 320 physically included in the encryption module 110 may be one or more.
  • the encryption key module selector 330 may actually encrypt an encryption key to be used for the encryption algorithm. Select the key module.
  • This selection may be index information of the cryptographic key module to be actually selected among the indices that identify the cryptographic key modules 320 or the process by which the cryptographic key modules 320 are designed and manufactured together with the cryptographic module 110. It may be predetermined by the wiring (wiring) in.
  • the encryption unit 340 encrypts the input data by performing an encryption algorithm using the encryption key, which is via the bus 102 via the data output unit 350. Passed to other configurations.
  • the encryption key Since the management of the encryption key is performed by itself in the encryption module 110, the encryption key is not transmitted to the outside of the encryption module 110 or externally to the encryption module 110, so that the physical attack is successful. The probability is significantly lower. In particular, physical attacks such as probing bus 102 will have a very low probability of success.
  • the encryption key modules are memory elements
  • the encryption key modules are implemented as a PUF that is a non-memory element
  • the PUF referred to herein generates a cryptographic key that is not physically replicable and that once produced, at least theoretically does not change.
  • FIGS. 4 to 8 illustrate encryption key modules that generate an encryption key using a process deviation in a semiconductor process. Correspond to examples of implementation.
  • 9 to 13 correspond to implementation examples of generating cryptographic key modules by intentionally violating a design rule when designing a circuit.
  • FIG. 4 is an exemplary circuit diagram illustrating a concept of a unit cell constituting an encryption key module having a PUF type for generating an encryption key using process deviation according to an embodiment of the present invention.
  • a first inverter 410 and a second inverter 420 are shown.
  • Process deviations in semiconductor processes are due to a variety of reasons. For example, when manufacturing a transistor, parameters such as an effective gate length, an index of doping concentration, an index of oxide thickness, or a threshold voltage may be a cause of the process deviation.
  • the first inverter 410 has a first logic threshold and the second inverter 420 has a second logic threshold.
  • the logic threshold is a voltage value when the input voltage and the output voltage of the inverter have the same value, which will be described later in more detail with reference to FIG. 5.
  • the logic threshold of the inverter element may be measured as a voltage value when the output terminal and the input terminal of the inverter in operation are shorted.
  • Inverters manufactured in the same process are theoretically designed to have the same logic threshold, but as described above, due to process deviations in the actual manufacturing process, no two inverters can actually have exactly the same logic threshold.
  • the first inverter 410 and the second inverter 420 are manufactured in the same manufacturing process, and have a difference in logic threshold due to process deviation.
  • the difference in logic threshold may vary depending on the process, but may be on the order of several to tens of millivolts, for example. Therefore, measuring the logic threshold of the first inverter 410 and the logic threshold of the second inverter 420 using separate comparator circuits may not be accurate due to measurement errors.
  • the logic threshold between two inverters can be compared relatively (by itself without using a separate comparator circuit) to determine which logic threshold is large.
  • the output voltage of the first inverter 410 is a logic threshold of the first inverter 410.
  • the output voltage of the second inverter 420 is the logic of the second inverter 420. Will be equal to the threshold.
  • the input terminal of the first inverter 410 and the output terminal of the second inverter 420 are short-circuited and connected to the first node, and the output terminal of the first inverter 410 and the second inverter ( When the input terminal of 420 is shorted and connected to the second node, the result is different from the above cases.
  • the voltage values of the shorted two nodes are determined by the logic threshold of the first inverter 410 and the second inverter 420. Values between logical thresholds (may be non-average, equals below).
  • the value of the output voltage becomes a value between the logic thresholds of the two inverters.
  • the switch 430 is closed so that the first node (the opposite node of Out) and the second node ( The voltage at the first node while the Out node is shorted is higher than the logic threshold of the first inverter 410.
  • the first inverter 410 sets the voltage of the first node (which is its input terminal) to a logical level high. Therefore, the voltage of the second node, which is an output terminal of the first inverter 210, is made to be a logical level low.
  • the second inverter 420 recognizes the voltage of the second node (which is its input terminal) as a logical level low, and therefore, the voltage of the first node, which is the output terminal of the second inverter 220, is logically leveled. Make it high
  • the switch 430 is closed so that the first node and the second node are shorted.
  • the voltage at the node is lower than the logic threshold of the first inverter 410.
  • the first inverter 410 recognizes the voltage of the first node (which is its input terminal) as a logical level low. Therefore, the voltage of the second node, which is the output terminal of the first inverter 410, is made logical level high.
  • the second inverter 420 recognizes the voltage of the second node (which is its input terminal) as a logical level high, and thus, logically leveles the voltage of the first node, which is an output terminal of the second inverter 420. Make it low
  • the output terminal (“Out”) after short-opening of the switch 430 As described above, depending on which of the logic threshold of the first inverter 410 and the logic threshold of the second inverter 420 is high, the output terminal (“Out”) after short-opening of the switch 430.
  • the logical level of is high (or “1"), or low (or "0").
  • the embodiment of FIG. 4 may generate a one-bit digital value (a value that is equal to "1" or "0", but hardly changed once determined).
  • FIG. 5 is a reference graph for understanding the embodiment of FIG. 4.
  • Curve 510 is a voltage characteristic curve of the first inverter 410
  • curve 520 is a voltage characteristic curve of the second inverter 420. According to an embodiment of the present invention, when the first inverter 210 and the second inverter 420 are manufactured in the same manufacturing process, the curve 510 and the curve 520 are almost identical, but due to the process deviation, there are some differences. Has
  • V1 which is a logic threshold of the first inverter 410
  • V2 which is a logic threshold of the second inverter 420
  • V1 is lower than V2 in this embodiment. Therefore, when the switch 430 of FIG. 4 is closed and the first node and the second node are shorted (also referred to as "Reset"), the voltage VReset of the first node and the second node is between V1 and V2. Which is the value of.
  • the first inverter 410 recognizes the voltage VReset of the first node as a logical level high. 1
  • the voltage of the second node which is an output terminal of the inverter 410, is made low.
  • the second inverter 420 recognizes the voltage VReset of the second node as a logical level low, and therefore, makes the voltage of the first node, which is an output terminal of the second inverter 420, to a logical level high.
  • the logical level of the voltage at the second terminal which is the output terminal " Out " in FIG. 2, is high.
  • the unit cell shown in FIG. 4 produces a digital value of 1 bit
  • the digital value of N bits may generate an encryption key
  • cryptographic key modules 320 may be implemented in this manner.
  • An implementation of an encryption key module for generating an encryption key in the form of a digital value by using a logic threshold difference of an inverter device using a semiconductor process deviation may be configured as shown in FIG. 6.
  • FIG. 6 is a block diagram illustrating an exemplary implementation of an encryption key module 600 in accordance with an embodiment of the present invention.
  • the encryption key module 600 includes five inverters, the selection unit 620 and the comparator 630 of the inverters 611 to 615.
  • the selector 620 selects any two of the five inverters shown in FIG. 6. For example, inverter 612 and inverter 613 may be selected.
  • the comparator 630 compares the logic threshold of the inverter 612 with the logic threshold of the inverter 613, and provides an output voltage to the Out terminal according to the comparison result.
  • a digital value of 1 bit may be generated according to the logical level of the output voltage of the out terminal.
  • the comparator 630 may again generate a 1-bit digital value.
  • the selector 620 selects two of the five inverters 611 to 615 and the comparator 630 generates a digital value by comparing the logic thresholds of the two selected inverters, the maximum value is 10.
  • the digital value of the bit can be obtained.
  • inverters In the present embodiment, five inverters are included, but the present invention is not limited thereto, and various changes may be made in consideration of the number of bits of a digital value to be generated, the area of a circuit, and the like.
  • the area of the comparator 630 that can be integrated in the semiconductor chip is considerably larger than the areas of the inverters 631 to 635, in the present embodiment, the plurality of inverters and one inverter are selected through the selector 620.
  • the comparator 630 of is connected.
  • one comparator per two inverters can be paired to produce N bits of digital value.
  • an implementation of an encryption key module for generating an encryption key in the form of a digital value by using a logic threshold difference of an inverter device using a semiconductor process deviation may be configured as shown in FIG. 7.
  • FIG. 7 illustrates a unit cell 700 of a cryptographic key module that generates digital values using process deviations of a differential amplifier, in accordance with an embodiment of the present invention.
  • the unit cell 700 is a differential amplifier circuit.
  • the unit cell 700 which is a differential amplifier circuit composed of at least one element of a transistor and a resistor, amplifies a difference between voltages of the first input terminal 711 and the second input terminal 712, and thus, the first output terminal 721. ) And the second output terminal 722.
  • the voltage of the first output terminal 721 and the voltage of the second output terminal 722 are not exactly the same.
  • the digital value It can be recognized as "1" and vice versa as a digital value "0".
  • an encryption key may be provided in the form of N-bit digital values, and an encryption key module according to some embodiments of the present invention may be implemented. This implementation is shown in FIG. 8 below.
  • FIG. 8 shows an exemplary circuit diagram in which an encryption key module 800 is implemented in accordance with one embodiment of the present invention.
  • the cryptographic key module 800 includes six differential amplifiers 811 to 816, a selector 820 for selecting any one of the six differential amplifiers, and a differential selected by the selector 820. Comparing unit 830 for comparing the two output voltage of the amplifier to generate a digital value of 1 bit.
  • the selector 820 may be a 6: 1 MUX device.
  • the selector 820 may be another device other than the MUX device.
  • the 6: 1 MUX device outputs output voltages of six differential amplifiers inputted through twelve input terminals to two output terminals. The two output terminals are connected to two input terminals of the comparator 830.
  • the encryption key module 800 may generate an encryption key that is a 6-bit digital value.
  • FIG. 9 is a conceptual diagram illustrating a principle of generating an encryption key module intentionally violating a semiconductor design rule according to an embodiment of the present invention.
  • the contacts or vias are designed to connect between conductive layers, so 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.
  • some contacts or vias are shorted between the conductive layers, and others are intentionally smaller than those specified in the design rules. Some contacts or vias do not short between the conductive layers, and whether or not such a short is determined probabilisticly.
  • vias are formed between the metal 1 layer 902 and the metal 2 layer 901 in a semiconductor manufacturing process.
  • the group 920 having the via size between the groups 910 and 930 some vias short the metal 1 layer 902 and the metal 2 layer 901, and some of the vias are metal 1.
  • the layer 902 and the metal 2 layer 901 are not shorted.
  • the via size is set so that the metal 1 layer 902 and the metal 2 layer 901 are not shorted.
  • the design rule for the via size is different according to 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 micron (um).
  • CMOS Complementary Metal Oxide SEMiconductor
  • the via size is set to 0.19 micron intentionally violating the design rule, so that the presence or absence of short circuits between the metal layers is probabilistic.
  • the probability distribution of such a short circuit should have a short probability of 50%, and in the implementation of cryptographic key modules according to an embodiment of the present invention, the probability distribution is configured by setting the via size as close to 50% as possible. In the via size setting, the via size may be determined by experiments according to the process.
  • FIG. 10 is a graph illustrating a configuration of an encryption key module implemented intentionally in violation of semiconductor design rules according to an embodiment of the present invention.
  • the via size according to the design rule is Sd, a value at which a short between the metal layers is sufficiently guaranteed.
  • 9 to 10 illustrate an embodiment in which the cryptographic key module is implemented intentionally violating the design rule regarding the via size, but according to another embodiment of the present invention, the cryptographic key modules may be formed in a gap between conductive layers. It is also implemented by intentionally violating design rules.
  • FIG. 11 is a conceptual diagram illustrating a process of generating an encryption key module by adjusting a gap between conductive layers according to an embodiment of the present invention.
  • the metal lines were shorted in the group 1110 where the metal line spacing was small so that a short between the metal lines was sufficiently ensured.
  • the metal lines are not shorted in all cases.
  • the metal line spacing which is shorted probabilistic is set such that some of the metal lines are shorted and some are not shorted.
  • FIG. 12 is a conceptual diagram illustrating an exemplary structure of a via or contact array formed in a semiconductor layer to implement an encryption key module 1200 according to an embodiment of the present invention.
  • 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 cryptographic key module 1200 may determine whether each of the M * N vias shorts between the metal layers (digital value 0) or not (digital value 1). Generate and provide an encryption key.
  • FIG. 13 is a conceptual diagram illustrating a post-processing process for balancing 0 and 1 without using a digital value generated in the embodiment of FIG. 12 as an encryption key according to an embodiment of the present invention.
  • the digital values of the M * N bits generated by the encryption key module 1200 are grouped into predetermined k units, where k is a natural number.
  • FIG. 13 is merely an exemplary diagram for convenience of explanation. In an actual implementation, a method of grouping registers or flip flops in the cryptographic key module 1200 may be used.
  • the encryption key module 1200 compares the sizes of the 4-bit digital values generated by the group 1310 and the group 1320, respectively. If the 4-bit digital value of the group 1310 is larger than the 4-bit digital value of the group 1320, the digital value representing the group 1310 and the group 1320 is determined as 1.
  • the digital values representing the group 1310 and the group 1320 are determined to be zero.
  • Method according to an embodiment of the present invention is implemented in the form of program instructions that can be executed by various computer means may be recorded on a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, 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 present invention, and vice versa.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Storage Device Security (AREA)

Abstract

보안 장치 및 보안 장치의 동작 방법이 제공된다. 보안 장치는 물리적 공격, 이를테면 IC 칩을 분해하여 메모리내의 암호키의 저장부분의 정보를 읽어내거나 마이크로 프로빙(Micro-probing)을 통하여 추출해내는 공격과 같은 보안상 공격에 대응하여, 암호화 알고리즘에 사용되는 암호키를 암호화 모듈 내부에 은닉하여 가지고 있을 수 있다. 암호키는 암호화 모듈 내부에 물리적인 암호키 모듈로서 포함될 수 있으며, 또한 암호키를 저장하고 있는 어떤 저장 매체가 상기 암호화 모듈 내에 포함되어 있을 수 있다. 따라서, 암호화를 위해 보안 장치 내의 버스(bus) 등을 통해 암호키가 전송되지 않는다.

Description

물리적 공격을 방어하는 암호화 장치 및 암호화 방법
디지털 보안 분야에 연관되며, 보다 특정하게는 스마트 카드 등 IC 보안 모듈에서 물리적 공격을 방어할 수 있도록 암호화 키를 관리하는 암호화 장치 및 방법에 연관된다.
스마트카드는 신용카드 크기의 플라스틱 카드로서 데이터를 가공하고 처리할 수 있는 집적 회로(Integrated Circuit; IC)를 포함한다. 이러한 스마트 카드는 종래의 마그네틱 카드에 비해 다양한 장점을 갖는데, 자체 데이터 저장 용량을 가지며, 마이크로프로세서와 함께 co-processor 등의 처리부를 가진다.
따라서, 신분확인(Identification)을 위한 개인 정보 취급 및 금융 결재 정보 등의 취급을 위해, 암호화 알고리즘을 이용함 암호화(encryption) 연산을 자체적으로 수행하기도 한다.
한편, 각종 IT 기술의 발전에 따라 스마트카드가 널리 보급되면서, 스마트카드에 대한 다양한 보안 위협도 증가하고 있다.
이를 테면, IC 칩에 대한 역공학(Reverse Engineering) 기술을 이용하여 IC 칩 내의 정보를 읽어내는 것과 같은 물리적 공격들은 보안에 큰 문제가 된다.
물리적 공격 중 알려져 있는 몇 가지는 하드웨어 보안 모듈에 사용되는 EEPROM 및 ROM의 메모리 특성 및 데이터 저장 방식에 따라 버스 프로빙(Bus probing), 테스트-모드 프로빙(test-mode probing), ROM이나 EEPROM에 대한 오버라이팅(overwriting) 등의 공격 방법이다.
스마트카드에 대한 물리적 공격에 강인한 암호화 장치 및 방법이 제공된다.
특히, 생성되거나 저장되어 있는 암호 키가 메모리 내에서 직접 추출되지 않는 암호화 장치 및 방법이 제공된다. 또한, 스마트 카드의 IC 칩 내의 버스(bus)를 통해 유출되지 않는 암호화 장치 및 방법도 제공된다.
본 발명의 일측에 따르면, 암호화할 입력 데이터를 입력 받아 암호 키를 이용한 암호화 알고리즘을 수행하는 암호화 장치에 있어서, 암호 키를 제공하는 암호 키 모듈을 내부에 포함하며, 상기 암호 키 모듈이 제공하는 암호 키를 이용하여 상기 암호화 알고리즘을 수행하는 암호화 모듈을 포함하는 암호화 장치가 제공된다.
상기 암호화 모듈은, 각각 서로 다른 암호 키를 제공하는 복수 개의 암호 키 모듈을 내부에 포함할 수 있으며, 이 경우, 상기 암호화 모듈은 상기 복수 개의 암호 키 모듈 중 어느 하나를 선택하는 암호 키 모듈 선택부, 및 상기 선택된 암호 키 모듈이 제공하는 암호 키를 이용하여 상기 암호화 알고리즘을 수행하는 암호화부를 포함할 수 있다.
또한, 상기 암호 키 모듈 선택부는, 상기 복수 개의 암호 키 모듈 중, 미리 부여된 식별 인덱스에 대응하는 암호 키 모듈을 선택할 수 있다.
본 발명의 일실시예에 따르면, 상기 암호화 모듈은 복수 개의 표준 셀을 포함하며, 상기 복수 개의 암호 키 모듈은 상기 암호화 모듈에 포함되는 복수 개의 표준 셀의 레이 아웃 중에 무작위의 위치에 배치된다. 표준 셀은 암호화 모듈의 구현에 사용되는 규격화된 소자 또는 소자 블록일 수 있다.
상기 암호화 장치에 있어서, 상기 암호화 모듈은, 상기 암호화 모듈의 내부에 포함된 상기 암호 키 모듈이 제공하는 암호 키를 이용하여 상기 암호화 알고리즘을 수행하며, 상기 암호 키 모듈이 제공하는 암호 키는 상기 암호화 모듈 외부로 유출되지 않고, 상기 암호화 알고리즘을 수행하기 위해 다른 추가적 암호화 키가 상기 암호화 모듈로 유입되지 않는다.
본 발명의 일실시예에 따르면, 상기 암호 키 모듈은 미리 생성된 상기 암호 키를 저장하는 비휘발성 메모리 모듈이다.
본 발명의 다른 일실시예에 따르면, 상기 암호 키 모듈은 상기 암호 키를 생성하여 제공하는 비메모리 모듈이다.
이 경우, 상기 암호 키 모듈은, 반도체 제조 공정에서 제공되는 디자인 룰을 의도적으로 위반하여 상기 암호 키 모듈 내의 노드 간의 단락여부가 확률적으로 결정되며, 상기 암호 키 모듈은 상기 노드 간의 단락여부를 독출한 결과에 따라 상기 암호 키를 생성하여 제공할 수 있다.
여기서 상기 암호 키 모듈 내의 노드는 반도체의 전도성 레이어이고, 상기 디자인 룰은 상기 반도체의 전도성 레이어 사이에 형성되는 콘택 또는 비아(via)의 사이즈에 연관된 것이며, 상기 암호 키 모듈은, 상기 반도체의 전도성 레이어 사이에 형성되는 콘택 또는 비아(via)가 상기 전도성 레이어를 단락 하는지의 여부를 이용하여 상기 암호 키를 생성하여 제공할 수 있다.
한편, 상기 암호 키 모듈은, 반도체 제조 공정에서 제공되는 디자인 룰을 의도적으로 위반하여 상기 반도체의 전도성 레이어 사이에 형성되는 상기 콘택 또는 비아(via)가 상기 전도성 레이어를 단락 하는 확률과 단락 하지 못하는 확률의 차이가 소정의 오차 범위 내에 있도록 하는, 상기 콘택 또는 비아(via)의 사이즈를 가질 수 있다.
본 발명의 일실시예에 따르면, 상기 암호 키 모듈은, 한 쌍의 전도성 레이어와 그 사이를 연결하는 하나의 콘택 또는 비아를 이용하여 1 비트의 디지털 값을 생성하는 단위 구조를 N 개 가지고 - 단, N은 자연수임 -, 상기 N 개의 단위 구조를 통해 생성한 N 비트의 디지털 값을 상기 암호 키로 생성한다.
이 경우, 상기 암호 키 모듈은, 상기 생성된 N 비트의 디지털 값을 k 개 단위로 그룹핑 하고 - 단, k는 자연수임 -, 그룹핑된 복수 개의 그룹들 중 제1 그룹 및 제2 그룹을 비교하여, 상기 제1 그룹에 포함된 k개의 디지털 비트로 구성된 값이 상기 제2 그룹에 포함된 k개의 디지털 비트로 구성된 값보다 큰 경우에 상기 제1 그룹과 상기 제2 그룹을 대표하는 디지털 값을 1로 결정하고, 반대의 경우에 상기 제1 그룹과 상기 제2 그룹을 대표하는 디지털 값을 0으로 결정하여, N/k 비트의 디지털 값을 상기 암호 키로 생성할 수도 있다.
본 발명의 다른 일실시예에 따르면, 상기 암호 키 모듈 내의 노드는 반도체의 전도성 레이어이고, 상기 디자인 룰은 상기 반도체의 전도성 레이어 사이의 간격(gap)에 연관된 것이며, 상기 암호 키 모듈은, 상기 반도체의 전도성 레이어 사이가 단락되는지의 여부를 이용하여 상기 암호 키를 생성하여 제공할 수 있다.
본 발명의 또 다른 일실시예에 따르면, 상기 암호 키 모듈은, 각각 1 비트 - 단, N은 자연수임 - 의 디지털 값을 출력하는 N 개의 단위 셀을 포함하고, 상기 N 개의 단위 셀의 각각은, 반도체 제조 공정 편차(Process variation)에 기반하여 1 비트의 디지털 값을 생성하여, 상기 암호 키 모듈이 N 비트의 암호 키를 생성하여 제공할 수도 있다.
이 경우, 상기 N 개의 단위 셀 중 제1 단위 셀은, 제1 논리 임계치를 갖는 제1 인버터, 및 제2 논리 임계치를 갖는 제2 인버터를 포함하고, 상기 제1 인버터의 입력 단자 및 상기 제2 인버터의 출력 단자는 제1 노드에 연결되고, 상기 제1 인버터의 출력 단자 및 상기 제2 인버터의 입력 단자는 제2 노드에 연결되어, 피드백 구조를 이루고, 상기 제1 논리 임계치와 상기 제2 논리 임계치는 반도체 제조 공정 편차에 기반하여 서로 상이하며, 상기 제1 노드의 논리 레벨과 상기 제2 노드의 논리 레벨에 따라 상기 제1 단위 셀에 대응하는 1 비트 디지털 값이 결정될 수 있다.
한편, 본 발명의 또 다른 일실시예에 따르면, 상기 암호 키 모듈은, N 개(단, N은 자연수)의 차동 증폭기를 포함하고, 상기 N 개의 차동 증폭기 중 제1 차동 증폭기에 있어서, 상기 제1 차동 증폭기의 두 개의 입력 단자가 단락되는 경우, 상기 제1 차동 증폭기의 두 개의 출력 단자의 논리 레벨은 반도체 제조 공정 편차에 기반하여 서로 상이하며, 상기 두 개의 출력 단자의 논리 레벨에 따라 상기 제1 차동 증폭기에 대응하는 1 비트 디지털 값이 결정되어, 상기 암호 키 모듈이 N 비트의 암호 키를 생성하여 제공할 수도 있다.
본 발명의 다른 일측에 따르면, 암호화 할 데이터를 암호 키를 제공하는 암호 키 모듈을 내부에 포함하는 암호화 모듈 내로 입력 받는 단계, 및 상기 암호 키 모듈이 제공하는 암호 키를 이용하여 상기 암호화 알고리즘을 수행하여 상기 데이터를 암호화 하는 단계를 포함하는 암호화 방법이 제공된다.
본 발명의 또 다른 일측에 따르면, 암호화할 입력 데이터를 입력 받아 암호 키를 이용한 암호화 알고리즘을 수행하는 IC 칩에 있어서, 암호 키를 제공하는 암호 키 모듈을 내부에 포함하며, 상기 암호 키 모듈이 제공하는 암호 키를 이용하여 상기 암호화 알고리즘을 수행하는 암호화 모듈을 포함하는 IC 칩이 제공된다.
이 경우, 상기 IC 칩은 스마트 카드에 내장되어 상기 스마트 카드의 응용예 있어서 상기 암호화 알고리즘을 수행하는 것일 수 있다.
암호화 모듈 외부에서 키를 생성하여 메모리에 저장하거나, 버스 등을 통해서 키를 송신하지 않아 비휘발성 메모리 자체에 대한 공격이나 bus probing 등의 물리적 공격에 안전하다.
모듈 내부에서 다른 standard cell과 유사한 모습으로 무작위로 흩어져 배치되므로 암호 키 모듈이 직접 발견되기 매우 어려워서 메모리의 내용을 물리적인 공격에 의하여 추출하는 공격에 안전하다.
암호 키를 저장할 비휘발성 메모리가 따로 필요하지 않으므로, 공간 및 전력 사용량의 개선이 가능하다.
도 1은 본 발명의 일실시예에 따른 암호화 장치를 도시한다.
도 2는 본 발명의 일실시예에 따른 암호화 모듈을 도시한다.
도 3은 본 발명의 일실시예에 따른 암호화 모듈의 예시적 구성을 나타내는 블록도이다.
도 4는 본 발명의 일실시예에 따라 공정 편차를 이용하여 암호 키를 생성하는 PUF(Physical Unclonable Functions) 형태의 암호 키 모듈을 구성하는 단위 셀의 개념을 설명하기 위한 예시적 회로도이다.
도 5는 도 4의 실시예를 이해하기 위한 참고 그래프이다.
도 6은 본 발명의 일실시예에 따른 암호 키 모듈의 예시적 구현을 도시하는 블록도이다.
도 7은 본 발명의 일실시예에 따라, 차동 증폭기의 공정편차를 이용하여 디지털 값을 생성하는 암호 키 모듈의 단위 셀을 도시한다.
도 8은 본 발명의 일실시예에 따라 암호 키 모듈이 구현된 예시적 회로도를 도시한다.
도 9는 본 발명의 일실시예에 따라 반도체 디자인 룰을 의도적으로 위반하여 암호 키 모듈을 생성하는 원리를 설명하기 위한 개념도이다.
도 10은 본 발명의 일실시예에 따라 반도체 디자인 룰을 의도적으로 위반하여 구현하는 암호 키 모듈의 구성을 설명하기 위한 그래프이다.
도 11은 본 발명의 일실시예에 따라 전도성 레이어 간의 간격을 조정하여 암호 키 모듈을 생성할 수 있는 과정을 설명하기 위한 개념도이다.
도 12는 본 발명의 일실시예에 따른 암호 키 모듈을 구현하기 위해 반도체 레이어에 형성된 비아 또는 콘택 어레이의 예시적 구조를 도시하는 개념도이다.
도 13은 본 발명의 일실시예에 따라 도 12의 실시예에서 생성된 디지털 값을 그대로 암호 키로 사용하지 않고 0과 1의 밸런싱을 위해 후처리하는 과정을 설명하기 위한 개념도이다.
이하에서, 본 발명의 일부 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 암호화 장치(100)을 도시한다.
예시적으로, 암호화 장치(100)는 스마트 카드의 IC 칩에 포함되는 구성일 수 있으며, 데이터를 저장하기 위한 EEPROM(120), CPU(130), 및 선택적으로 SDRAM(140)을 가질 수 있으며, I/O 인터페이스(101)을 통해 외부와 통신할 수 있다.
암호화 장치(100)에는 암호화 모듈(110)이 포함되는데, 예시적으로 암호화 모듈(110)은 암호화를 위한 코 프로세서(Crypto co-processor)일 수 있다.
이하에서 별다른 언급이 없더라도, 스마트 카드 또는 스마트 카드의 IC 칩이 포함하는 암호화 장치(100)의 응용예에 따라서, EEPROM(120), CPU(130), 및 선택적으로 SDRAM(140) 중 적어도 일부는 생략될 수도 있으며, 본 발명의 사상을 벗어나지 않는 범위에서 다양한 변형이나 응용이 가능하다.
또한, 이하에서 별다른 언급이 없더라도, I/O 인터페이스(101)는 접촉식 및/또는 비접촉식 등 여하간의 방식을 불문하고, 암호화 장치(100)로 출입되는 데이터의 입출력 루트가 된다.
한편, 본 발명의 실시예에 따른 암호화 장치(100)의 암호화 모듈(110)은 암호화 알고리즘을 수행하는 과정에 암호 키를 사용할 수 있다. 이러한 암호 키는 공개 키, 비밀 키 등을 포함하는 개념일 수 있다.
종래에는 암호화 알고리즘을 수행하기 위한 암호 키를 암호화 모듈(110) 외부에 디지털 값의 형태로 저장하였으며, 암호화 모듈(110)이 암호화 알고리즘을 수행하여 데이터를 암호화 하거나 및/또는 복호화 하는 과정에서 상기 암호 키를 버스(102)를 통해 입력 받았다.
그런데, 이러한 방식은, 암호화 알고리즘 및/또는 암호 키를 파악하고자 하는 물리적 공격에 취약하였다.
이러한 물리적 공격은 EEPROM(120) 등의 메모리에서 암호키가 있는 영역을 직접 공격하여 probing이나 메모리 scan과 같은 방법으로 메모리 내의 암호키를 추출할 수 있다. 또한 역공학을 수행하여 IC 칩에서 버스(102)의 위치를 알 수 있으므로, 특정한 명령어를 인위적으로 수행하게 하고 이때 마이크로 프로브(Micro-probe)를 이용한 Bus probing 등을 수행하면 암호키가 추출될 수 있다.
본 발명의 일실시예에 따르면, 암호 키는 암호화 모듈(110) 내에 포함된 암호 키 모듈(111)이 직접 생성하거나 및/또는 미리 생성된 암호 키를 암호 키 모듈(111)이 저장하였다가 암호화 모듈(110)이 암호화 알고리즘을 수행하는 경우에 제공한다.
따라서 상기 실시예에 따르면, 암호화 모듈(110)이 암호화 알고리즘을 수행하는 과정에서 사용할 암호 키가 디지털 값의 형태로 암호화 모듈(110) 외부에 저장되지 않고, 버스(102)를 통해 암호 키가 전달되지 않으므로 암호화 모듈(110)의 암호화 알고리즘에 대한 물리적 공격이 방지될 수 있다.
암호 키를 생성하거나 및/또는 저장하여 암호화 모듈(110)의 암호화 알고리즘 수행 시에 제공하는 암호 키 모듈(111)은 물리적으로 암호화 모듈(110) 내에 포함될 수 있으며, 그 구성 및 동작에 관한 여러 가지 예시적 실시예들에 대해서는 도 2 이하를 참고하여 후술한다.
도 2는 본 발명의 일실시예에 따른 암호화 모듈(110)을 도시한다.
도 1에서 도시된 바와 같이, 암호화 모듈(110)은 암호화 장치(100)에서 다른 구성들과 버스(102)를 통해 연결될 수 있다.
본 발명의 일실시예에 따르면, 암호화 모듈(110) 내에는 적어도 하나의 암호 키 모듈(210, 220, 230, 240 및 250 등)이 포함된다.
예시적으로 도시된 각 암호 키 모듈(210, 220, 230, 240 및 250 등)은 각각 독립적으로 또는 상호 연관하여 암호화 알고리즘의 수행에 필요한 암호 키를 생성 및/또는 저장하며, 암호화 모듈(110)에 제공한다.
일부 실시예에서는 암호화 모듈(110) 내에 암호 키 모듈이 하나만 포함될 수도 있으나, 다른 실시예들에서는 도 2에 도시된 바와 같이 복수 개 포함된다.
또한, 암호화 모듈(110) 내에 암호 키 모듈이 복수 개 포함되는 경우에, 복수 개의 암호 키 모듈(210, 220, 230, 240 및 250 등) 중 적어도 일부는 실제로는 암호 키를 제공하지 않는 더미(dummy)일 수도 있다.
암호 키 모듈들(210, 220, 230, 240 및 250 등)을 구현하는 실시예에는, 암호 키 모듈들(210, 220, 230, 240 및 250 등)이 메모리 소자(memory device)인 경우와 비메모리 소자(non-memory device)인 경우 등이 있다.
물론, 암호 키 모듈들(210, 220, 230, 240 및 250 등) 중 일부는 메모리 소자이고 다른 일부는 비메모리 소자인 실시예도 가능하며, 본 발명이 일부 실시예에 의해 제한적으로 해석되지 않는다.
예시적으로, 암호 키 모듈들(210, 220, 230, 240 및 250 등)이 메모리 소자로 구성되는 실시예에서는, 미리 생성된 디지털 값 형태의 암호 키가 메모리 소자인 암호 키 모듈들(210, 220, 230, 240 및 250 등)에 단순히 저장되어 있다가, 암호화 모듈(110)이 암호화 알고리즘을 수행하는 과정에서 이를 필요에 따라 독출(read)해서 쓸 수 있게 된다.
다른 실시예에서, 암호 키 모듈들(210, 220, 230, 240 및 250 등)이 비메모리 소자로 구성되는 경우에는, 암호 키 모듈들(210, 220, 230, 240 및 250 등)의 적어도 일부는 PUF(Physically Unclonable Function)에 의해 구현될 수 있다.
암호 키 모듈들(210, 220, 230, 240 및 250 등)이 PUF와 같은 비메모리 소자로 구성되는 실시예에서도, PUF를 구현하기 위한 실시예에는 다양한 것들이 있으며, 예시적으로 반도체 제조 공정 상의 디자인 룰을 의도적으로 위반하거나 또는 반도체 제조 공정의 공정 편차를 이용하여 구현할 수 있다.
이러한 실시예들에 대해서는 도 4 내지 도 13을 이용하여 보다 상세히 후술한다.
도 3은 본 발명의 일실시예에 따른 암호화 모듈(110)의 예시적 구성을 나타내는 블록도이다.
암호화 하고자 하는 데이터가 버스(102) 등을 거쳐서 데이터 입력부(310)로 입력되면 암호화 알고리즘의 수행이 시작된다.
도 2를 참고하여 상술한 바와 같이, 물리적으로 암호화 모듈(110) 내에 포함된 암호 키 모듈(320)은 하나 또는 그 이상의 복수 개일 수 있다.
예시적으로 암호 키 모듈 01(321) 내지 암호 키 모듈 N (320) - 단, N은 자연수 - 가 존재하는 경우, 암호 키 모듈 선택부(330)는 실제로 암호화 알고리즘에 사용할 암호 키를 제공할 암호 키 모듈을 선택한다.
이러한 선택은, 암호 키 모듈들(320)을 식별하는 인덱스 중 실제 선택될 암호 키 모듈의 인덱스 정보일 수도 있으며, 또는 암호 키 모듈들(320)이 암호화 모듈(110)과 함께 설계되고 제조되는 과정에서 와이어링(wiring)에 의해 미리 결정된 것일 수 있다.
이러한 과정에 의해 암호 키가 주어지면, 암호화부(340)는 상기 암호 키를 이용하여 암호화 알고리즘을 수행함으로써 상기 입력된 데이터를 암호화 하고, 이는 데이터 출력부(350)을 거쳐 버스(102)를 통해 다른 구성들로 전달된다.
이상에서는 데이터 암호화 과정만 설명되었으나, 암호화 알고리즘을 이용한 복호화 과정 또한 유사하다. 본 발명의 실시예들이 암호화 또는 복호화의 어느 한 쪽으로 제한적으로 해석되어서는 안 된다.
이렇게 암호 키의 관리가 암호화 모듈(110) 내에서 자체적으로 이루어짐으로써, 암호 키가 암호화 모듈(110)의 외부로 전달되거나, 또는 외부에서 암호화 모듈(110) 내로 전달되지 않기 때문에, 물리적 공격의 성공 가능성은 현저히 낮아진다. 특히 버스(102)를 프로빙하는 등의 물리적 공격은 성공 가능성이 매우 낮을 것이다.
한편, 암호 키 모듈들이 메모리 소자인 경우는 도 1 내지 도 2를 참조하여 상술하였고, 이하에서는 도 4 내지 도 13을 참조하여, 암호 키 모듈들이 비메모리 소자인 PUF로 구현되는 실시예들을 설명한다.
참고로, 본 명세서에서 언급하는 PUF는 물리적인 복제가 불가능하고, 한 번 제조된 이후에는, 적어도 이론적으로는 변하지 않는 암호 키를 생성한다.
이하에서는 암호 키 모듈들이 비메모리 소자인 PUF에 의해 구현되는 다양한 실시예들을 언급하며, 도 4 내지 도 8은 반도체 공정(Semiconductor Process)에서의 공정 편차를 이용하여 암호 키를 생성하는 암호 키 모듈들을 구현하는 예시들에 대응한다.
그리고, 도 9 내지 도 13은 회로를 디자인 하는 경우의 디자인 룰을 의도적으로 위반함으로써, 암호 키 모듈들을 생성하는 구현 예시들에 대응한다.
도 4는 본 발명의 일실시예에 따라 공정 편차를 이용하여 암호 키를 생성하는 PUF 형태의 암호 키 모듈을 구성하는 단위 셀의 개념을 설명하기 위한 예시적 회로도이다.
도 4의 예에서 제1 인버터(410) 과 제2 인버터(420)이 도시되었다.
반도체 공정에서 공정편차는 다양한 이유에 의해 기인한다. 이를테면, 트랜지스터를 제조하는 경우, 유효 게이트 길이, 도핑 농도 관련 지수, 산화물 두께 관련 지수 또는 문턱전압 등의 파라미터가 공정편차의 원인이 될 수 있다.
일반적으로 공정편차가 작은 반도체 제조 공정이 우수한 것으로 인식되나, 물리적 특징 상 공정편차를 작게 할 수는 있어도 완전히 제거하는 것은 불가능하다.
본 실시예에서, 제1 인버터(410)은 제1 논리 임계치를 갖고, 제2 인버터(420)은 제2 논리 임계치를 갖는다. 논리 임계치(logic threshold)는 인버터의 입력 전압과 출력 전압이 동일한 값을 가지는 경우의 전압 값이며, 도 5를 참조하여 보다 상세히 후술한다.
인버터 소자의 논리 임계치는, 동작 중인 인버터의 출력 단자와 입력 단자를 단락(short)시키는 경우의 전압 값으로 측정될 수 있다.
동일한 공정에서 제조되는 인버터들은, 이론상 동일한 논리 임계치를 갖도록 디자인 되지만, 상기한 바와 같이 실제 제조 공정에서는 공정편차가 존재하기 때문에, 실제로는 어느 두 개의 인버터도 완벽히 동일한 논리 임계치를 가질 수 없다.
본 발명의 일 실시예에 따르면, 상기 제1 인버터(410)와 상기 제2 인버터(420)는 동일한 제조 공정에서 제조된 것으로서, 공정편차에 기인한 논리 임계치의 차이를 갖는다.
상기 논리 임계치의 차이는, 공정에 따라 상이하지만, 이를테면 수 내지 수십 밀리볼트 정도의 크기일 수 있다. 따라서, 상기 제1 인버터(410)의 논리 임계치와 상기 제2 인버터(420)의 논리 임계치를 별도의 비교기 회로를 이용하여 측정하는 것은, 측정 상 오차 때문에 정확하지 않을 수 있다.
따라서, 두 인버터의 논리 임계치를 상대적으로 비교할 수 있는(즉, 별도의 비교기 회로를 이용하지 않고 측정하는) 방법이 요구된다. 본 발명의 일부 실시예들에서는, 두 개의 인버터 사이의 논리 임계치를 상대적으로(별도의 비교기 회로를 이용하지 않고 자체적으로) 비교하여, 어느 쪽의 논리 임계치가 큰지 판단할 수 있다.
만약 제2 인버터(420)가 존재하지 않는 경우라면, 제1 인버터(410)의 입력 단자와 출력 단자를 단락시키는 경우 제1 인버터(410)의 출력 전압은 상기 제1 인버터(410)의 논리 임계치와 같을 것이다.
또한, 제1 인버터(410)가 존재하지 않는 경우라면, 제2 인버터(420)의 입력 단자와 출력 단자를 단락시키는 경우 제2 인버터(420)의 출력 전압은 상기 제2 인버터(420)의 논리 임계치와 같을 것이다.
그러나, 도 4와 같이 제1 인버터(410)의 입력 단자와 제2 인버터(420)의 출력 단자가 단락되어 제1 노드에 연결되어 있고, 제1 인버터(410)의 출력 단자와 제2 인버터(420)의 입력 단자가 단락되어 제2 노드에 연결되는 경우는 위의 경우들과 다른 결과를 가져온다.
스위치(430)를 이용하여 상기 제1 노드와 상기 제2 노드를 단락시키는 경우, 단락된 상기 두 노드의 전압 값은, 상기 제1 인버터(410)의 논리 임계치와 상기 제2 인버터(420)의 논리 임계치의 사이의 값(평균 값이 아닐 수 있음, 이하 같다)이 된다.
상기 두 인버터의 논리 임계치 중 어느 쪽의 값이 높은 지와 무관하게, 상기 스위치(430)가 닫혀있는 동안은, 출력 전압의 값이 상기 두 인버터의 논리 임계치들의 사이의 값이 된다.
그리고, 그 후 스위치(430)을 열어서, 상기 제1 노드와 상기 제2 노드를 개방(open)시키는 경우, 상기 제1 노드와 상기 제2 노드 중 어느 하나의 전압 값의 논리적 레벨(logical level)은 "0"이 되고, 다른 하나의 논리적 레벨은 "1"이 된다.
이를테면, 만약 제1 인버터(410)의 논리 임계치가 상기 제2 인버터(420)의 논리적 임계치 보다 낮다고 가정하는 경우, 상기 스위치(430)가 닫혀서 제1 노드(Out의 반대쪽 노드)와 제2 노드(Out 노드)가 단락된 동안의 제1 노드의 전압은 상기 제1 인버터(410)의 논리 임계치보다 높다.
따라서, 상기 스위치(430)가 다시 열려서 상기 제1 노드와 상기 제2 노드가 개방된 후, 제1 인버터(410)는 (자신의 입력 단자인) 제1 노드의 전압을 논리적 레벨 하이(High)로 인식하고, 따라서, 제1 인버터(210)의 출력 단자인 제2 노드의 전압을 논리적 레벨 로우(Low)로 만든다.
이 경우, 제2 인버터(420)는 (자신의 입력 단자인) 제2 노드의 전압을 논리적 레벨 로우로 인식하고, 따라서, 제2 인버터(220)의 출력 단자인 제1 노드의 전압을 논리적 레벨 하이로 만든다.
결국, 도 2의 출력 단자("Out")인 제2 단자의 전압의 논리적 레벨은 하이(High)가 된다.
반대로, 만약 제1 인버터(410)의 논리 임계치가 상기 제2 인버터(420)의 논리적 임계치 보다 높다고 가정하는 경우, 상기 스위치(430)가 닫혀서 제1 노드와 제2 노드가 단락된 동안의 제1 노드의 전압은 상기 제1 인버터(410)의 논리 임계치보다 낮다.
따라서, 상기 스위치(430)가 다시 열려서 상기 제1 노드와 상기 제2 노드가 개방된 후, 제1 인버터(410)는 (자신의 입력 단자인) 제1 노드의 전압을 논리적 레벨 로우로 인식하고, 따라서, 제1 인버터(410)의 출력 단자인 제2 노드의 전압을 논리적 레벨 하이로 만든다.
이 경우, 제2 인버터(420)는 (자신의 입력 단자인) 제2 노드의 전압을 논리적 레벨 하이로 인식하고, 따라서, 제2 인버터(420)의 출력 단자인 제1 노드의 전압을 논리적 레벨 로우로 만든다.
결국, 도 2의 출력 단자("Out")인 제2 단자의 전압의 논리적 레벨은 로우가 된다.
상기한 바와 같이, 제1 인버터(410)의 논리 임계치와 제2 인버터(420)의 논리 임계치 중 어느 쪽이 높은 가에 따라, 스위치(430)의 단락-개방 이후의 출력 단자("Out")의 논리적 레벨은 하이(또는 "1")로 되거나, 또는 로우(또는 "0")으로 된다.
그런데, 동일한 제조 공정에서 제조된 상기 제1 인버터(410)와 제2 인버터(420) 중, 어느 쪽의 논리 임계치가 높을지는 랜덤(random)하며, 확률적으로 두 개의 인버터 중 한 쪽의 논리 임계치가 다른 쪽의 논리 임계치보다 높을 확률은 50% 정도이다.
그리고, 일단 제조되고 나서는, 상기 논리 임계치가 높은 쪽이 어느 쪽인지는 바뀌기 어렵다.
결국, 도 4의 실시예를 통해, 1 비트의 디지털 값("1"이 되거나 "0"이 될 확률은 동일하지만, 한 번 결정되고 나면 바뀌기 어려운 값)을 생성할 수 있다.
상기 과정은, 도 5의 그래프를 참조하는 경우, 보다 명확히 이해될 수 있다.
도 5는 도 4의 실시예를 이해하기 위한 참고 그래프이다.
본 예시적 참고 그래프에서는 도 4의 제1 인버터(410)의 논리 임계치가 제2 인버터(420)의 논리 임계치보다 낮은 경우에 대한 전압 특성(voltage characteristic)이 도시되었다.
곡선(510)은 제1 인버터(410)의 전압 특성 곡선이고, 곡선(520)은 제2 인버터(420)의 전압 특성 곡선이다. 본 발명의 일 실시예에 따라 제1 인버터(210)와 제2 인버터(420)가 동일한 제조 공정에서 제조되는 경우, 곡선(510)과 곡선(520)은 거의 일치하지만, 공정편차 때문에 약간의 차이를 가진다.
곡선(510)과 기울기가 1인 직선(530)의 교점을 찾으면, 제1 인버터(410)의 논리 임계치인 V1을 결정할 수 있다. 또한, 곡선(520)과 직선(530)의 교점을 찾으면, 제2 인버터(420)의 논리 임계치인 V2를 결정할 수 있다.
본 실시예에서 V1은 V2보다 낮다. 따라서, 도 4의 스위치(430)가 닫혀서, 상기 제1 노드와 상기 제2 노드가 단락되는 경우("Reset"이라고도 함), 제1 노드와 제2 노드의 전압(VReset)은 V1과 V2 사이의 어느 값이 된다.
그리고, 상기 스위치(430)가 다시 열려서 상기 제1 노드와 상기 제2 노드가 개방된 후, 제1 인버터(410)는 제1 노드의 전압(VReset)을 논리적 레벨 하이로 인식하고, 따라서, 제1 인버터(410)의 출력 단자인 제2 노드의 전압을 논리적 레벨 로우로 만든다.
이 경우, 제2 인버터(420)는 제2 노드의 전압(VReset)을 논리적 레벨 로우로 인식하고, 따라서, 제2 인버터(420)의 출력 단자인 제1 노드의 전압을 논리적 레벨 하이로 만든다.
따라서, 도 2의 출력 단자("Out")인 제2 단자의 전압의 논리적 레벨은 하이가 된다.
도 4에 도시된 단위 셀이 1 비트의 디지털 값을 만든다면, 이러한 단위 셀을 N 개 집적하면, N 비트의 디지털 값이 암호 키를 생성할 수 있다.
본 발명의 일부 실시예에 따르면, 이러한 방식에 의해 암호 키 모듈들(320)이 구현될 수 있다.
반도체 공정 편차를 이용한 인버터 소자의 논리 임계치 차이를 이용하여 디지털 값 형태의 암호 키를 생성하는 암호 키 모듈의 구현은 아래 도 6과 같은 구성도 가능하다.
도 6은 본 발명의 일실시예에 따른 암호 키 모듈(600)의 예시적 구현을 도시하는 블록도이다.
본 실시예에서, 암호 키 모듈(600)은, 인버터(611) 내지 인버터(615)의 5 개의 인버터, 선택부(620) 및 비교기(630)을 포함한다.
선택부(620)는 도 6에 도시된 5 개의 인버터 중, 어느 두 개를 선택한다. 이를테면, 인버터(612)와 인버터(613)가 선택될 수 있다.
이 경우, 비교기(630)는, 인버터(612)의 논리 임계치와 인버터(613)의 논리 임계치를 비교하고, 상기 비교 결과에 따라 Out 단자로 출력 전압을 제공한다. 그리고 상기 Out 단자의 출력 전압의 논리적 레벨에 따라 1 비트의 디지털 값이 생성될 수 있다.
그리고, 선택부(620)가 다른 두 개의 인버터를 선택하는 경우, 상기 비교기(630)은 다시 1 비트의 디지털 값을 생성할 수 있다.
상기한 바와 같이, 선택부(620)가 5 개의 인버터(611 내지 615) 중 두 개를 선택하고, 비교기(630)가 선택된 두 개의 인버터의 논리 임계치를 비교함으로써 디지털 값을 생성하는 경우, 최대 10 비트의 디지털 값이 얻어질 수 있다.
본 실시예에서는 인버터가 5 개 포함되었으나, 본 발명은 이에 한정되지 않으며, 생성하고자 하는 디지털 값의 비트 수, 회로의 면적 등을 고려하여 다양한 변경이 가능하다.
그리고, 반도체 칩 내에 집적될 수 있는 비교기(630)의 면적이 인버터들(631 내지 635)의 면적에 비해 상당히 큰 것을 고려했기 때문에, 본 실시예에서는 선택부(620)를 통해 복수 개의 인버터와 하나의 비교기(630)가 연결되었다. 그러나, 다른 응용 예에서는 인버터 두 개 당 비교기 하나가 짝을 이루어, N 비트의 디지털 값을 생성할 수 있다.
한편, 반도체 공정 편차를 이용한 인버터 소자의 논리 임계치 차이를 이용하여 디지털 값 형태의 암호 키를 생성하는 암호 키 모듈의 구현은 아래 도 7과 같은 구성도 가능하다.
도 7은 본 발명의 일실시예에 따라, 차동 증폭기의 공정편차를 이용하여 디지털 값을 생성하는 암호 키 모듈의 단위 셀(700)을 도시한다.
단위 셀(700)은 차동 증폭기 회로이다. 트랜지스터 및 저항 중 적어도 하나의 소자로 구성되는 차동 증폭기 회로인 단위 셀(700)은 제1 입력 단자(711)와 제2 입력 단자(712)의 전압의 차이를 증폭하여, 제1 출력 단자(721)와 제2 출력 단자(722) 사이의 전압 차이로서 제공한다.
따라서, 상기 제1 입력 단자(711)과 제2 입력 단자(722)를 단락시키는 경우, 이론적으로는, 출력 전압 값인 제1 출력 단자(721)와 제2 출력 단자(722) 사이의 전압 차이가 0이어야 한다.
그러나, 반도체 공정편차에 의한 소자간의 전기적 특성 차이 때문에, 제1 출력 단자(721)의 전압과 제2 출력 단자(722)의 전압은 완전히 같지 않다.
따라서, 도 6의 실시예에서 인버터의 논리 임계치를 비교한 것과 같은 방법으로, 두 출력 단자 중 어느 출력 단자의 전압이 높은 지를 비교한다면, 1 비트의 디지털 값을 생성할 수 있다.
이를테면, 제1 입력 단자(711)와 제2 입력 단자(712)를 단락시킨 경우에, 제1 출력 단자(721)의 전압 값이 제2 출력 단자(722)의 전압 값보다 높은 경우, 디지털 값 "1"로 인식하고, 반대의 경우에는 디지털 값 "0"으로 인식할 수 있다.
따라서, 이러한 차동 증폭기 단위 셀(700)이 N 개 집적되면 N 비트의 디지털 값 형태로 암호 키를 제공할 수 있으며, 본 발명의 일부 실시예들에 의한 암호 키 모듈이 구현될 수 있다. 이러한 구현이 아래 도 8에서 도시된다.
도 8은 본 발명의 일실시예에 따라 암호 키 모듈(800)이 구현된 예시적 회로도를 도시한다.
도시된 실시예에서 암호 키 모듈(800)은 6 개의 차동 증폭기(811 내지 816), 상기 6 개의 차동 증폭기 중 어느 하나를 선택하는 선택부(820), 및 상기 선택부(820)에 의해 선택된 차동 증폭기의 두 개의 출력 전압을 비교하여 1 비트의 디지털 값을 생성하는 비교부(830)를 포함한다.
이 경우, 상기 6 개의 차동 증폭기(811 내지 816)의 전체 입력 단자는 단락되며, 동일한 전압을 갖는다.
본 발명의 일 실시예에 따르면, 선택부(820)는 6:1 MUX 소자일 수 있다. 다만, 이는 본 발명의 구현을 위한 일 실시예에 불과하며, 본 발명은 특정한 실시예에 한정되지 않는다.
따라서, MUX 소자의 입력/출력 포트의 수는 변경될 수 있으며, 나아가 선택부(820)는 MUX 소자가 아닌 다른 소자일 수도 있다. 상기 6:1 MUX 소자는 12 개의 입력 단자를 통해 입력 되는 6 개의 차동 증폭기의 출력 전압을 두 개의 출력 단자로 출력한다. 그리고, 이 두 개의 출력 단자는 비교부(830)의 두 개의 입력 단자에 연결된다.
상기 실시예에서, 암호 키 모듈(800)은 6 비트의 디지털 값인 암호 키를 생성할 수 있다.
이상에서는 도 4 내지 도 8을 참조하여 반도체 공정의 공정 편차를 이용하여 암호 키 모듈들을 구현하는 실시예들이 설명되었다.
이하에서는 도 9 내지 도 13을 참조하여 반도체 디자인 룰을 의도적으로 위반함으로써 암호 키 모듈들을 구현하는 실시예를 설명한다.
도 9는 본 발명의 일실시예에 따라 반도체 디자인 룰을 의도적으로 위반하여 암호 키 모듈을 생성하는 원리를 설명하기 위한 개념도이다.
통상적으로, 콘택 또는 비아는 전도성 레이어들 사이를 연결하도록 설계되는 것이어서, 통상적으로 콘택 또는 비아 사이즈는 전도성 레이어들 사이를 단락시키도록 결정된다. 그리고 통상적인 디자인 룰(rule)에서는 전도성 레이어들 사이를 단락시키는 것이 보장되도록 최소한의 콘택 또는 비아 사이즈가 정해져 있다.
그러나, 본 발명의 일실시예에 따른 암호 키 모듈들의 구현에 있어서는, 콘택 또는 비아의 사이즈를 디자인 룰에서 정해진 것보다 의도적으로 작게 하여, 일부의 콘택 또는 비아는 전도성 레이어들 사이를 단락시키고, 다른 일부의 콘택 또는 비아는 전도성 레이어들 사이를 단락시키지 못하게 되며, 이러한 단락 여부는 확률적으로 결정된다.
기존의 반도체 공정에서는 콘택 또는 비아가 전도성 레이어들 사이를 단락시키지 못하면 공정 상 실패한 것이 되나, 이를 난수성을 갖는 암호 키 생성에 이용하는 것이다.
도 9를 참조하면, 반도체 제조 공정에서 메탈 1 레이어(902)와 메탈 2 레이어(901) 사이에 비아들이 형성된 모습의 도시되었다.
비아 사이즈를 디자인 룰에 따라 충분히 크게 한 그룹(910)에서는 모든 비아가 메탈 1 레이어(902)와 메탈 2 레이어(901)을 단락시키고 있으며, 단락 여부를 디지털 값으로 표현하면 모두 0이 된다.
한편, 비아 사이즈를 너무 작게 한 그룹(930)에서는 모든 비아가 메탈 1 레이어(902)와 메탈 2 레이어(901)을 단락시키지 못하고 있다. 따라서 단락 여부를 디지털 값으로 표현하면 모두 1이 된다.
그리고, 비아 사이즈를 그룹(910)과 그룹(930) 사이로 한 그룹(920)에서는, 일부의 비아는 메탈 1 레이어(902)와 메탈 2 레이어(901)을 단락시키고, 다른 일부의 비아는 메탈 1 레이어(902)와 메탈 2 레이어(901)을 단락시키지 못하고 있다.
본 발명의 일실시예에 따르면, 암호 키 모듈을 구현하기 위해서, 그룹(920)와 같이, 일부의 비아는 메탈 1 레이어(902)와 메탈 2 레이어(901)을 단락시키고, 다른 일부의 비아는 메탈 1 레이어(902)와 메탈 2 레이어(901)을 단락시키지 못하도록 비아 사이즈를 설정하여 구성된다.
비아 사이즈에 대한 디자인 룰은 반도체 제조 공정에 따라 상이한데, 이를테면 0.18 미크론(um)의 CMOS(Complementary metal?oxide?semiconductor) 공정에서 비아의 디자인 룰이 0.25 미크론으로 설정된다고 하면, 상기 본 발명의 일실시예에 따른 암호 키 모듈의 구현에 있어서는, 디자인 룰을 의도적으로 위반하여, 비아 사이즈를 0.19 미크론으로 설정함으로써, 메탈 레이어들 사이의 단락 여부가 확률적으로 분포하도록 한다.
이러한 단락 여부의 확률 분포는 50%의 단락 확률을 갖도록 하는 것이 이상적이며, 본 발명의 일실시예에 따른 암호 키 모듈들의 구현에서는 상기 확률 분포가 최대한 50%에 가깝게 비아 사이즈를 설정하여 구성된다. 이러한 비아 사이즈 설정에서는 공정에 따른 실험에 의하여 비아 사이즈를 결정할 수 있다.
도 10은 본 발명의 일실시예에 따라 반도체 디자인 룰을 의도적으로 위반하여 구현하는 암호 키 모듈의 구성을 설명하기 위한 그래프이다.
그래프에서 비아의 사이즈가 커질수록, 메탈 레이어들 사이의 단락 확률이 1에 가까운 것을 확인할 수 있다. 디자인 룰에 따른 비아 사이즈는 Sd로서, 메탈 레이어들 사이의 단락이 충분히 보장되는 값이다.
그리고, SM은 이론적으로 메탈 레이어의 단락 확률이 0.5가 되는 비아 사이즈인데, 상기한 바와 같이, 공정에 따라 값이 상이하며 실험에 의해 최대한 비슷한 값을 찾을 수는 있지만, 정확한 SM을 찾는 것은 어렵다.
따라서, 본 발명의 일실시예에 따른 암호 키 모듈들의 구현에 있어서는, 구체적인 실험에 따라 메탈 레이어들 사이의 단락 여부가 0.5에서 소정의 허용 오차를 갖는 Sx1과 Sx2 범위 내(상기 Sx1 과 Sx2는 별도로 도시하지 않지만, 도시된 Sx 근처의 일정한 마진을 갖는 영역임)에서 설정될 수 있다.
도 9 내지 도 10에서는 비아 사이즈에 관한 디자인 룰을 의도적으로 위반하여 암호 키 모듈을 구현하는 실시예를 설명하였으나, 본 발명의 다른 일부 실시예에 따르면 암호 키 모듈들은 전도성 레이어 간의 간격(gap)에 관한 디자인 룰을 의도적으로 위반함으로써도 구현된다.
도 11은 본 발명의 일실시예에 따라 전도성 레이어 간의 간격을 조정하여 암호 키 모듈을 생성할 수 있는 과정을 설명하기 위한 개념도이다.
상기한 바와 같이, 본 발명의 다른 일실시예에 따르면, 메탈 라인들 사이의 간격을 조정하여 메탈 라인들 사이의 단락 여부가 확률적으로 결정되도록 할 수 있다.
메탈 라인들 사이의 단락이 충분히 보장되도록 메탈 라인 간격을 작게 한 그룹(1110)에서는 모든 경우에서 메탈 라인들이 단락되었다.
그리고, 메탈 라인 간격을 매우 크게 한 그룹(1130)에서는 모든 경우에서 메탈 라인들이 단락되지 않았다.
본 실시예에서, 암호 키 모듈의 구현을 위해서는, 그룹(1120)과 같이, 메탈 라인들 중 일부는 단락되고 일부는 단락되지 않도록, 단락이 확률적으로 이루어지는 메탈 라인 간격을 설정한다.
도 12는 본 발명의 일실시예에 따른 암호 키 모듈(1200)을 구현하기 위해 반도체 레이어에 형성된 비아 또는 콘택 어레이의 예시적 구조를 도시하는 개념도이다.
반도체 기판(substrate)에 적층된 메탈 레이어 사이에 가로 M개, 세로 N 개(단, M 및 N은 자연수), 총 M*N 개의 비아가 형성된 모습이 도시되었다.
암호 키 모듈(1200)은 M*N 개의 비아들 각각이 메탈 레이어들 사이를 단락시키는지(디지털 값 0) 또는 단락시키지 못하는지(디지털 값 1)의 여부에 따라, M*N 비트(bit)의 암호 키를 생성하여 제공한다.
도 13은 본 발명의 일실시예에 따라 도 12의 실시예에서 생성된 디지털 값을 그대로 암호 키로 사용하지 않고 0과 1의 밸런싱을 위해 후처리하는 과정을 설명하기 위한 개념도이다.
본 발명의 일실시예에 따르면, 암호 키 모듈(1200)에서 생성된 M*N 비트의 디지털 값은 소정의 k 개 단위 - 단 k는 자연수임 -로 묶어서 그룹핑 된다.
물론, 도 13에서 도시된 그룹핑은 어디까지나 설명의 편의를 위한 예시적인 도면에 불과하며, 실제의 구현에 있어서는 암호 키 모듈(1200) 내의 레지스터 또는 플립 플롭들을 그룹핑하는 방법 등이 가능하다.
따라서, 디지털 값을 그룹핑하는 등의 방법에 의해 0과 1의 밸런싱을 수행하는 과정은 본 기술분야의 통상의 지식을 가진 자가 다양한 변형과 응용을 통해 수행할 수 있으며, 본 발명의 범위에서 벗어나는 것으로 해석되어서는 안 된다.
도 13의 예시에서는, 4 개의 디지털 값이 하나의 그룹으로 그룹핑 되었다.
암호 키 모듈(1200)은 그룹(1310)과 그룹(1320)가 각각 생성한 4비트의 디지털 값의 크기를 비교한다. 그리고, 그룹(1310)의 4비트 디지털 값이 그룹(1320)의 4비트 디지털 값보다 크면, 상기 그룹(1310)과 그룹(1320)을 대표하는 디지털 값은 1로 결정한다.
반대로, 그룹(1310)의 4비트 디지털 값이 그룹(1320)의 4비트 디지털 값보다 작으면, 상기 그룹(1310)과 그룹(1320)을 대표하는 디지털 값은 0으로 결정한다.
다른 실시예에서는, 그룹들 간의 디지털 값 1의 개수를 비교하여 그룹 대표 디지털 값을 선택하는 것도 가능하다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (20)

  1. 암호화할 입력 데이터를 입력 받아 암호 키를 이용한 암호화 알고리즘을 수행하는 암호화 장치에 있어서,
    암호 키를 제공하는 암호 키 모듈을 내부에 포함하며, 상기 암호 키 모듈이 제공하는 암호 키를 이용하여 상기 암호화 알고리즘을 수행하는 암호화 모듈
    을 포함하는 암호화 장치.
  2. 제1항에 있어서,
    상기 암호화 모듈은, 각각 서로 다른 암호 키를 제공하는 복수 개의 암호 키 모듈을 내부에 포함하며,
    상기 암호화 모듈은,
    상기 복수 개의 암호 키 모듈 중 어느 하나를 선택하는 암호 키 모듈 선택부; 및
    상기 선택된 암호 키 모듈이 제공하는 암호 키를 이용하여 상기 암호화 알고리즘을 수행하는 암호화부
    를 포함하는, 암호화 장치.
  3. 제2항에 있어서,
    상기 암호 키 모듈 선택부는,
    상기 복수 개의 암호 키 모듈 중, 미리 부여된 식별 인덱스에 대응하는 암호 키 모듈을 선택하는, 암호화 장치.
  4. 제2항에 있어서,
    상기 암호화 모듈은 복수 개의 표준 셀을 포함하며, 상기 복수 개의 암호 키 모듈은 상기 암호화 모듈에 포함되는 복수 개의 표준 셀의 레이 아웃 중에 무작위의 위치에 배치되는, 암호화 장치.
  5. 제1항에 있어서,
    상기 암호화 모듈은, 상기 암호화 모듈의 내부에 포함된 상기 암호 키 모듈이 제공하는 암호 키를 이용하여 상기 암호화 알고리즘을 수행하며,
    상기 암호 키 모듈이 제공하는 암호 키는 상기 암호화 모듈 외부로 유출되지 않고, 상기 암호화 알고리즘을 수행하기 위해 다른 추가적 암호화 키가 상기 암호화 모듈로 유입되지 않는, 암호화 장치.
  6. 제1항에 있어서,
    상기 암호 키 모듈은 미리 생성된 상기 암호 키를 저장하는 비휘발성 메모리 모듈인, 암호화 장치.
  7. 제1항에 있어서,
    상기 암호 키 모듈은 상기 암호 키를 생성하여 제공하는 비메모리 모듈인, 암호화 장치.
  8. 제7항에 있어서,
    상기 암호 키 모듈은, 반도체 제조 공정에서 제공되는 디자인 룰을 의도적으로 위반하여 상기 암호 키 모듈 내의 노드 간의 단락여부가 확률적으로 결정되며, 상기 암호 키 모듈은 상기 노드 간의 단락여부를 독출한 결과에 따라 상기 암호 키를 생성하여 제공하는, 암호화 장치.
  9. 제8항에 있어서,
    상기 암호 키 모듈 내의 노드는 반도체의 전도성 레이어이고,
    상기 디자인 룰은 상기 반도체의 전도성 레이어 사이에 형성되는 콘택 또는 비아(via)의 사이즈에 연관된 것이며, 상기 암호 키 모듈은, 상기 반도체의 전도성 레이어 사이에 형성되는 콘택 또는 비아(via)가 상기 전도성 레이어를 단락 하는지의 여부를 이용하여 상기 암호 키를 생성하여 제공하는, 암호화 장치.
  10. 제9항에 있어서,
    상기 암호 키 모듈은, 반도체 제조 공정에서 제공되는 디자인 룰을 의도적으로 위반하여 상기 반도체의 전도성 레이어 사이에 형성되는 상기 콘택 또는 비아(via)가 상기 전도성 레이어를 단락 하는 확률과 단락 하지 못하는 확률의 차이가 소정의 오차 범위 내에 있도록 하는, 상기 콘택 또는 비아(via)의 사이즈를 갖는, 암호화 장치.
  11. 제8항에 있어서,
    상기 암호 키 모듈은, 한 쌍의 전도성 레이어와 그 사이를 연결하는 하나의 콘택 또는 비아를 이용하여 1 비트의 디지털 값을 생성하는 단위 구조를 N 개 가지고 - 단, N은 자연수임 -, 상기 N 개의 단위 구조를 통해 생성한 N 비트의 디지털 값을 상기 암호 키로 생성하는, 암호화 장치.
  12. 제11항에 있어서,
    상기 암호 키 모듈은, 상기 생성된 N 비트의 디지털 값을 k 개 단위로 그룹핑 하고 - 단, k는 자연수임 -, 그룹핑된 복수 개의 그룹들 중 제1 그룹 및 제2 그룹을 비교하여, 상기 제1 그룹에 포함된 k개의 디지털 비트로 구성된 값이 상기 제2 그룹에 포함된 k개의 디지털 비트로 구성된 값보다 큰 경우에 상기 제1 그룹과 상기 제2 그룹을 대표하는 디지털 값을 1로 결정하고, 반대의 경우에 상기 제1 그룹과 상기 제2 그룹을 대표하는 디지털 값을 0으로 결정하여, N/k 비트의 디지털 값을 상기 암호 키로 생성하는, 암호화 장치.
  13. 제8항에 있어서,
    상기 암호 키 모듈 내의 노드는 반도체의 전도성 레이어이고,
    상기 디자인 룰은 상기 반도체의 전도성 레이어 사이의 간격(gap)에 연관된 것이며, 상기 암호 키 모듈은, 상기 반도체의 전도성 레이어 사이가 단락되는지의 여부를 이용하여 상기 암호 키를 생성하여 제공하는, 암호화 장치.
  14. 제7항에 있어서,
    상기 암호 키 모듈은,
    각각 1 비트 - 단, N은 자연수임 - 의 디지털 값을 출력하는 N 개의 단위 셀
    을 포함하고,
    상기 N 개의 단위 셀의 각각은, 반도체 제조 공정 편차(Process variation)에 기반하여 1 비트의 디지털 값을 생성하여,
    상기 암호 키 모듈이 N 비트의 암호 키를 생성하여 제공하는, 암호화 장치.
  15. 제14항에 있어서,
    상기 N 개의 단위 셀 중 제1 단위 셀은,
    제1 논리 임계치를 갖는 제1 인버터; 및
    제2 논리 임계치를 갖는 제2 인버터;
    를 포함하고,
    상기 제1 인버터의 입력 단자 및 상기 제2 인버터의 출력 단자는 제1 노드에 연결되고, 상기 제1 인버터의 출력 단자 및 상기 제2 인버터의 입력 단자는 제2 노드에 연결되어, 피드백 구조를 이루고,
    상기 제1 논리 임계치와 상기 제2 논리 임계치는 반도체 제조 공정 편차에 기반하여 서로 상이하며, 상기 제1 노드의 논리 레벨과 상기 제2 노드의 논리 레벨에 따라 상기 제1 단위 셀에 대응하는 1 비트 디지털 값이 결정되는, 암호화 장치.
  16. 제7항에 있어서,
    상기 암호 키 모듈은,
    N 개(단, N은 자연수)의 차동 증폭기를 포함하고,
    상기 N 개의 차동 증폭기 중 제1 차동 증폭기에 있어서, 상기 제1 차동 증폭기의 두 개의 입력 단자가 단락되는 경우, 상기 제1 차동 증폭기의 두 개의 출력 단자의 논리 레벨은 반도체 제조 공정 편차에 기반하여 서로 상이하며, 상기 두 개의 출력 단자의 논리 레벨에 따라 상기 제1 차동 증폭기에 대응하는 1 비트 디지털 값이 결정되어,
    상기 암호 키 모듈이 N 비트의 암호 키를 생성하여 제공하는, 암호화 장치.
  17. 암호화 할 데이터를 암호 키를 제공하는 암호 키 모듈을 내부에 포함하는 암호화 모듈 내로 입력 받는 단계; 및
    상기 암호 키 모듈이 제공하는 암호 키를 이용하여 상기 암호화 알고리즘을 수행하여 상기 데이터를 암호화 하는 단계
    를 포함하는 암호화 방법.
  18. 제17항에 있어서,
    상기 암호화 방법은,
    상기 암호화 모듈이 각각 서로 다른 암호 키를 제공하는 복수 개의 암호 키 모듈을 내부에 포함하는 경우, 상기 암호화 하는 단계에 앞서서 상기 복수 개의 암호 키 모듈 중 어느 하나를 선택하는 단계
    를 더 포함하고,
    상기 암호화 하는 단계는, 상기 선택된 암호 키 모듈이 제공하는 암호 키를 이용하여 상기 암호화 알고리즘을 수행하여 상기 데이터를 암호화 하는, 암호화 방법.
  19. 암호화할 입력 데이터를 입력 받아 암호 키를 이용한 암호화 알고리즘을 수행하는 IC 칩에 있어서,
    암호 키를 제공하는 암호 키 모듈을 내부에 포함하며, 상기 암호 키 모듈이 제공하는 암호 키를 이용하여 상기 암호화 알고리즘을 수행하는 암호화 모듈
    을 포함하는 IC 칩.
  20. 제19항에 있어서,
    상기 IC 칩은 스마트 카드에 내장되어 상기 스마트 카드의 응용예 있어서 상기 암호화 알고리즘을 수행하는, IC 칩.
PCT/KR2011/001376 2011-02-15 2011-02-28 물리적 공격을 방어하는 암호화 장치 및 암호화 방법 WO2012111872A1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
EP11858891.2A EP2677452B1 (en) 2011-02-15 2011-02-28 Encryption device and method for defending a physical attack
ES11858891.2T ES2685758T3 (es) 2011-02-15 2011-02-28 Dispositivo de encriptación y método para la defensa contra un ataque físico
CN201180070008.XA CN103621006B (zh) 2011-02-15 2011-02-28 防止物理性攻击的加密装置及方法
US13/985,765 US9014371B2 (en) 2011-02-15 2011-02-28 Encryption device and method for defending a physical attack
JP2013554380A JP2014506095A (ja) 2011-02-15 2011-02-28 物理的な攻撃を防御する暗号化装置及び暗号化方法
US14/665,599 US9397826B2 (en) 2011-02-15 2015-03-23 Encryption device and method for defending a physical attack
US15/187,630 US20160301528A1 (en) 2011-02-15 2016-06-20 Encryption device and method for defending a physical attack

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020110013269A KR101118826B1 (ko) 2011-02-15 2011-02-15 물리적 공격을 방어하는 암호화 장치 및 암호화 방법
KR10-2011-0013269 2011-02-15

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US13/985,765 A-371-Of-International US9014371B2 (en) 2011-02-15 2011-02-28 Encryption device and method for defending a physical attack
US14/665,599 Continuation US9397826B2 (en) 2011-02-15 2015-03-23 Encryption device and method for defending a physical attack

Publications (1)

Publication Number Publication Date
WO2012111872A1 true WO2012111872A1 (ko) 2012-08-23

Family

ID=46141374

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2011/001376 WO2012111872A1 (ko) 2011-02-15 2011-02-28 물리적 공격을 방어하는 암호화 장치 및 암호화 방법

Country Status (7)

Country Link
US (3) US9014371B2 (ko)
EP (1) EP2677452B1 (ko)
JP (2) JP2014506095A (ko)
KR (1) KR101118826B1 (ko)
CN (2) CN103621006B (ko)
ES (1) ES2685758T3 (ko)
WO (1) WO2012111872A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015034148A1 (ko) * 2013-09-06 2015-03-12 (주) 아이씨티케이 식별 키 생성 장치 및 방법
KR101801547B1 (ko) 2015-08-25 2017-11-27 한국과학기술원 물리적, 영구적 파괴를 이용한 하드웨어 기반의 보안 장치 및 이를 이용한 보안 방법

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150071434A1 (en) * 2011-06-07 2015-03-12 Static Control Components, Inc. Secure Semiconductor Device Having Features to Prevent Reverse Engineering
EP3032421A4 (en) 2013-07-26 2017-04-19 ICTK Co. Ltd. Device and method for testing randomness
US9076003B2 (en) * 2013-08-20 2015-07-07 Janus Technologies, Inc. Method and apparatus for transparently encrypting and decrypting computer interface data
KR101541597B1 (ko) 2013-09-03 2015-08-03 (주) 아이씨티케이 식별키 생성 장치 및 방법
KR101489091B1 (ko) * 2013-09-30 2015-02-04 (주) 아이씨티케이 반도체 공정을 이용한 식별키 생성 장치 및 방법
KR101495448B1 (ko) 2013-10-29 2015-02-26 (주) 아이씨티케이 사용자 인증을 위한 ic 칩 및 인증 방법
KR102201642B1 (ko) 2014-11-28 2021-01-13 삼성전자주식회사 Puf 회로 및 그것의 키 등록 방법
US20170077046A1 (en) * 2015-09-11 2017-03-16 The Regents Of The University Of California Physical unclonable functions through locally enhanced defectivity
WO2017048257A1 (en) * 2015-09-17 2017-03-23 Hewlett Packard Enterprise Development Lp Obscuration of a cache signal
US10778679B2 (en) 2016-02-12 2020-09-15 Industry-University Cooperation Foundation Hanyang University Secure semiconductor chip and operating method thereof
WO2017138797A1 (ko) * 2016-02-12 2017-08-17 한양대학교 산학협력단 시큐어 시스템 온 칩
WO2017138799A1 (ko) * 2016-02-12 2017-08-17 한양대학교 산학협력단 하드웨어 디바이스 및 그 인증 방법
CN105790933A (zh) * 2016-03-03 2016-07-20 山东超越数控电子有限公司 一种自动识别的光模块加密方法
JP6471130B2 (ja) * 2016-09-20 2019-02-13 ウィンボンド エレクトロニクス コーポレーション 半導体装置およびセキュリティシステム
KR102071402B1 (ko) * 2016-11-01 2020-03-03 한국전자통신연구원 사물인터넷 환경 키 관리 서비스 제공 장치
KR102050021B1 (ko) * 2017-04-27 2019-11-28 김태욱 식별키 유용성 판별장치
KR102071937B1 (ko) * 2017-04-27 2020-01-31 김태욱 식별키 생성장치 및 식별키 생성방법
DE102018123103A1 (de) * 2017-10-13 2019-04-18 Samsung Electronics Co., Ltd. Halbleitervorrichtung, die Sicherheitsschlüssel erzeugt, Verfahren zum Erzeugen eines Sicherheitsschlüssels und Verfahren zum Registrieren des Sicherheitsschlüssels
US11108572B2 (en) * 2018-10-11 2021-08-31 Taiwan Semiconductor Manufacturing Company, Ltd. Physically unclonable function device with a load circuit to generate bias to sense amplifier
KR102244382B1 (ko) 2019-06-13 2021-04-26 숭실대학교산학협력단 Wave-chaos 기반 무선 신호 전송의 물리적 암호화 시스템
KR102146132B1 (ko) * 2019-08-08 2020-08-20 주식회사 페이콕 보안 디바이스 및 방법
US11282799B2 (en) 2020-01-14 2022-03-22 United Microelectronics Corp. Device for generating security key and manufacturing method thereof
US11127480B1 (en) * 2020-06-30 2021-09-21 Dell Products L.P. System and method for short circuit detection
CN112733209B (zh) * 2021-01-19 2023-08-08 贵州黔龙图视科技有限公司 一种低成本硬件加密方法及装置
KR20220155684A (ko) 2021-05-17 2022-11-24 삼성전자주식회사 Crum 칩 및 스마트 카드
US11574079B2 (en) * 2021-05-27 2023-02-07 Nuvoton Technology Corporation Multi-stage provisioning of secret data
US11791290B2 (en) 2021-06-29 2023-10-17 International Business Machines Corporation Physical unclonable function for secure integrated hardware systems
CN115130152B (zh) * 2022-09-01 2022-11-18 北京紫光青藤微系统有限公司 一种物理不可克隆函数的生成方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08278750A (ja) * 1995-03-31 1996-10-22 Internatl Business Mach Corp <Ibm> 公開キー暗号法を用いたデータ暗号化の装置及び方法
JPH10116326A (ja) * 1996-10-11 1998-05-06 Secom Co Ltd Icカード用暗号化装置
KR20060051957A (ko) * 2004-10-01 2006-05-19 히로미 후카야 암호화 데이터 배포 방법, 암호화 장치, 복호화 장치,암호화 프로그램 및 복호화 프로그램
US20090080647A1 (en) * 2005-12-14 2009-03-26 Nds Limited Method and System for Usage of Block Cipher Encryption

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3673015B2 (ja) 1996-04-26 2005-07-20 沖電気工業株式会社 半導体装置における周辺デバイス識別方法
US5802592A (en) 1996-05-31 1998-09-01 International Business Machines Corporation System and method for protecting integrity of alterable ROM using digital signatures
US5990701A (en) 1997-06-25 1999-11-23 Sun Microsystems, Inc. Method of broadly distributing termination for buses using switched terminators
US6118279A (en) 1997-07-30 2000-09-12 Candescent Technologies Corporation Magnetic detection of short circuit defects in plate structure
JP2000122931A (ja) * 1998-10-15 2000-04-28 Toshiba Corp デジタル集積回路
US6555204B1 (en) * 2000-03-14 2003-04-29 International Business Machines Corporation Method of preventing bridging between polycrystalline micro-scale features
JPWO2002050910A1 (ja) 2000-12-01 2004-04-22 株式会社日立製作所 半導体集積回路装置の識別方法と半導体集積回路装置の製造方法及び半導体集積回路装置
US7085386B2 (en) 2001-12-07 2006-08-01 Activcard System and method for secure replacement of high level cryptographic keys in a personal security device
EP1733502B1 (fr) * 2004-03-29 2009-09-30 Stmicroelectronics Sa Processeur d'execution d'un algorithme de type aes
US7266661B2 (en) * 2004-05-27 2007-09-04 Silverbrook Research Pty Ltd Method of storing bit-pattern in plural devices
WO2006071380A2 (en) * 2004-11-12 2006-07-06 Pufco, Inc. Securely field configurable device
JP4524176B2 (ja) * 2004-12-17 2010-08-11 パナソニック株式会社 電子デバイスの製造方法
KR101194837B1 (ko) * 2005-07-12 2012-10-25 삼성전자주식회사 멱지수를 숨기는 dpa 대책의 고속 계산을 위한 암호화장치 및 방법
EP1977511B1 (en) * 2006-01-24 2011-04-06 Verayo, Inc. Signal generator based device security
US8036379B2 (en) * 2006-03-15 2011-10-11 Microsoft Corporation Cryptographic processing
JP4913861B2 (ja) 2006-04-13 2012-04-11 エヌエックスピー ビー ヴィ 半導体デバイス識別子の生成方法および半導体デバイス
CN100568393C (zh) * 2006-06-14 2009-12-09 国际商业机器公司 数据存储装置、数据存储方法以及数据读取方法
WO2008056612A1 (fr) 2006-11-06 2008-05-15 Panasonic Corporation Appareil de sécurité d'informations
EP2191410B1 (en) * 2007-08-22 2014-10-08 Intrinsic ID B.V. Identification of devices using physically unclonable functions
KR100969961B1 (ko) * 2007-12-20 2010-07-15 한국전자통신연구원 블록 암호 아리아의 치환 연산 장치 및 방법
CN101498772B (zh) 2008-01-29 2012-07-18 西门子(中国)有限公司 磁共振成像系统中接收线圈的识别码电路
US7991154B2 (en) * 2008-05-14 2011-08-02 Univeristy of Castilla-La Mancha Exponentiation method using multibase number representation
KR100960113B1 (ko) * 2008-09-19 2010-05-27 한국전자통신연구원 고속처리 가능한 아리아 암복호화 장치
US8699714B2 (en) * 2008-11-17 2014-04-15 Intrinsic Id B.V. Distributed PUF
US8051097B2 (en) * 2008-12-15 2011-11-01 Apple Inc. System and method for authentication using a shared table and sorting exponentiation
KR100926214B1 (ko) 2009-04-23 2009-11-09 한양대학교 산학협력단 공정편차를 이용한 디지털 값 생성 장치 및 방법
JP2011010218A (ja) * 2009-06-29 2011-01-13 Toshiba Corp 携帯可能電子装置、及び携帯可能電子装置の制御方法
US20110080715A1 (en) 2009-10-07 2011-04-07 Castles Technology Co., Ltd. Protective structure of electronic component
US8127151B2 (en) 2009-10-13 2012-02-28 Lockheed Martin Corporation Hardware-based key generation and recovery
KR101139630B1 (ko) 2010-12-09 2012-05-30 한양대학교 산학협력단 식별키 생성 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08278750A (ja) * 1995-03-31 1996-10-22 Internatl Business Mach Corp <Ibm> 公開キー暗号法を用いたデータ暗号化の装置及び方法
JPH10116326A (ja) * 1996-10-11 1998-05-06 Secom Co Ltd Icカード用暗号化装置
KR20060051957A (ko) * 2004-10-01 2006-05-19 히로미 후카야 암호화 데이터 배포 방법, 암호화 장치, 복호화 장치,암호화 프로그램 및 복호화 프로그램
US20090080647A1 (en) * 2005-12-14 2009-03-26 Nds Limited Method and System for Usage of Block Cipher Encryption

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015034148A1 (ko) * 2013-09-06 2015-03-12 (주) 아이씨티케이 식별 키 생성 장치 및 방법
EP3043281A4 (en) * 2013-09-06 2017-02-08 ICTK Co. Ltd. Device and method for generating identification key
US9984982B2 (en) 2013-09-06 2018-05-29 Ictk Co., Ltd. Device and method for generating identification key
KR101801547B1 (ko) 2015-08-25 2017-11-27 한국과학기술원 물리적, 영구적 파괴를 이용한 하드웨어 기반의 보안 장치 및 이를 이용한 보안 방법

Also Published As

Publication number Publication date
ES2685758T3 (es) 2018-10-11
US20160301528A1 (en) 2016-10-13
JP2014506095A (ja) 2014-03-06
JP2016021772A (ja) 2016-02-04
EP2677452B1 (en) 2018-08-22
US20130322624A1 (en) 2013-12-05
EP2677452A4 (en) 2014-08-06
CN103621006B (zh) 2016-09-07
KR101118826B1 (ko) 2012-04-20
CN106295408A (zh) 2017-01-04
US20150195085A1 (en) 2015-07-09
US9397826B2 (en) 2016-07-19
CN103621006A (zh) 2014-03-05
US9014371B2 (en) 2015-04-21
EP2677452A1 (en) 2013-12-25
CN106295408B (zh) 2020-06-02

Similar Documents

Publication Publication Date Title
WO2012111872A1 (ko) 물리적 공격을 방어하는 암호화 장치 및 암호화 방법
WO2014030911A1 (ko) 인증 정보 처리 장치 및 방법
WO2010123185A1 (en) Semiconductor chip and method for generating digital value using process variation
WO2012077856A1 (ko) 식별키 생성 장치 및 방법
WO2015012667A1 (ko) 랜덤성 테스트 장치 및 방법
WO2012134239A2 (ko) 디지털 값 생성 장치 및 방법
WO2013025060A2 (ko) 사물지능통신에서 puf에 기반한 장치간 보안 인증 장치 및 방법
Maiti et al. The impact of aging on an FPGA-based physical unclonable function
US9991892B2 (en) Electronic device having a physical unclonable function identifier
WO2019088689A1 (ko) Puf-qrng 양자암호 보안단말기 시스템 및 암호키 생성 방법
US20100085075A1 (en) Integrated circuit and method for preventing an unauthorized access to a digital value
WO2018199539A1 (ko) 식별키 생성장치 및 식별키 생성방법
KR101169172B1 (ko) 공정편차를 이용한 식별 키 생성 장치 및 방법
KR20120089607A (ko) 식별키 생성 장치 및 방법
KR101882289B1 (ko) 인증 정보 처리 장치 및 방법
WO2015034148A1 (ko) 식별 키 생성 장치 및 방법
WO2015053441A1 (ko) 식별키 생성 장치 및 방법
WO2017126900A1 (ko) 식별키 생성 장치 및 그 관리 방법
WO2015034146A1 (ko) 식별키 생성 장치 및 방법
WO2015046682A1 (ko) 반도체 공정을 이용한 식별키 생성 장치 및 방법
KR100964845B1 (ko) 공정편차에 기반한 보안 시스템 및 방법
Elgendy et al. Impact of physical design on PUF behavior: a statistical study
WO2018199541A1 (ko) 식별키 유용성 판별장치
WO2015053440A1 (ko) 식별 키 생성 장치 및 방법
WO2012133965A1 (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: 11858891

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013554380

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 13985765

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2011858891

Country of ref document: EP