KR20200082982A - 물리적 복제방지 기능의 보안을 위한 집적 회로 및 이를 포함하는 장치 - Google Patents

물리적 복제방지 기능의 보안을 위한 집적 회로 및 이를 포함하는 장치 Download PDF

Info

Publication number
KR20200082982A
KR20200082982A KR1020180174127A KR20180174127A KR20200082982A KR 20200082982 A KR20200082982 A KR 20200082982A KR 1020180174127 A KR1020180174127 A KR 1020180174127A KR 20180174127 A KR20180174127 A KR 20180174127A KR 20200082982 A KR20200082982 A KR 20200082982A
Authority
KR
South Korea
Prior art keywords
signal
puf
cell
generate
selection signal
Prior art date
Application number
KR1020180174127A
Other languages
English (en)
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 KR1020180174127A priority Critical patent/KR20200082982A/ko
Priority to CN201910743005.6A priority patent/CN111385091B/zh
Priority to US16/553,318 priority patent/US11403432B2/en
Priority to TW108138184A priority patent/TWI843758B/zh
Publication of KR20200082982A publication Critical patent/KR20200082982A/ko
Priority to US17/847,593 priority patent/US20220318436A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/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/73Protecting 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 by creating or determining hardware identification, e.g. serial numbers
    • 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/75Protecting 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 by inhibiting the analysis of circuitry or operation
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L23/00Details of semiconductor or other solid state devices
    • H01L23/57Protection from inspection, reverse engineering or tampering
    • H01L23/576Protection from inspection, reverse engineering or tampering using active circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • H03K19/21EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

물리적 복제방지 기능의 보안을 위한 집적 회로는, 본 개시의 예시적 실시예에 따라, 고유한 값을 갖는 셀 신호를 생성하도록 각각 구성된 복수의 PUF 셀들, 복수의 PUF 셀들 중 선택된 PUF 셀이 출력하는 셀 신호를 비반전시킨 제1 신호 및 반전시킨 제2 신호를 출력하는 선택기, 및 제1 신호 및 제2 신호 중 적어도 하나에 기초하여, 보안 키(secure key)를 생성하는 키 생성기를 포함할 수 있고, 선택기는, 동일한 구조를 가지고 제1 신호 및 제2 신호를 각각 생성하는 제1 변환 회로 및 제2 변환 회로를 포함할 수 있다.

Description

물리적 복제방지 기능의 보안을 위한 집적 회로 및 이를 포함하는 장치{INTEGRATED CIRCUIT FOR SECURITY OF PHYSICALLY UNCLONABLE FUNCTION AND DEVICE INCLUDING THE SAME}
본 개시의 기술적 사상은 물리적 복제방지 기능(physically unclonable function)에 관한 것으로서, 자세하게는 물리적 복제방지 기능의 보안을 위한 집적 회로 및 이를 포함하는 장치에 관한 것이다.
물리적 복제방지 기능(Physical Unclonable Function; PUF)은 하드웨어의 본질적인(intrinsic) 특성에 기초하여 하드웨어에 대응하는 고유한(unique) 값을 제공할 수 있다. 예를 들면, 반도체 칩들과 같은 복수의 하드웨어들이 동일한 공정에 의해서 제조되더라도, 복수의 하드웨어들 각각은 물리적으로 완전히 일치하지 아니할 수 있고, 복수의 하드웨어들에서 미약한 변동(variation)들이 발생할 수 있다. 이러한 변동들에 기초하여, 하드웨어의 고유한 값이 추출될 수 있고, 추출된 값은 보안이 필요한 어플리케이션, 예컨대 보안 통신, 보안 데이터 처리, 사용자 식별, 펌웨어(firmware) 업데이트 등에 사용될 수 있다. 이에 따라, 물리적 복제방지 기능을 제공하는 부품은, 높은 엔트로피 또는 낮은 예측가능성을 가질 것이 요구될 뿐만 아니라, 고유한 값이 외부로 유출되지 아니하도록 부채널 공격(side-channel attack; SCA)에 대한 효과적인 방어책(countermeasure)을 제공할 것이 요구된다.
본 개시의 기술적 사상은 물리적 복제방지 기능의 보안을 위한 집적 회로 및 이를 포함하는 장치에 관한 것으로서, 물리적 복제방지 기능에 대한 다양한 부채널 공격들에 대한 효과적인 방어책을 제공하는 집적 회로 및 이를 포함하는 장치에 관한 것이다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 물리적 복제방지 기능의 보안을 위한 집적 회로는, 고유한 값을 갖는 셀 신호를 생성하도록 각각 구성된 복수의 PUF 셀들, 복수의 PUF 셀들 중 선택된 PUF 셀이 출력하는 셀 신호를 비반전시킨 제1 신호 및 반전시킨 제2 신호를 출력하는 선택기, 및 제1 신호 및 제2 신호 중 적어도 하나에 기초하여, 보안 키(secure key)를 생성하는 키 생성기를 포함할 수 있고, 선택기는, 동일한 구조를 가지고 제1 신호 및 제2 신호를 각각 생성하는 제1 변환 회로 및 제2 변환 회로를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 물리적 복제 방지 기능의 보안을 위한 집적 회로는, 제1 선택 신호를 생성하는 선택 신호 생성기, 제1 선택 신호를 공통으로 수신하는 복수의 PUF 블록들, 및 복수의 PUF 블록들이 동시에 출력하는 복수의 출력 신호들 중 적어도 하나에 기초하여 보안 키(secure key)를 생성하는 키 생성기를 포함할 수 있고, 복수의 PUF 블록 각각은, 고유한 값을 갖는 셀 신호를 생성하도록 각각 구성된 복수의 PUF 셀들을 포함하고, 제1 선택 신호에 응답하여 PUF 셀들 중 선택된 PUF 셀이 출력하는 셀 신호에 기초하여 출력 신호를 생성할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 물리적 복제 방지 기능의 보안을 위한 집적 회로는, 고유한 값을 갖는 셀 신호를 생성하도록 각각 구성된 복수의 PUF 셀들, 랜덤하게 지연된 시점들에서 복수의 PUF 셀들 각각이 선택되도록 선택 신호를 생성하는 선택 신호 생성기, 및 선택된 PUF 셀의 셀 신호에 기초하여 보안 키(secure key)를 생성하는 키 생성기를 포함할 수 있다.
본 개시의 예시적 실시예에 따른 집적 회로 및 이를 포함하는 장치는, 물리적 복제방지 기능의 고유한 값들을 독출하는 동작의 예측가능성을 현저하게 감소시킴으로써 물리적 복제방지 기능의 보안을 향상시킬 수 있다.
또한, 본 개시의 예시적 실시예에 따른 집적 회로 및 이를 포함하는 장치는, 물리적 복제방지 기능의 고유한 값들을 독출하는 동작의 예측가능성을 감소시키기 위한 자원을 공통으로 이용함으로써 물리적 복제방지 기능에 대한 부채널 공격을 검출할 수 있다.
또한, 본 개시의 예시적 실시예에 따른 집적 회로 및 이를 포함하는 장치는, 예측가능성을 감소시키기 위한 소스를 자체적으로 충당함으로써 향상된 보안 및 감소된 비용을 제공할 수 있다.
본 개시의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 본 개시의 예시적 실시예들에 대한 기재로부터 본 개시의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 집적 회로를 나타내는 블록도이다.
도 2a 및 도 2b는 본 개시의 예시적 실시예들에 따른 PUF 셀의 예시들을 나타내는 블록도들이다.
도 3은 본 개시의 예시적 실시예에 따라 도 1의 PUF 블록의 예시를 나타내는 블록도이다.
도 4는 본 개시의 예시적 실시예에 따라 도 3의 제1 변환 회로 및 제2 변환 회로의 예시를 나타내는 블록도이다.
도 5는 본 개시의 예시적 실시예에 따른 집적 회로를 나타내는 블록도이다.
도 6은 본 개시의 예시적 실시예에 따라 물리 복제방지 기능에 대한 공격을 검출하는 방법을 나타내는 순서도이다.
도 7은 본 개시의 예시적 실시예에 따른 집적 회로를 나타내는 블록도이다.
도 8a 및 도 8b는 본 개시의 예시적 실시예들에 따라 도 7의 유효성 테이블의 예시들을 나타내는 도면들이다.
도 9는 본 개시의 예시적 실시예에 따라 물리 복제방지 기능에 대한 공격을 검출하는 방법을 나타내는 순서도이다.
도 10은 본 개시의 예시적 실시예에 따라 선택 신호 생성기를 나타내는 블록도이다.
도 11은 본 개시의 예시적 실시예에 따라 도 10의 선택 신호 생성기의 동작의 예시를 나타내는 타이밍도이다.
도 12는 본 개시의 예시적 실시예에 따라 PUF 셀들을 독출하는 방법을 나타내는 순서도이다.
도 13a 및 도 13b는 본 개시의 예시적 실시예들에 따라 시드를 생성하는 예시들을 나타내는 블록도들이다.
도 14는 본 개시의 예시적 실시예에 따른 집적 회로를 나타내는 블록도이다.
도 15는 본 개시의 예시적 실시예에 따라 PUF 셀들을 독출하는 방법을 나타내는 순서도이다.
도 16a 내지 도 16c는 본 개시의 예시적 실시예에 따른 물리적 복제방지 기능의 보안을 위한 집적 회로를 포함하는 장치의 예시들의 블록도들이다.
도 1은 본 개시의 예시적 실시예에 따른 집적 회로(10)를 나타내는 블록도이다. 집적 회로(10)는 물리적 복제방지 기능(Physically Unclonable Function; PUF)의 보안을 위한 집적 회로(10)로서 지칭될 수 있고, 도 1에 도시된 바와 같이, 보안이 요구되는 보안 키(security key)(KEY)를 생성할 수 있다. 도 1에 도시된 바와 같이, 집적 회로(10)는 복수의 PUF 블록들(11_1, 11_2,..., 11_n), 멀티플렉서(12), 선택 신호 생성기(13) 및 키 생성기(14)를 포함할 수 있다. 일부 실시예들에서, 집적 회로(10)는 반도체 공정을 통해서 제조될 수 있고, 집적 회로(10)의 구성요소들은, 단일 패키지에 패키징될 수도 있고, 2이상의 패키지들에 각각 패키징될 수도 있다.
도 1을 참조하면, 복수의 PUF 블록들(11_1, 11_2,..., 11_n)은 복수의 출력 신호들(OUT1, OUT2,..., OUTn)을 생성할 수 있다(n은 1보다 큰 정수). 일부 실시예들에서, 복수의 PUF 블록들(11_1, 11_2,..., 11_n)은 논리 합성을 통해서 설계될 수 있고, 디지털 로직들로서 구현될 수 있다. 예를 들면, 복수의 PUF 블록들(11_1, 11_2,..., 11_n)은 다양한 로직 게이트들을 정의하는 표준 셀 라이브러리를 참조하여 설계될 수 있고, 상호 동일한 구조를 가지도록 동일한 로직 게이트의 인스턴스들을 각각 포함할 수 있다.
복수의 PUF 블록들(11_1, 11_2,..., 11_n) 각각은 복수의 PUF 셀들을 포함할 수 있다. 예를 들면, 도 1에 도시된 바와 같이, 제1 PUF 블록(11_1)은 복수의 PUF 셀들(C1,..., Ck)을 포함할 수 있고(k는 1보다 큰 정수), 이에 따라 집적 회로(10)는 n*k 개의 PUF 셀들을 포함할 수 있다. 복수의 PUF 셀들(C1,..., Ck)은 고유한 값들을 각각 가지는 복수의 셀 신호들(CS1,..., CSk)을 생성할 수 있다. 도 2a 및 도 2b를 참조하여 후술되는 바와 같이, PUF 셀(예컨대, CS1)은, 고유한 레벨의 신호를 각각 출력하는 복수의 PUF 유닛들을 포함할 수 있고, 이에 따라 PUF 셀(예컨대, C1)이 출력하는 셀 신호(예컨대, CS1)는, 집적 회로(10)가 제조되는 과정에서 발생하는 다양한 변동(variation)들에 기인하여 고유한 값을 가질 수 있다. 예를 들면, 복수의 PUF 셀들(C1,..., Ck)에 포함된 소자들(예컨대, 트랜지스터들) 및/또는 패턴들은, 높이, 폭, 길이, 도핑 농도 등의 변동들에 기인하여, 동일한 반도체 공정에 의해서 제조된 다른 집적 회로의 복수의 PUF 셀들과 상이한, 고유한 특성을 가질 수 있다. 이에 따라, 복수의 셀 신호들(CS1,..., CSk)이 고유한 값들을 가질 수 있고, 보안 키(KEY)를 생성하는데 사용될 수 있다.
복수의 PUF 셀들(C1,..., Ck)로부터 복수의 셀 신호들(CS1,..., CSk)을 획득하는 동작, 즉 복수의 셀 신호들(CS1,..., CSk)의 고유한 값들을 독출하는 동작(복수의 PUF 셀들(C1,..., Ck)을 독출하는 동작으로 지칭될 수 있다)의 보안이 중요할 수 있다. 예를 들면, 부채널 공격(side-channel attack; SCA)은, 집적 회로(10)에서 발생하는 전력 소모, 전가지장, 의도적으로 인가된 결함(fault)에 대한 응답(response) 등을 이용하거나 집적 회로(10)로부터 측정된 다양한 파라미터들에 기초한 기계 학습(machine learning)을 이용함으로써 복수의 셀 신호들(CS1,..., CSk) 및/또는 보안 키(KEY)를 획득하는 것을 시도할 수 있다. 이에 따라, 복수의 PUF 셀들(C1,..., Ck)이 높은 엔트로피 및 낮은 예측가능성을 가지는 복수의 셀 신호들(CS1,..., CSk)을 제공하는 것뿐만 아니라, 복수의 PUF 셀들(C1,..., Ck)을 독출하는 과정에서 부채널 공격(단순하게, 공격으로 지칭될 수도 있다)에 대한 효과적인 방어책(countermeasure)이 요구될 수 있다. 이하에서 도면들을 참조하여 후술되는 바와 같이, 본 개시의 예시적 실시예들에 따른 집적 회로는 복수의 PUF 셀들(C1,..., Ck)을 독출하는 동작의 예측가능성을 현저하게 감소시킴으로써 물리적 복제방지 기능(Physically Unclonable Function; PUF)의 보안을 향상시킬 수 있다.
도 1에 도시된 바와 같이, 복수의 PUF 블록들(11_1, 11_2,..., 11_n)은 선택 신호 생성기(13)로부터 제1 선택 신호(SEL1)를 공통으로 수신할 수 있고, 제1 선택 신호(SEL1)에 응답하여 복수의 PUF 셀들 중 하나가 선택될 수 있다. 예를 들면, 제1 선택 신호(SEL1)에 응답하여 제1 PUF 블록(11_1)의 복수의 PUF 셀들(C1,..., Ck) 중 하나가 선택될 수 있고, 선택된 PUF 셀이 출력하는 셀 신호에 대응하는 제1 출력 신호(OUT1)가 생성될 수 있다. 이에 따라, 복수의 PUF 블록들(11_1, 11_2,..., 11_n)은 동시에 복수의 출력 신호들(OUT1, OUT2,..., OUTn)을 생성할 수 있고, 제1 선택 신호(SEL1)에 독립적으로 복수의 PUF 블록들(11_1, 11_2,..., 11_n)의 전력 소비는 균등할 수 있다. 결과적으로, 복수의 PUF 블록들(11_1, 11_2,..., 11_n)의 전력 소비의 예측가능성이 감소할 수 있다. PUF 블록의 예시는 도 3 및 도 4 등을 참조하여 후술될 것이다.
멀티플렉서(12)는 복수의 PUF 블록들(11_1, 11_2,..., 11_n)로부터 복수의 출력 신호들(OUT1, OUT2,..., OUTn)을 수신할 수 있고, 선택 신호 생성기(13)로부터 수신되는 제2 선택 신호(SEL2)에 따라 복수의 출력 신호들(OUT1, OUT2,..., OUTn) 중 하나에 대응하는 PUF 신호(PUF)를 키 생성기(14)에 제공할 수 있다. 멀티플렉서(12)는 제2 선택 신호(SEL2)에 응답하여 복수의 출력 신호들(OUT1, OUT2,..., OUTn) 중 하나를 선택하는 임의의 구조를 가질 수 있고, 명칭에 그 구조가 제한되지 아니하는 점이 유의된다
선택 신호 생성기(13)는 제1 선택 신호(SEL1) 및 제2 선택 신호(SEL2)를 생성할 수 있다. 일부 실시예들에서, 선택 신호 생성기(13)는 복수의 PUF 블록들(11_1, 11_2,..., 11_n)에 포함된 n*k 개의 PUF 셀들을 누락없이 선택하도록 제1 선택 신호(SEL1) 및 제2 선택 신호(SEL2)를 생성할 수 있다. 선택 신호 생성기(13)는 PUF 블록(예컨대, 11_1)에 포함된 복수의 PUF 셀들(예컨대, C1,..., Ck)이 누락 없이 하나씩 선택되도록 제1 선택 신호(SEL1)를 생성할 수 있고, 예컨대 복수의 PUF 셀들(C1,..., Ck)이 순차적으로 선택되도록 제1 선택 신호(SEL1)를 생성할 수 있다. 또한, 선택 신호 생성기(13)는 복수의 PUF 블록들(11_1, 11_2,..., 11_n)이 누락 없이 하나씩 선택되도록 제2 선택 신호(SEL2)를 생성할 수 있다.
일부 실시예들에서, 선택 신호 생성기(13)는 PUF 셀을 독출하는 동작의 예측가능성을 감소시키도록 제1 선택 신호(SEL1) 및/또는 제2 선택 신호(SEL2)를 생성할 수 있다. 예를 들면, 선택 신호 생성기(13)는 복수의 PUF 셀들(C1,..., Ck)을 누락 없이 선택하되, 복수의 PUF 셀들(C1,..., Ck) 각각을 상이하게 지연된 시점들에서 선택할 수 있고, 이에 따라 PUF 셀을 독출하는 동작의 예측가능성은 더욱 감소할 수 있다. 선택 신호 생성기(13)의 예시는 도 10 등을 참조하여 후술될 것이다.
키 생성기(14)는 멀티플렉서(12)로부터 PUF 신호(PUF)를 수신할 수 있고, PUF 신호(PUF)에 기초하여 보안 키(KEY)를 생성할 수 있다. 일부 실시예들에서, 키 생성기(14)는 PUF 신호(PUF)를 반복하여 수신할 수 있고, 상이한 PUF 셀들에 대응하는 PUF 신호(PUF)의 값들을 수집할 수 있다. 키 생성기(14)는 수집된 PUF 신호(PUF)의 값들을 임의의 방식, 예컨대 모듈러 연산(modular arithmetic) 등을 사용하여 보안 키(KEY)를 생성할 수 있다.
도 2a 및 도 2b는 본 개시의 예시적 실시예들에 따른 PUF 셀의 예시들을 나타내는 블록도들이다. 도 1을 참조하여 전술된 바와 같이, 도 2a 및 도 2b의 PUF 셀들(20a, 20b) 각각은 고유한 레벨의 신호를 생성하는 PUF 유닛을 포함할 수 있다. 이하에서, 도 2a 및 도 2b는 도 1을 참조하여 설명될 것이며, 도 2a 및 도 2b에 대한 설명 중 중복되는 내용은 생략될 것이다.
도 2a를 참조하면, PUF 셀(20a)은 복수의 PUF 유닛들(20a_1,..., 20b_1)을 포함할 수 있고, 복수의 PUF 유닛들(20a_1,..., 20b_1) 각각은 셀 신호(CS)의 한 비트를 생성할 수 있다. 일부 실시예들에서, PUF 유닛은 2이상의 로직 게이트들을 포함할 수 있고, 2이상의 로직 게이트들의 문턱 레벨들의 차이에 기초하여 고유한 레벨의 신호를 생성할 수 있다. 예를 들면, 도 2a에 도시된 바와 같이, 제1 PUF 유닛(20a_1)은 상호 동일한 구조의 제1 인버터(G21a) 및 제2 인버터(G22a)를 포함할 수 있고, 제1 인버터(G21a)는 전기적으로 연결된 입력 및 출력을 가질 수 있다. 이에 따라, 노드(N20a)의 전압은 제1 인버터(G21a)의 제1 문턱 레벨, 즉 제1 인버터(G21a)가 로우 레벨(본 명세서에서, "0"으로 표현될 수 있다) 및 하이 레벨(본 명세서에서, "1"로 표현될 수 있다)을 구별하는 경계에 대응하는 전압 레벨을 가질 수 있다. 제2 인버터(G22a)는 자신의 제2 문턱 레벨 및 제1 인버터(G21a)의 제1 문턱 레벨에 의존하는 레벨을 갖는, 셀 신호(CS)의 첫 번째 비트(CS[1])를 출력할 수 있다. 셀 신호(CS)의 첫 번째 비트(CS[1])의 값, 즉 전압 레벨은 제1 문턱 레벨 및 제2 문턱 레벨의 차에 의존할 수 있다. 비록, 도 2a에서 제1 PUF 유닛(20a_1)은 2개의 인버터들(G21a, G22a)을 포함하는 것으로 도시되었으나, 일부 실시예들에서 PUF 유닛은 제2 인버터(G22a)에 후속하는 추가적인 인버터들을 더 포함할 수 있고, 추가적인 인버터들은 노드(N20a)의 전압 레벨을 전파(propagation)함으로써 로우 레벨 또는 하이 레벨로 증폭시킬 수 있다.
제1 인버터(G21a)는 제1 문턱 레벨에 기인하는 전력을 소비할 수 있는 한편, 제2 인버터(G22a)는 제1 문턱 레벨 및 제2 문턱 레벨의 차에 기인하는 전력을 소비할 수 있다. 예를 들면, 제1 문턱 레벨 및 제2 문턱 레벨의 차가 상대적으로 작은 경우, 제2 인버터(G22a)는 양의 공급 전압 및 음의 공급 전압(또는 접지 전압) 사이 형성된 전기적 경로를 통과하는 높은 전류에 기인하여 제1 인버터(G21a)의 전력에 근접한 전력을 소비할 수 있다. 다른 한편으로, 제1 문턱 레벨 및 제2 문턱 레벨의 차가 상대적으로 큰 경우, 제2 인버터(G22a)는 양의 공급 전압 및 음의 공급 전압 사이 형성된 전기적 경로를 통과하는 낮은 전류에 기인하여 낮은 전력을 소비할 수 있다. 구체적으로, 제2 인버터(G22a)는 제1 문턱 레벨 및 제2 문턱 레벨의 차의 절대값에 의존하는 전력을 소비할 수 있다.
전술된 바와 같이, 셀 신호(CS)가 로직 게이트들의 문턱 레벨들 차의 절대값에 의존함에 따라 부채널 공격에 대한 저항성은 보다 강화될 수 있다. 예를 들면, 제1 PUF 유닛(20a_1)의 제1 인버터(G21a)의 제1 문턱 레벨이 및 제2 인버터(G22a)의 제2 문턱 레벨보다 높은 경우, 제2 인버터(G22a)는 노드(N20a)의 전압을 하이 레벨로서 인식할 수 있고, 이에 따라 셀 신호(CS)의 첫 번째 비트(CS[1])는 로우 레벨일 수 있다. 다른 한편으로, 제1 문턱 레벨이 제2 문턱 레벨보다 낮은 경우 제2 인버터(G22a)는 노드(N20a)의 전압을 로우 레벨로서 인식할 수 있고, 이에 따라 셀 신호(CS)는 하이 레벨일 수 있다. 전술된 양 경우들에서 제1 문턱 레벨 및 제2 문턱 레벨의 차이의 절대값이 동일한 경우, 제2 인버터(G22a)가 소비하는 전력은 실질적으로 동일할 수 있다. 이에 따라, 부채널 공격은 양 경우들에서 동일한 전력 소비를 측정할 수 있으나, 양 경우들에서 셀 신호(CS)는 상이한 값들을 각각 가질 수 있고, 결과적으로, 공격에 대한 저항성을 강화할 수 있다.
도 2b를 참조하면, PUF 셀(20b)은 복수의 PUF 유닛들(20b_1, 20b_2,..., 20b_w)을 포함할 수 있고, 복수의 PUF 유닛들(20b_1, 20b_2,..., 20b_w) 각각은 2개의 NAND 게이트들을 포함할 수 있다. 예를 들면, 도 2b에 도시된 바와 같이, 제1 PUF 유닛(20b_1)은 상호 동일한 구조의 제1 NAND 게이트(G21b) 및 제2 NAND 게이트(G22b)를 포함할 수 있고, 제1 NAND 게이트(G21b)는 전기적으로 연결된 하나의 입력(A) 및 출력을 가질 수 있다.
도 2a의 PUF 셀(20a)과 비교할 때, 도 2b의 PUF 셀(20b)은 제1 선택 신호(SEL1)의 한 비트(SEL1[x])를 수신할 수 있다. 예를 들면, 도 2b에 도시된 바와 같이, 제1 NAND 게이트(G21b) 및 제2 NAND 게이트(G22b)는 제1 선택 신호(SEL1)의 한 비트(SEL1[x])를 수신하는 입력(B)을 각각 가질 수 있고, 이에 따라, 제1 선택 신호(SEL1)의 한 비트(SEL1[x])가 로우 레벨인 경우, 즉 PUF 셀(20b)이 선택되지 아니하는 경우, 셀 신호(CS)의 첫 번째 비트(CS[1])는 하이 레벨일 수 있다. 다른 한편으로, 제1 선택 신호(SEL1)의 한 비트(SEL1[x])가 하이 레벨인 경우, 즉 PUF 셀(20b)이 선택된 경우, 노드(N20b)는 제1 NAND 게이트(G21b)의 제1 문턱 레벨을 가질 수 있고, 셀 신호(CS)의 첫 번째 비트(CS[1])는 제1 문턱 레벨 및 제2 NAND 게이트(G22b)의 제2 문턱 레벨의 차이에 의존하는 레벨을 가질 수 있다.
PUF 블록(예컨대, 도 1의 11_1)이 도 2a의 PUF 셀(20a)을 포함하는 경우, PUF 블록은 제1 선택 신호(SEL1)에 응답하여 복수의 셀 신호들(CS1,..., CSk) 중 하나를 선택하는 회로(예컨대, 멀티플렉서)를 포함할 수 있다. 다른 한편으로, PUF 블록이 도 2b의 PUF 셀(20b)을 포함하는 경우, 선택되지 아니한 PUF 셀, 즉 로우 레벨의 제1 선택 신호(SEL1)의 한 비트를 수신하는 PUF 셀은 일정한 레벨의 셀 신호를 출력할 수 있으므로, PUF 블록은 제1 선택 신호(SEL1)에 독립적인 로직 회로(예컨대, 도 3의 321)를 포함할 수 있다. 이하에서 본 개시의 예시적 실시예들은, 도 2b에 도시된 바와 같이, 제1 선택 신호(SEL1)의 한 비트를 수신하는 PUF 셀을 주로 참조하여 설명될 것이나, 본 개시의 기술적 사상이 이에 제한되지 아니하는 것은 이해될 것이다. 또한, 이하에서 PUF 셀이 출력하는 셀 신호는 도 2a 및 도 2b에 도시된 바와 같이 w-비트수인 것으로 가정된다(w는 1보다 큰 정수).
도 3은 본 개시의 예시적 실시예에 따라 도 1의 PUF 블록의 예시를 나타내는 블록도이다. 도 1을 참조하여 전술된 바와 같이, 도 3의 PUF 블록(300)은 제1 선택 신호(SEL1)를 수신할 수 있고, 복수의 PUF 셀들(C1, C2,..., Ck) 중 제1 선택 신호(SEL1)에 응답하여 선택된 PUF 셀의 셀 신호에 대응하는 출력 신호(OUT)를 생성할 수 있다. 도 3에 도시된 바와 같이, PUF 블록(300)은 복수의 PUF 셀들(C1, C2,..., Ck) 및 선택기(320)를 포함할 수 있고, 이하에서 도 3은 도 1을 참조하여 설명될 것이다.
선택기(320)는 복수의 PUF 셀들(C1, C2,..., Ck)로부터 복수의 셀 신호들(CS1, CS2,..., CSk)을 수신할 수 있고, 샘플링된(sampled) 비반전(non-inverted) 셀 신호(pCSS) 및 샘플링된 반전(inverted) 셀 신호(nCSS)를 출력 신호(OUT)로서 생성할 수 있다. 즉, 출력 신호(OUT)는 샘플링된 비반전 셀 신호(pCSS) 및 샘플링된 반전 셀 신호(nCSS)를 포함할 수 있다. 도 3에 도시된 바와 같이, 선택기(320)는 조합 회로(321), 제1 변환 회로(322), 제2 변환 회로(323) 및 샘플링 회로(324)를 포함할 수 있다.
조합 회로(321)는 복수의 셀 신호들(CS1, CS2,..., CSk)을 수신할 수 있고, 선택된 셀 신호(CS0)를 출력할 수 있다. 도 2b를 참조하여 전술된 바와 같이, 제1 선택 신호(SEL1)에 의해서 선택되지 아니한 PUF 셀은 미리 정의된 레벨의 셀 신호를 생성할 수 있으므로, 조합 회로(321)는 제1 선택 신호(SEL1)에 의해서 선택된 PUF 셀이 출력하는 셀 신호에 의존하는 신호로서 선택된 셀 신호(CS0)를 생성할 수 있다. 예를 들면, 복수의 PUF 셀들(C1, C2,..., Ck) 각각이 도 2b의 PUF 유닛(20b_1)을 포함하는 경우, 선택되지 아니한 PUF 셀들은 하이 레벨의 셀 신호들을 생성할 수 있고, 조합 회로(321)는 복수의 셀 신호들(CS1, CS2,..., CSk)을 AND 연산 또는 NAND 연산함으로써, 선택된 PUF 셀의 셀 신호에 의존하는 선택된 셀 신호(CS0)를 생성할 수 있다.
제1 변환 회로(322) 및 제2 변환 회로(323)는 동일한 구조를 가질 수 있고, 선택된 셀 신호(CS0)를 공통으로 수신할 수 있다. 제1 변환 회로(322)는 선택된 셀 신호(CS0)를 비반전시킴으로써 비반전 셀 신호(pCS)를 생성할 수 있고, 제2 변환 회로(323)는 선택된 셀 신호(CS0)를 반전시킴으로써 반전 셀 신호(nCS)를 생성할 수 있다. 이에 따라, 제1 변환 회로(322) 및 제2 변환 회로(323)뿐만 아니라 후속하는 샘플링 회로(324)에서 소비되는 전력은, 선택된 셀 신호(CS0)의 값에 독립적으로 일정하게 유지될 수 있다.
제1 변환 회로(322) 및 제2 변환 회로(323)는 또한, 해밍 웨이트(Hamming weight)를 일정하게 할 수 있다. 해밍 웨이트는 제로(zero) 심볼로부터 상이한 심볼들의 개수를 지칭할 수 있고, 멀티 비트 신호에서는 '1'의 개수를 지칭할 수 있다. 부채널 공격은 전력 소비뿐만 아니라 해밍 웨이트를 사용할 수 있고, 비반전 셀 신호(pCS) 및 반전 셀 신호(nCS)의 총 해밍 웨이트는 셀 신호의 비트수 w의 2배, 즉 "2*w"로 일정하게 유지될 수 있다. 제1 변환 회로(322) 및 제2 변환 회로(323)의 예시는 도 4를 참조하여 후술될 것이다.
샘플링 회로(324)는 샘플링 신호(SAM)에 응답하여 비반전 셀 신호(pCS) 및 반전 셀 신호(nCS)를 샘플링함으로써 샘플링된(sampled) 비반전 셀 신호(pCSS) 및 샘플링된 반전 셀 신호(nCSS)를 생성할 수 있다. 일부 실시예들에서, 샘플링 신호(SAM)는 도 1의 선택 신호 생성기(13)로부터 제공될 수 있다. 일부 실시예들에서, 샘플링 회로(324)는, 샘플링 신호(SAM)를 클락으로서 수신하고 비반전 셀 신호(pCS) 또는 반전 셀 신호(nCS)를 데이터 입력으로서 수신하는 적어도 하나의 플립플롭(flipflop)을 포함할 수 있다. 또한, 일부 실시예들에서, 샘플링 신호(SAM)는 생략될 수 있고, 비반전 셀 신호(pCS) 및 반전 셀 신호(nCS)가 출력 신호(OUT)로서 생성될 수도 있다.
도 4는 본 개시의 예시적 실시예에 따라 도 3의 제1 변환 회로(322) 및 제2 변환 회로(323)의 예시를 나타내는 블록도이다. 도 3을 참조하여 전술된 바와 같이, 도 4의 제1 변환 회로(322')는 선택된 셀 신호(CS0)를 비반전시킴으로써 비반전 셀 신호(pCS)를 생성할 수 있고, 제2 변환 회로(323')는 선택된 셀 신호(CS0)를 반전시킴으로써 반전 셀 신호(nCS)를 생성할 수 있다. 이하에서, 도 4는 도 3을 참조하여 설명될 것이다.
일부 실시예들에서, 도 3의 제1 변환 회로(322) 및 제2 변환 회로(323)는 XOR 게이트들을 포함할 수 있다. 예를 들면, 도 4에 도시된 바와 같이, 제1 변환 회로(322')는 "0"(즉, 로우 레벨)을 수신하는 입력(A) 및 선택된 셀 신호(CS0)를 수신하는 입력(B)을 가지는 제1 XOR 게이트(G41)를 포함할 수 있고, 제2 변환 회로(323')는 "1"(즉, 하이 레벨)을 수신하는 입력(A) 및 선택된 셀 신호(CS0)를 수신하는 입력(B)을 가지는 제2 XOR 게이트(G42)를 포함할 수 있으며, 제1 XOR 게이트(G41) 및 제2 XOR 게이트(G42)는 멀티-비트 신호들을 처리할 수 있다. 이에 따라, 비반전 셀 신호(pCS)는 선택된 셀 신호(CS0)와 동일한 값을 가질 수 있고, 반전 셀 신호(nCS)는 선택된 셀 신호(CS0)의 값이 반전된 값을 가질 수 있다. 도 4는 도 3의 제1 변환 회로(322) 및 제2 변환 회로(323)의 예시일 뿐이며, 일부 실시예들에서 도 3의 제1 변환 회로(322) 및 제2 변환 회로(323)는 선택된 셀 신호(CS0)를 비반전시키고 반전시키는 임의의 상호 동일한 구조를 가질 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 집적 회로(50)를 나타내는 블록도이다. 도 1의 집적 회로(10)와 유사하게, 도 5의 집적 회로(50)는 복수의 PUF 블록들(51_1, 51_2,..., 51_n), 멀티플렉서(52), 선택 신호 생성기(53) 및 키 생성기(54)를 포함할 수 있고, 공격 검출기(55)를 더 포함할 수 있다. 이하에서, 도 5의 복수의 PUF 블록들(51_1, 51_2,..., 51_n) 각각은 도 3의 PUF 블록(300)과 동일한 구조를 가지는 것으로 가정되며, 도 5는 도 3을 참조하여 설명될 것이다. 또한, 도 5에 대한 설명 중 도 1에 대한 설명과 중복되는 내용은 생략될 것이다.
복수의 PUF 블록들(51_1, 51_2,..., 51_n)은 복수의 출력 신호들(OUT1, OUT2,..., OUTn)을 생성할 수 있고, 복수의 PUF 셀들(C1,..., Ck)을 각각 포함할 수 있다. 도 3을 참조하여 전술된 바와 같이, 하나의 PUF 블록, 예컨대 제1 PUF 블록(51_1)이 출력하는 제1 출력 신호(OUT1)는 샘플링된 비반전 셀 신호(pCSS) 및 샘플링된 반전 셀 신호(nCSS)를 포함할 수 있다. 선택 신호 생성기(53)는 제1 선택 신호(SEL1) 및 제2 선택 신호(SEL2)를 생성할 수 있고, 멀티플렉서(52)는 제2 선택 신호(SEL2)에 응답하여 복수의 출력 신호들(OUT1, OUT2,..., OUTn) 중 하나를 선택함으로써, 비반전 PUF 신호(pPUF) 및 반전 PUF 신호(nPUF)를 PUF 신호로서 출력할 수 있다.
공격 검출기(55)는 비반전 PUF 신호(pPUF) 및 반전 PUF 신호(nPUF)의 비교에 기초하여 외부로부터의 공격, 예컨대 결함 삽입(fault insertion) 공격을 검출할 수 있다. 예를 들면, 공격 검출기(55)는, 비반전 PUF 신호(pPUF) 및 반전 PUF 신호(nPUF)가 동일한 값의 비트를 포함하는 경우, 공격의 발생을 판정할 수 있다. 즉, 도 3을 참조하여 전술된 바와 같이, PUF 블록(300)에 포함된 제1 변환 회로(322) 및 제2 변환 회로(323)에 기인하여, 정상적인 경우 비반전 PUF 신호(pPUF) 및 반전 PUF 신호(nPUF)는 상호 반전된 값들을 각각 가질 수 있다. 그러나, 공격이 시도되는 경우 비반전 PUF 신호(pPUF) 및 반전 PUF 신호(nPUF)가 생성되기까지 적어도 하나의 비트의 값이 변경될 수 있고, 공격 검출기(55)는 이러한 비트 값의 변경을 검출함으로써 공격을 검출할 수 있다. 공격 검출기(55)는 공격이 검출된 경우, 활성화된 오류 신호(ERR)를 생성할 수 있고, 키 생성기(54)에 제공할 수 있다. 결과적으로, 제1 변환 회로(322) 및 제2 변환 회로(323)는 공격에 대한 저항성 강화 및 공격 검출에 공통적으로 활용될 수 있다.
키 생성기(54)는 비반전 PUF 신호(pPUF)를 수신할 수 있고, 비반전 PUF 신호(pPUF)에 기초하여 보안 키(KEY)를 생성할 수 있다. 일부 실시예들에서, 도 5에 도시된 바와 상이하게, 키 생성기(54)는 반전 PUF 신호(nPUF)를 수신할 수 있고, 반전 PUF 신호(nPUF)에 기초하여 보안 키(KEY)를 생성할 수도 있다. 키 생성기(54)는 공격 검출기(55)로부터 오류 신호(ERR)를 수신할 수 있고, 활성화된 오류 신호(ERR)를 수신하는 경우, 즉 집적 회로(50)에 대한 공격이 검출된 경우, 보안 키(KEY)를 생성하지 아니하거나, 공격에 의한 분석에 오류를 제공하기 위하여 유효하지 아니한 보안 키(KEY)를 생성할 수 있다.
도 6은 본 개시의 예시적 실시예에 따라 물리 복제방지 기능에 대한 공격을 검출하는 방법을 나타내는 순서도이다. 일부 실시예들에서, 도 6의 방법은 도 5의 공격 검출기(55)에 의해서 수행될 수 있고, 이하에서 도 6은 도 5를 참조하여 설명될 것이다.
단계 S62에서, 제1 신호 및 제2 신호를 획득하는 동작이 수행될 수 있다. 제1 신호 및 제2 신호는 정상적인 경우, 예컨대 공격이 발생하지 아니한 경우 상호 반전된 값들을 각각 가지는 신호들을 지칭할 수 있다. 예를 들면, 제1 신호는 도 5의 비반전 PUF 신호(pPUF)에 대응할 수 있고, 제2 신호는 도 5의 반전 PUF 신호(nPUF)에 대응할 수 있다. 공격 검출기(55)는 멀티플렉서(52)로부터 비반전 PUF 신호(pPUF) 및 반전 PUF 신호(nPUF)를 수신할 수 있다.
단계 S64에서, 제1 신호 및 제2 신호를 비교하는 동작이 수행될 수 있다. 일부 실시예들에서, 제1 신호를 반전시킨 신호 및 제2 신호가 일치하는지 여부를 판정하는 동작이 수행될 수 있다. 예를 들면, 공격 검출기(55)는 비반전 PUF 신호(pPUF) 및 반전 PUF 신호(nPUF)의 상호 대응하는 비트들을 XOR 연산할 수 있고, XOR 연산 결과가 로우 레벨(즉, "0")인 비트가 존재하는지 여부를 체크할 수 있다. 도 6에 도시된 바와 같이, 제1 신호를 반전시킨 신호와 제2 신호가 동일한 경우 도 6의 방법은 종료할 수 있고, 오류 신호(ERR)는 비활성화 상태로 유지될 수 있다. 다른 한편으로, 제1 신호를 반전시킨 신호와 제2 신호가 상이한 경우, 단계 S66이 후속하여 수행될 수 있다.
단계 S66에서, 공격의 발생을 판정하는 동작이 수행될 수 있다. 공격에 기인하여 적어도 한 비트의 값이 변경되었으므로, 공격의 발생이 검출될 수 있다. 예를 들면, 공격 검출기(55)는 공격의 발생에 응답하여 활성화된 오류 신호(ERR)를 키 생성기(54)에 제공할 수 있다.
도 7은 본 개시의 예시적 실시예에 따른 집적 회로(70)를 나타내는 블록도이고, 도 8a 및 도 8b는 본 개시의 예시적 실시예들에 따라 도 7의 유효성 테이블(76)의 예시들을 나타내는 도면들이다. 도 5의 집적 회로(50)와 유사하게, 도 7의 집적 회로(70)는 복수의 PUF 블록들(71_1, 71_2,..., 71_n), 멀티플렉서(72), 선택 신호 생성기(73), 키 생성기(74) 및 공격 검출기(75)를 포함할 수 있고, 유효성 테이블(76)을 더 포함할 수 있다. 이하에서, 도 7에 대한 설명 중 도 1 또는 도 5와 중복되는 내용은 생략될 것이다.
도 7을 참조하면, 복수의 PUF 블록들(71_1, 71_2,..., 71_n)은 복수의 출력 신호들(OUT1, OUT2,..., OUTn)을 생성할 수 있고, 복수의 PUF 셀들(C1, C2,..., Ck)을 포함할 수 있다. 선택 신호 생성기(73)는 제1 선택 신호(SEL1) 및 제2 선택 신호(SEL2)를 생성할 수 있고, 멀티 플렉서(72)는 제2 선택 신호(SEL2)에 응답하여 복수의 출력 신호들(OUT1, OUT2,..., OUTn) 중 하나를 선택함으로써, 비반전 PUF 신호(pPUF) 및 반전 PUF 신호(nPUF)를 포함하는 PUF 신호를 출력할 수 있다.
유효성 테이블(76)은 집적 회로(70)에 포함된 PUF 셀들이 안정 PUF 셀인지 불안정 PUF 셀인지 여부를 나타내는 정보, 즉 안정성 정보를 포함할 수 있다. 예를 들면, 제1 PUF 블록(71_1)에 포함된 복수의 PUF 셀들(C1, C2,..., Ck) 각각이 도 2a의 PUF 셀(20a)과 동일한 구조를 가지는 경우, 문턱 레벨들의 차이가 큰 제1 인버터(G21a) 및 제2 인버터(G22a)를 포함하는 PUF 유닛은 고정된(또는 안정된) 레벨의 신호를 항상 생성할 수 있는 반면, 문턱 레벨의 차이가 근사적으로 영인 제1 인버터(G21a) 및 제2 인버터(G22a)를 포함하는 PUF 유닛은 변동하는(또는 불안정한) 레벨의 신호를 생성할 수 있다. 본 명세서에서, PUF 셀들 중 고정된 값의 셀 신호를 항상 생성하는 셀은 안정(stable) PUF 셀로서 지칭될 수 있고, 변동하는 값의 셀 신호를 생성하는 셀은 불안정(unstable) PUF 셀로서 지칭될 수 있다.
도 8a를 참조하면, 유효성 테이블(80a)은, 일부 실시예들에서, PUF 셀이 안정 PUF 셀인지 불안정 PUF 셀인지 여부를 나타내는 정보를 포함할 수 있다. 예를 들면, 유효성 테이블(80a)에서 제1 PUF 블록의 제1 PUF 셀(C1)은 "1"로 표시된 바와 같이 안정 PUF 셀인 반면, 유효성 테이블(80a)에서 제2 PUF 블록의 제k PUF 셀(Ck)은 "0"으로 표시된 바와 같이 불안정 PUF 셀일 수 있다. 도 8a의 예시에서, 불안정 PUF 셀인 제2 PUF 블록의 제k PUF 셀(Ck)은, 불안정한 레벨의 신호를 출력하는 적어도 하나의 PUF 유닛을 포함할 수 있다.
도 8b를 참조하면, 유효성 테이블(80b)은, 일부 실시예들에서, PUF 셀에 포함된 PUF 유닛이 안정 PUF 유닛인지 불안정 PUF 유닛인지 여부를 나타내는 정보를 포함할 수 있다. 예를 들면, 유효성 테이블(80b)에서 제1 PUF 블록의 제1 PUF 셀(C1)에 포함된 제1 PUF 유닛(U1)은 "1"로 표시된 바와 같이 안정 PUF 유닛인 반면, 유효성 테이블(80b)에서 제2 PUF 블록의 제k PUF 셀(Ck)에 포함된 제1 PUF 유닛(U1)은 "0"으로 표시된 바와 같이 불안정 PUF 유닛일 수 있다. 본 명세서에서, 본 개시의 예시적 실시예들은 PUF 셀이 안정 PUF 셀인지 불안정 PUF 셀인지 여부를 나타내는 안정성 정보를 포함하는 도 8a의 유효성 테이블(80a)을 주로 참조하여 설명될 것이나, 본 개시의 실시예들이 이에 제한되지 아니하는 점은 이해될 것이다.
다시 도 7을 참조하면, 일부 실시예들에서, 집적 회로(70)의 제조 과정에서 유효성 테이블(76)에 안정성 정보가 저장될 수 있다. 예를 들면, 집적 회로(70)의 제조 과정은 등록(enrollment) 과정을 포함할 수 있고, 등록 과정에서 집적 회로(70)에 포함된 복수의 PUF 셀들의 셀 신호들이 테스트될 수 있다. 테스트 결과에 따라 복수의 PUF 셀들이 안정 PUF 셀인지 불안정 PUF 셀인지 여부가 판정될 수 있고, 판정 결과에 따라 유효성 테이블(80a)에 안정성 정보가 저장될 수 있다. 일부 실시예들에서, 유효성 테이블(76)은, 비제한적인 예시로서 EEPROM(non-volatile memory such as a Electrically Erasable Programmable Read-Only Memory), 플래시 메모리(flash memory), PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 등과 같은 비휘발성 메모리를 포함할 수 있다. 또한, 일부 실시예들에서, 유효성 테이블(76)은 비가역적으로(irreversibly) 프로그램가능한 메모리를 포함할 수도 있다.
공격 검출기(75)는 비반전 PUF 신호(pPUF) 및 반전 PUF 신호(nPUF)를 수신할 수 있고, 공격을 검출하기 위하여 유효성 테이블(76)을 참조할 수 있다. 예를 들면, 도 7에 도시된 바와 같이, 유효성 테이블(76)은 제1 선택 신호(SEL1) 및 제2 선택 신호(SEL2)를 수신할 수 있고, 제1 선택 신호(SEL1) 및 제2 선택 신호(SEL2)에 대응하는 PUF 셀의 안정성 정보(INFO)를 공격 검출기(75)에 제공할 수 있다. 공격의 발생이 검출된 경우, 공격 검출기(75)는 활성화된 오류 신호(ERR)를 키 생성기(74)에 제공할 수 있다. 공격 검출기(75)의 동작의 예시는 도 9을 참조하여 후술될 것이다.
도 9는 본 개시의 예시적 실시예에 따라 물리 복제방지 기능에 대한 공격을 검출하는 방법을 나타내는 순서도이다. 일부 실시예들에서 도 9의 방법은 도 7의 공격 검출기(75)에 의해서 수행될 수 있고, 이하에서 도 9는 도 7을 참조하여 설명될 것이고, 도 9에 대한 설명 중 도 6에 대한 설명과 중복되는 내용은 생략될 것이다.
단계 S91에서, 제1 신호 및 제2 신호를 획득하는 동작이 수행될 수 있다. 도 6을 참조하여 전술된 바와 유사하게, 제1 신호는 도 7의 비반전 PUF 신호(pPUF)에 대응할 수 있고, 제2 신호는 도 7의 반전 PUF 신호(nPUF)에 대응할 수 있다. 공격 검출기(75)는 멀티플렉서(72)로부터 비반전 PUF 신호(pPUF) 및 반전 PUF 신호(nPUF)를 수신할 수 있다.
단계 S93에서, 제1 신호 및 제2 신호를 비교하는 동작이 수행될 수 있다. 일부 실시예들에서, 제1 신호를 반전시킨 신호 및 제2 신호가 일치하는지 여부를 판정하는 동작이 수행될 수 있다. 도 9에 도시된 바와 같이, 제1 신호를 반전시킨 신호가 제2 신호와 동일한 경우 도 9의 방법은 종료할 수 있고, 오류 신호(ERR)는 비활성화 상태로 유지될 수 있다. 다른 한편으로, 제1 신호를 반전시킨 신호와 제2 신호가 상이한 경우, 단계 S95가 후속하여 수행될 수 있다.
단계 S95에서, PUF 셀의 안정성 정보를 획득하는 동작이 수행될 수 있다. 예를 들면, 유효성 테이블(76)은, 집적 회로(70)에 포함된 PUF 셀들의 안정성 정보를 포함할 수 있고, 제1 선택 신호(SEL1) 및 제2 선택 신호(SEL2)에 응답하여, 비반전 PUF 신호(pPUF) 및 반전 PUF 신호(nPUF)에 대응하는 PUF 셀의 안정성 정보(INFO)를 공격 검출기(75)에 제공할 수 있다.
단계 S97에서, PUF 셀이 불안정 PUF 셀인지 여부를 판정하는 동작이 수행될 수 있다. 예를 들면, PUF 셀은 비반전 PUF 신호(pPUF) 및 반전 PUF 신호(nPUF)에 대응하는 PUF 셀로서, 공격 검출기(75)는 단계 S95에서 획득된 안정성 정보에 기초하여 PUF 셀이 불안정 PUF 셀인지 여부를 판정할 수 있다. 도 9에 도시된 바와 같이, PUF 셀이 불안정 PUF 셀인 경우, 도 9의 방법은 종료할 수 있다. 즉, 단계 S93에서 제1 신호를 반전시킨 신호와 제2 신호가 상이한 것은, PUF 셀의 불안정성에 기인한 것으로 판정될 수 있고, 이에 따라 도 9의 방법은 종료할 수 있고, 오류 신호(ERR)는 비활성화 상태로 유지될 수 있다. 다른 한편으로, PUF 셀이 불안정 PUF 셀이 아닌 경우, 즉 PUF 셀이 안정 PUF 셀인 경우, 단계 S99가 후속하여 수행될 수 있다.
단계 S99에서, 공격의 발생을 판정하는 동작이 수행될 수 있다. 단계 S93에서 적어도 하나의 비트 값이 변경된 것이 검출되고, 단계 S97에서 PUF 셀이 안정 PUF 셀로서 판정된 경우, 적어도 하나의 비트 값은 공격에 기인하여 변경된 것으로 해석될 수 있다. 따라서, 단계 S99에서 공격의 발생이 판정될 수 있고, 공격 검출기(75)는 공격의 발생에 응답하여 활성화된 오류 신호(ERR)를 키 생성기(74)에 제공할 수 있다.
도 10은 본 개시의 예시적 실시예에 따라 선택 신호 생성기(100)를 나타내는 블록도이고, 도 11은 본 개시의 예시적 실시예에 따라 도 10의 선택 신호 생성기(100)의 동작의 예시를 나타내는 타이밍도이다. 구체적으로, 도 10은 복수의 PUF 블록들 각각에서 복수의 PUF 셀들 중 하나를 선택하기 위한 제1 선택 신호(SEL1)를 생성하는 선택 신호 생성기(100)의 예시를 나타내며, 도 10의 선택 신호 생성기(100)는 전술된 선택 신호 생성기들의 예시일 수 있다. 또한, 도 11은 PUF 블록이 4개의 PUF 셀들을 포함하고(즉, k = 4), 4개의 PUF 셀들 중 하나를 선택하기 위하여 제1 선택 신호(SEL1)가 생성되는 예시를 나타낸다. 이하에서, 도 10 및 도 11은 도 1을 참조하여 설명될 것이다.
도 10을 참조하면, 선택 신호 생성기(100)는 시드(seed)(SED)를 수신할 수 있고, 제1 선택 신호(SEL1)를 생성할 수 있다. 선택 신호 생성기(100)는 시퀀스 생성기(101), 인코더(102), 카운터(103) 및 비교기(104)를 포함할 수 있다.
시퀀스 생성기(101)는 시드(seed)(SED)를 수신할 수 있고, 시드에 따라 변동하는 시퀀스(SEQ)를 생성할 수 있다. 예를 들면, 도 11에 도시된 바와 같이, 시퀀스 생성기(101)는 "5-2-1-4-3"의 시퀀스(SEQ)를 반복하여 생성할 수 있다. 일부 실시예들에서, 시퀀스 생성기(101)는 "5-2-1-4-3"의 값들 중 시드(SED)에 기초하여 결정된 값에서 시작하는 시퀀스(SEQ)를 생성할 수 있다. 또한, 일부 실시예들에서, 시퀀스 생성기(101)는 시드(SED)에 기초하여 값들의 순서가 변경된 시퀀스(SEQ)를 생성할 수도 있다. 시드(SED)는, 예컨대 난수(random number)와 같이 낮은 예측가능성을 가질 수 있고, 다양한 방식으로 생성될 수 있다. 시드(SED)를 생성하는 예시들은 도 13a 및 도 13b를 참조하여 후술될 것이다.
인코더(102)는 시퀀스 생성기(101)로부터 시퀀스(SEQ)를 수신할 수 있고, 시퀀스(SEQ)를 인코딩함으로써 제1 선택 신호(SEL1)를 생성할 수 있다. 일부 실시예들에서, 인코더(102)는 시퀀스(SEQ)의 값을 원-핫(one-hot) 인코딩 또는 원-콜드(one-cold) 인코딩함으로써 제1 선택 신호(SEL1)를 생성할 수 있다. 예를 들면, 도 11에 도시된 바와 같이, 인코더(102)는 시퀀스(SEQ)의 값을 원-핫 인코딩할 수 있고, 이에 따라 5-비트의 제1 선택 신호(SEL1)를 생성할 수 있다. 이에 따라, 제1 선택 신호(SEL1)의 비트들 중 "1"의 값을 가지는 비트에 대응하는 PUF 셀이 선택될 수 있다. 예를 들면, 시간 t11 내지 시간 t12에서, "00010"인 제1 선택 신호(SEL1)에 따라 복수의 PUF 블록들(11_1, 11_2,..., 11_n) 각각에서 제2 PUF 셀(C2)이 선택될 수 있고, 이에 따라 복수의 PUF 블록들(11_1, 11_2,..., 11_n)은 제2 PUF 셀(C2)이 생성하는 셀 신호들에 대응하는 값들 "CS12, CS22,..., CSn2"을 가지는 복수의 출력 신호들(OUT1, OUT2,..., OUTn)로서 출력할 수 있다. 또한, 시간 t15 내지 시간 t16에서, "10000"인 제1 선택 신호(SEL1)에 따라 4개의 PUF 셀들 중 어느 것도 선택되지 아니할 수 있고, 복수의 출력 신호들(OUT1, OUT2,..., OUTn)은 유효하지 아니한 값들(N/A)을 가질 수 있다. 복수의 출력 신호들(OUT1, OUT2,..., OUTn)의 유효하지 아니한 값들(N/A)은 공격에 대한 저항성을 강화할 수 있고, 이에 따라 일부 실시예들에서 시퀀스(SEQ)의 주기는 PUF 셀들의 개수보다 크게 결정될 수 있다.
카운터(103)는 비교기(104)로부터 제공되는 비교 신호(CMP)에 따라 카운트되는 카운트 신호(CNT)를 출력할 수 있다. 비교기(104)는 시퀀스 생성기(101)로부터 제공되는 시퀀스(SEQ) 및 카운터(103)로부터 제공되는 카운트 신호(CNT)를 비교할 수 있고, 시퀀스(SEQ)의 값 및 카운트 신호(CNT)의 값이 일치하는 경우, 활성화된 비교 신호(CMP)를 생성할 수 있다. 예를 들면, 도 11에 도시된 바와 같이, 시간 t11 내지 시간 t13에서, 카운터(103)는 "1"의 값을 가지는 카운트 신호(CNT)를 출력할 수 있는 한편, 시퀀스 생성기(101)는 "5-2-1"의 값들을 순차적으로 가지는 시퀀스(SEQ)를 출력할 수 있다. 이에 따라, 시간 t12에서 시퀀스(SEQ)의 값 및 카운트 신호(CNT)의 값은 일치할 수 있고, 비교 신호(CMP)가 활성화, 예컨대 하이 레벨로 천이할 수 있다. 활성화된 비교 신호(CMP)에 응답하여 카운터(103)는 카운트 신호(CNT)를 증가시킬 수 있고, 이에 따라 시간 t13부터 카운트 신호(CNT)는 "2"의 값을 가질 수 있다.
비교 신호(CMP)는 PUF 셀을 선택하는 시점, 즉 PUF 셀이 출력하는 셀 신호를 선택하는 시점을 결정할 수 있다. 예를 들면, 도 11에 도시된 바와 같이, 시간 t12 내지 시간 t13에서, 활성화된 비교 신호(CMP)에 따라 복수의 제1 PUF 셀들이 생성하는 셀 신호들에 대응하는 값들 "CS11, CS21,..., CSn1"을 가지는 복수의 출력 신호들(OUT1, OUT2,..., OUTn)이 출력될 수 있고, "1"의 값을 가지는 제2 선택 신호(SEL2)에 기인하여, 제1 PUF 블록(11_1)이 출력하는 제1 출력 신호(OUT1)의 값인 "CS11"이 PUF 신호(PUF)로서 출력될 수 있다. 유사하게, PUF 신호(PUF)는, 시간 t16 내지 시간 t17에서, 제1 PUF 블록(11_1)의 제2 PUF 셀이 생성하는 셀 신호에 대응하는 값 "CS12"을 가질 수 있다. 제2 선택 신호(SEL2)가 1부터 n까지 순차적으로 증가함에 따라, PUF 신호(PUF)는, 시간 t21 내지 시간 t22에서, 제n PUF 블록(11_n)의 제3 PUF 셀이 생성하는 셀 신호에 대응하는 값 "CSn3"을 가질 수 있고, 시간 t25에서, 제n PUF 블록(11_n)의 제4 PUF 셀이 생성하는 셀 신호에 대응하는 값 "CSn4"을 가질 수 있다. 이에 따라, 집적 회로(10)에 포함된 PUF 셀들이 순차적으로 모두 독출될 수 있다. 일부 실시예들에서, 비교 신호(CMP)는 키 생성기(14)에 제공될 수 있다.
일부 실시예들에서, 제2 선택 신호(SEL2)는 카운트 신호(CNT)에 기초하여 생성될 수 있다. 예를 들면, 도 11의 예시에서, 카운트 신호(CNT)가 하나의 PUF 블록에 포함된 PUF 셀들의 개수인 4이고 비교 신호(CMP)가 활성화되면, 제2 선택 신호(SEL2)는 증가할 수 있고, 복수의 PUF 블록들(11_1, 11_2,..., 11_n)의 개수인 n까지 증가할 수 있다.
전술된 바와 같이, 시퀀스(SEQ)의 값들에 기인하여 비교 신호(CMP)는 비주기적으로(또는 랜덤하게) 활성화될 수 있고, 시드(SED)가 변경되는 경우 비교 신호(CMP)의 활성화 시점들이 변경될 수 있다. 이에 따라, 보안 키(KEY)를 생성하는데 사용되는 PUF 신호(PUF)의 값의 노출이 방지될 수 있고, 공격에 대한 저항성이 강화될 수 있다.
도 12는 본 개시의 예시적 실시예에 따라 PUF 셀들을 독출하는 방법을 나타내는 순서도이다. 일부 실시예들에서, 도 12는 도 1의 선택 신호 생성기(13)에 의해서 수행될 수 있고, 이하에서 도 12는 도 1을 참조하여 설명될 것이다.
도 12를 참조하면, 단계 S121에서, 변수 i를 1로 설정하는 동작이 수행될 수 있다. 변수 i는 복수의 PUF 블록들(11_1, 11_2,..., 11_n) 중 하나의 PUF 블록을 가리키는 인덱스에 대응할 수 있다(1≤i≤k). 그 다음에, 단계 S122에서, 변수 j를 1로 설정하는 동작이 수행될 수 있다, 변수 j는 복수의 PUF 블록들(11_1, 11_2,..., 11_n) 각각에 포함된 복수의 PUF 셀들(C1,..., Ck) 중 하나의 PUF 셀을 가리키는 인덱스에 대응할 수 있다(1≤j≤n).
단계 S123에서, 제i PUF 블록(11_i)을 선택하는 동작이 수행될 수 있다. 예를 들면, 선택 신호 생성기(13)는 제i PUF 블록(11_i)이 출력하는 출력 신호(OUTi)가 PUF 신호(PUF)로서 출력되도록, 제2 선택 신호(SEL2)를 생성할 수 있다. 그 다음에, 단계 S214에서 랜덤하게 지연된 시점에서 제j PUF 셀(Cj)을 선택하는 동작이 수행될 수 있다. 예를 들면, 선택 신호 생성기(13)는 랜덤하게 지연된 시점에서 제j PUF 셀(Cj)을 선택하기 위한 제1 선택 신호(SEL1)를 생성할 수 있다.
단계 S125에서, 변수 j를 하나의 PUF 블록에 포함된 PUF 셀들의 개수 k와 비교하는 동작이 수행될 수 있다. 변수 j가 k와 일치하지 아니하는 경우, 즉 제i PUF 블록(11_i)에서 선택되지 아니한 PUF 셀이 존재하는 경우, 단계 S126에서 변수 j를 증가시키는 동작이 수행될 수 있고, 그 다음에 단계 S124가 수행될 수 있다. 다른 한편으로, 변수 j가 k와 일치하는 경우, 즉 제i PUF 블록(11_i)에서 선택되지 아니한 PUF 셀이 없는 경우, 단계 S127이 후속하여 수행될 수 있다.
단계 S127에서, 변수 i를 집적 회로(10)에 포함된 PUF 블록들의 개수 n과 비교하는 동작이 수행될 수 있다. 변수 i가 n과 일치하지 아니하는 경우, 즉 선택되지 아니한 PUF 블록이 존재하는 경우, 단계 S128에서 변수 i를 증가시키는 동작이 수행될 수 있고, 그 다음에 단계 S122가 수행될 수 있다. 다른 한편으로, 변수 i가 n과 일치하는 경우, 즉 선택되지 아니한 PUF 블록이 없는 경우 도 12의 방법은 종료할 수 있다.
도 13a 및 도 13b는 본 개시의 예시적 실시예들에 따라 시드(SED)를 생성하는 예시들을 나타내는 블록도들이다. 도 10을 참조하여 전술된 바와 같이, 시드(SED)는 도 13a 및 도 13b의 선택 신호 생성기들(131a, 131b)이 제1 선택 신호(SEL1) 및/또는 제2 선택 신호(SEL2)를 생성하는 방식을 변경할 수 있고, 결과적으로 복수의 PUF 셀들이 시드(SED)에 따라 상이하게 (예컨대, 변경된 시점들에서) 선택될 수 있다. 이하에서, 도 13a 및 도 13b에 대한 설명 중 중복되는 내용은 생략될 것이다.
도 13a를 참조하면, 시드(SED)는 난수 생성기(132a)에 의해서 생성될 수 있다. 난수 생성기(132a)는 난수를 생성할 수 있고, 난수의 값 혹은 난수를 가공한 값을 가지는 시드(SED)를 선택 신호 생성기(131a)에 제공할 수 있다. 난수 생성기(132a)는 다양한 방식으로 난수를 생성할 수 있고, 일부 실시예들에서 난수 생성기(132a)는 TRNG(True Random Number Generator) 및/또는 PRNG(Pseudo Random Number Generator)를 포함할 수 있다.
도 13b를 참조하면, 시드(SED)는 PUF 셀들이 생성하는 셀 신호들(CSs)에 기초하여 생성될 수 있다. 도 7, 도 8a 및 도 8b를 참조하여 전술된 바와 같이, 복수의 PUF 블록들(132b)은 안정 PUF 셀뿐만 아니라 불안정 PUF 셀을 포함할 수 있고, 이에 따라 셀 신호들(CSs)의 값은 불안정할 수 있다. 도 13b에 도시된 바와 같이, 복수의 PUF 블록들(132b)에 포함된 PUF 셀들 중 적어도 일부가 생성하는 셀 신호들(CSs)이 압축 회로(133b)에 제공될 수 있다.
압축 회로(133b)는 셀 신호들(CSs)에 기초하여 시드(SED)를 생성할 수 있다. 시드(SED)의 엔트로피를 높이기 위하여 셀 신호들(CSs)을 제공하는 PUF 셀들의 개수가 많은 것이 유리할 수 있고, 이에 따라 압축 회로(133b)는 셀 신호들(CSs)을 압축함으로써 셀 신호들(CSs)에 의존하는 시드(SED)를 생성할 수 있다. 일부 실시예들에서, 압축 회로(133b)는 셀 신호들(CSs)을 XOR 연산함으로써 시드(SED)를 생성할 수 있고, 선택 신호 생성기(131b)에 제공할 수 있다. 이와 같이, PUF 셀들의 불안정성에 기초하여 시드(SED)가 생성됨으로써, PUF 셀들은 물리 복제방지 기능을 수행할 뿐만 아니라 공격에 대한 저항성을 강화시키는데 사용될 수 있다.
도 14는 본 개시의 예시적 실시예에 따른 집적 회로(140)를 나타내는 블록도이다. 도 1의 집적 회로(10)와 유사하게, 도 14의 집적 회로(140)는 복수의 PUF 블록들(141_1, 141_2,..., 141_n), 멀티플렉서(142), 선택 신호 생성기(143) 및 키 생성기(144)를 포함할 수 있다. 도 14에 대한 설명 중 도 1과 중복되는 내용은 생략될 것이다.
도 14를 참조하면, 복수의 PUF 블록들(141_1, 141_2,..., 141_n)은 복수의 출력 신호들(OUT1, OUT2,..., OUTn)을 생성할 수 있고, 복수의 PUF 셀들(C1, C2,..., Ck)을 포함할 수 있다. 선택 신호 생성기(143)는 제1 선택 신호(SEL1) 및 제2 선택 신호(SEL2)를 생성할 수 있고, 멀티플렉서(142)는 제2 선택 신호(SEL2)에 응답하여 복수의 출력 신호들(OUT1, OUT2,..., OUTn) 중 하나를 선택함으로써, PUF 신호(PUF)를 출력할 수 있다.
일부 실시예들에서, 선택 신호 생성기(143)는 순열 신호(PER)를 생성하여 키 생성기(144)에 제공할 수 있다. 전술된 바와 같이, 선택 신호 생성기(143)는 복수의 PUF 블록들(141_1, 141_2,..., 141_n)에 포함된 n*k개의 PUF 셀들이 누락 없이 하나씩 선택되도록 제1 선택 신호(SEL1) 및 제2 선택 신호(SEL2)를 생성할 수 있고, 도 14의 예시에서 선택 신호 생성기(143)는 n*k개의 PUF 셀들을 선택하는 순서를 변경할 수 있다. 즉, 선택 신호 생성기(143)는 n*k개의 PUF 셀들의 순열(permutation)을 생성할 수 있고, 순열에 따라 n*k개의 PUF 셀들 각각이 선택되도록 제1 선택 신호(SEL1) 및 제2 선택 신호(SEL2)를 생성할 수 있다. 키 생성기(144)는 PUF 신호(PUF)에 대응하는 PUF 셀을 인식하기 위하여, 선택 신호 생성기(143)가 생성한 순열을 나타내는 순열 신호(PER)를 수신할 수 있다. 일부 실시예들에서, 도 14에 도시된 바와 같이, 선택 신호 생성기(143)는 시드(SED)에 기초하여 순열을 생성할 수 있다. 선택 신호 생성기(143)의 동작의 예시는 도 15를 참조하여 후술될 것이다.
도 15는 본 개시의 예시적 실시예에 따라 PUF 셀들을 독출하는 방법을 나타내는 순서도이다. 일부 실시예들에서, 도 15의 방법은 도 14의 선택 신호 생성기(143)에 의해서 수행될 수 있다. 이하에서, 도 15는 도 14를 참조하여 설명될 것이다.
도 15를 참조하면, 단계 S152에서 시드에 기초하여 복수의 PUF 셀들의 순열을 생성하는 동작이 수행될 수 있다. 예를 들면, 선택 신호 생성기(143)는 n*k개의 PUF 셀들을 누락 없이 하나씩 선택하는 동시에 n*k개의 PUF 셀들 각각을 선택하는 순서를 변동시키기 위하여 순열을 생성할 수 있다. 순열은 시드(SED)에 기초하여 생성될 수 있고, 시드(SED)에 따라 변동하는 순열에 기인하여 n*k개의 PUF 셀들 각각을 선택하는 순서가 변동할 수 있다. 또한, 선택 신호 생성기(143)는 생성된 순열을 나타내는 순열 신호(PER)를 키 생성기(144)에 제공할 수 있다. 일부 실시예들에서, 선택 신호 생성기(143)는 n*k개의 PUF 셀들 중 일부에 대한 순열을 생성할 수 있다. 예를 들면, 선택 신호 생성기(143)는 하나의 PUF 블록에 포함되는 k개의 PUF 셀들에 대한 순열을 생성할 수도 있고, n개의 PUF 블록들에 대한 순열을 생성할 수 있다.
단계 S154에서, 순열에 따라 복수의 PUF 셀들 각각을 순차적으로 선택하는 동작이 수행될 수 있다. 예를 들면, 선택 신호 생성기(143)는, 순열에 따라 복수의 PUF 셀들 각각을 순차적으로 선택하기 위하여 제1 선택 신호(SEL1) 및 제2 선택 신호(SEL2)를 생성할 수 있다. 일부 실시예들에서, 선택 신호 생성기(143)가 하나의 PUF 블록에 포함되는 k개의 PUF 셀들에 대한 순열을 생성하는 경우, 선택 신호 생성기(143)는 생성된 순열에 따라 제1 선택 신호(SEL1)를 생성할 수 있다. 또한, 일부 실시예들에서, 선택 신호 생성기(143)가 n개의 PUF 블록들에 대한 순열을 생성하는 경우, 생성된 순열에 따라 제2 선택 신호(SEL2)를 생성할 수 있다.
도 16a 내지 도 16c는 본 개시의 예시적 실시예에 따른 물리적 복제방지 기능의 보안을 위한 집적 회로를 포함하는 장치의 예시들의 블록도들이다. 이상의 도면들을 참조하여 전술된 바와 같이, 집적 회로는, 공격에 대한 저항성을 강화시키는 PUF 셀들을 포함할 수 있고, PUF 셀들을 독출하는 동작의 예측가능성을 현저하게 감소시키는 구조를 포함할 수 있다. 도 16a 내지 도 16c의 장치들(160a, 160b, 160c)에서 본 개시의 예시적 실시예들에 따른 집적 회로는 PUF 집적 회로들(161a, 161b, 161c)로서 포함될 수 있다. 또한, 도 16a 내지 도 16c의 장치들(160a, 160b, 160c)에 포함된 구성요소들은 독립적인 집적 회로들로서 각각 구현될 수도 있고, 구성 요소들 중 적어도 2개 이상이 하나의 집적 회로로서 구현될 수도 있다.
도 16a를 참조하면, 식별 장치(160a)는 PUF 집적 회로(161a) 및 통신 인터페이스(162a)를 포함할 수 있다. 식별 장치(160a)는 외부로부터 수신되는 요청(REQ)에 응답하여 식별 장치(160a)의 식별 정보를 포함하는 응답(RES)을 외부로 전송할 수 있다. 예를 들면, 식별 장치(160a)는 RFID일 수 있고, 응답(RES)에 포함된 식별 정보는 식별 장치(160a)의 사용자를 식별하는데 사용될 수 있다. 응답(RES)에 포함된 식별 정보는 PUF 집적 회로(161a)가 생성하는 보안 키(KEY)에 기초하여 생성될 수 있다.
도 16b를 참조하면, 저장 장치(160b)는 PUF 집적 회로(161b), 암호화 엔진(162b) 및 메모리(163b)를 포함할 수 있다. 저장 장치(160b)는 외부로부터 수신된 데이터(DATA)를 저장하거나 저장된 데이터(DATA)를 외부에 전송할 수 있다. 저장 장치(160b)는 저장된 데이터의 보안을 위하여, 외부로부터 수신된 데이터(DATA)를 보안 키(KEY)를 사용하여 암호화할 수 있고, 암호화된 데이터(ENC)를 메모리(163b)에 저장할 수 있다. 또한, 암호화 엔진(162b)은 메모리(163b)로부터 독출한 암호화된 데이터(ENC)를 보안 키(KEY)를 사용하여 복호화할 수 있고, 복호화된 데이터(DATA)를 외부로 전송할 수 있다. 예를 들면, 저장 장치(160b)는 휴대용 저장 장치 또는 스토리지 서버의 저장 장치일 수 있다.
도 16c를 참조하면, 통신 장치(160c)는 PUF 집적 회로(161c), 공개키 생성기(162c) 및 모뎀(163c)을 포함할 수 있다. 통신 장치(160c)는 다른 통신 장치로부터 신호(RX)를 수신하거나 다른 통신 장치로 신호(TX)를 송신함으로써 다른 통신 장치와 통신할 수 있다. 공개키 생성기(162c)는 PUF 집적 회로(161c)가 생성하는 보안 키(KEY)에 기초하여 공개키(P_KEY)를 생성할 수 있고, 모뎀(163c)은 공개키(P_KEY)에 기초하여 암호화된 신호(TX)를 전송하거나 신호(RX)를 복호화할 수 있다. 즉, 통신 장치(160c)는 보안 키(KEY)에 기초하여 다른 통신 장치와 보안 통신을 수행할 수 있고, 예컨대 통신 장치(160c)는 휴대용 무선 통신 장치일 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 물리적 복제방지 기능(Physically Unclonable Function; PUF)의 보안을 위한 집적 회로로서,
    고유한 값을 갖는 셀 신호를 생성하도록 각각 구성된 복수의 PUF 셀들;
    상기 복수의 PUF 셀들 중 선택된 PUF 셀이 출력하는 셀 신호를 비반전시킨 제1 신호 및 반전시킨 제2 신호를 출력하도록 구성된 선택기; 및
    상기 제1 신호 및 상기 제2 신호 중 적어도 하나에 기초하여, 보안 키(secure key)를 생성하도록 구성된 키 생성기를 포함하고,
    상기 선택기는, 동일한 구조를 가지고 상기 제1 신호 및 상기 제2 신호를 각각 생성하도록 구성된 제1 변환 회로 및 제2 변환 회로를 포함하는 것을 특징으로 하는 집적 회로.
  2. 청구항 1에 있어서,
    상기 제1 변환 회로는, 로우 레벨의 신호 및 상기 제1 신호의 한 비트를 수신하도록 각각 구성된 복수의 제1 XOR 게이트들을 포함하고,
    상기 제2 변환 회로는, 하이 레벨의 신호 및 상기 제2 신호의 한 비트를 수신하도록 각각 구성된 복수의 제2 XOR 게이트들을 포함하는 것을 특징으로 하는 집적 회로.
  3. 청구항 1에 있어서,
    상기 복수의 PUF 셀들을 누락 없이 하나씩 선택하기 위한 제1 선택 신호를 생성하도록 구성된 선택 신호 생성기를 더 포함하는 집적 회로.
  4. 청구항 3에 있어서,
    상기 복수의 PUF 셀들 각각은, 상기 제1 선택 신호의 한 비트를 수신하고, 비선택시 미리 정의된 값의 상기 셀 신호를 생성하도록 구성되고,
    상기 선택기는, 상기 복수의 PUF 셀들의 복수의 셀 신호들을 수신하고, 복수의 PUF 셀들 중 선택된 PUF 셀의 셀 신호에 의존하는 신호를 출력하도록 구성된 조합 회로를 포함하는 것을 특징으로 하는 집적 회로.
  5. 청구항 3에 있어서,
    상기 선택 신호 생성기는 제2 선택 신호를 더 생성하도록 구성되고,
    각각이 복수의 PUF 셀들 및 선택기를 포함하는 복수의 PUF 블록들; 및
    상기 제2 선택 신호에 응답하여, 상기 복수의 PUF 블록들로부터 출력되는 복수의 제1 신호들 및 복수의 제2 신호들 중 적어도 하나의 제1 신호 및 적어도 하나의 제2 신호를 선택하도록 구성된 멀티플렉서를 더 포함하고,
    상기 키 생성기는, 상기 멀티플렉서가 출력하는 제1 신호 및 제2 신호 중 적어도 하나에 기초하여, 상기 보안 키를 생성하도록 구성된 것을 특징으로 하는 집적 회로.
  6. 청구항 5에 있어서,
    상기 복수의 PUF 블록들은, 상기 제1 선택 신호를 공통으로 수신하도록 구성된 것을 특징으로 하는 집적 회로.
  7. 청구항 1에 있어서,
    상기 제1 신호 및 상기 제2 신호의 비교에 기초하여 상기 집적 회로에 대한 외부 공격을 검출하도록 구성된 공격 검출기를 더 포함하는 집적 회로.
  8. 청구항 7에 있어서,
    상기 복수의 PUF 셀들 각각이 일정한 셀 신호를 생성하는 안정 PUF 셀 또는 변동하는 셀 신호를 생성하는 불안정 PUF 셀인지 여부를 나타내는 유효성(validity) 정보를 포함하는 유효성 테이블을 더 포함하고,
    상기 공격 검출기는, 상기 유효성 테이블을 참조하여, 상기 제1 신호 및 상기 제2 신호의 적어도 일부가 동일하고 선택된 PUF 셀이 안정 PUF 셀인 경우, 공격의 발생을 판정하도록 구성된 것을 특징으로 하는 집적 회로.
  9. 청구항 1에 있어서,
    샘플링 신호에 응답하여, 상기 제1 신호 및 상기 제2 신호를 샘플링함으로써 샘플링된 제1 신호 및 샘플링된 제2 신호를 생성하도록 구성된 샘플러를 더 포함하고,
    상기 키 생성기는, 상기 샘플링된 제1 신호 및 상기 샘플링된 제제2 신호 중 적어도 하나에 기초하여 보안 키를 생성하도록 구성된 것을 특징으로 하는 집적 회로.
  10. 청구항 1에 있어서,
    상기 복수의 PUF 셀들 각각은, 제1 로직 게이트 및 제2 로직 게이트를 포함하고,
    상기 셀 신호의 고유한 값은, 상기 제1 로직 게이트 및 상기 제2 로직 게이트의 문턱 레벨들 차의 절대값에 기초하여 결정되는 것을 특징으로 하는 집적 회로.
  11. 물리적 복제방지 기능(Physically Unclonable Function; PUF)의 보안을 위한 집적 회로로서,
    제1 선택 신호를 생성하도록 구성된 선택 신호 생성기;
    상기 제1 선택 신호를 공통으로 수신하도록 구성된 복수의 PUF 블록들; 및
    상기 복수의 PUF 블록들이 동시에 출력하는 복수의 출력 신호들 중 적어도 하나에 기초하여 보안 키(secure key)를 생성하도록 구성된 키 생성기를 포함하고,
    상기 복수의 PUF 블록 각각은, 고유한 값을 갖는 셀 신호를 생성하도록 각각 구성된 복수의 PUF 셀들을 포함하고, 상기 제1 선택 신호에 응답하여 상기 PUF 셀들 중 선택된 PUF 셀이 출력하는 셀 신호에 기초하여 출력 신호를 생성하도록 구성된 것을 특징으로 하는 집적 회로.
  12. 청구항 11에 있어서,
    상기 선택 신호 생성기는, 제2 선택 신호를 더 생성하도록 구성되고,
    상기 제2 선택 신호에 응답하여, 상기 복수의 출력 신호들 중 적어도 하나를 상기 키 생성기에 제공하도록 구성된 멀티플렉서를 더 포함하는 집적 회로.
  13. 청구항 11에 있어서,
    상기 복수의 블록들 각각은, 상기 선택된 PUF 셀의 셀 신호를 비반전시킨 제1 신호 및 반전시킨 제2 신호를 출력하도록 구성되고, 동일한 구조를 가지고 상기 제1 신호 및 상기 제2 신호를 각각 생성하도록 구성된 제1 변환 회로 및 제2 변환 회로를 포함하는 선택기를 포함하는 것을 특징으로 하는 집적 회로.
  14. 청구항 13에 있어서,
    상기 제1 변환 회로는, 로우 레벨의 신호 및 상기 제1 신호의 한 비트를 수신하도록 각각 구성된 복수의 제1 XOR 게이트들을 포함하고,
    상기 제2 변환 회로는, 하이 레벨의 신호 및 상기 제2 신호의 한 비트를 수신하도록 각각 구성된 복수의 제2 XOR 게이트들을 포함하는 것을 특징으로 하는 집적 회로.
  15. 청구항 11에 있어서,
    상기 선택 신호 생성기는, 상기 복수의 PUF 블록들 각각에 포함된 복수의 PUF 셀들이 누락 없이 하나씩 선택되도록 상기 제1 선택 신호를 생성하도록 구성된 것을 특징으로 하는 집적 회로.
  16. 청구항 15에 있어서,
    상기 선택 신호 생성기는, 랜덤하게 지연된 시점들에서 상기 복수의 PUF 셀들 각각이 선택되도록 상기 제1 선택 신호를 생성하도록 구성된 것을 특징으로 하는 집적 회로.
  17. 물리적 복제방지 기능(Physically Unclonable Function; PUF)의 보안을 위한 집적 회로로서,
    고유한 값을 갖는 셀 신호를 생성하도록 각각 구성된 복수의 PUF 셀들;
    랜덤하게 지연된 시점들에서 상기 복수의 PUF 셀들 각각이 선택되도록 선택 신호를 생성하도록 구성된 선택 신호 생성기; 및
    선택된 PUF 셀의 셀 신호에 기초하여 보안 키(secure key)를 생성하도록 구성된 키 생성기를 포함하는 집적 회로.
  18. 청구항 17에 있어서,
    상기 선택 신호 생성기는,
    시드(seed)에 따라 변동하는 시퀀스를 주기마다 생성하도록 구성된 시퀀스 생성기; 및
    출력이 상기 시퀀스와 일치할 때 카운트되도록 구성된 카운터를 포함하고,
    상기 선택 신호는, 상기 시퀀스 및 상기 카운터의 상기 출력이 일치할 때 상기 시퀀스로부터 생성되는 것을 특징으로 하는 집적 회로.
  19. 청구항 17에 있어서,
    상기 복수의 PUF 셀들은, 변동하는 셀 신호를 생성하는 불안정 PUF 셀을 포함하고,
    상기 시드는, 상기 불안정 PUF 셀을 포함하는 적어도 하나의 PUF 셀의 적어도 하나의 셀 신호에 기초하여 생성되는 것을 특징으로 하는 집적 회로.
  20. 청구항 19에 있어서,
    상기 선택 신호 생성기는, 시드(seed)에 따라 변동하는 상기 복수의 PUF 셀들의 순열(permutation)에 따라 상기 선택 신호를 생성하도록 구성된 것을 특징으로 하는 집적 회로.
KR1020180174127A 2018-12-31 2018-12-31 물리적 복제방지 기능의 보안을 위한 집적 회로 및 이를 포함하는 장치 KR20200082982A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020180174127A KR20200082982A (ko) 2018-12-31 2018-12-31 물리적 복제방지 기능의 보안을 위한 집적 회로 및 이를 포함하는 장치
CN201910743005.6A CN111385091B (zh) 2018-12-31 2019-08-13 用于物理上不可克隆的功能的安全性的集成电路及设备
US16/553,318 US11403432B2 (en) 2018-12-31 2019-08-28 Integrated circuit for security of a physically unclonable function and a device including the same
TW108138184A TWI843758B (zh) 2018-12-31 2019-10-23 積體電路
US17/847,593 US20220318436A1 (en) 2018-12-31 2022-06-23 Integrated circuit for security of a physically unclonable function and a device including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180174127A KR20200082982A (ko) 2018-12-31 2018-12-31 물리적 복제방지 기능의 보안을 위한 집적 회로 및 이를 포함하는 장치

Publications (1)

Publication Number Publication Date
KR20200082982A true KR20200082982A (ko) 2020-07-08

Family

ID=71123130

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180174127A KR20200082982A (ko) 2018-12-31 2018-12-31 물리적 복제방지 기능의 보안을 위한 집적 회로 및 이를 포함하는 장치

Country Status (3)

Country Link
US (2) US11403432B2 (ko)
KR (1) KR20200082982A (ko)
CN (1) CN111385091B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11700136B2 (en) * 2018-11-26 2023-07-11 Kansas State University Research Foundation PUF-IPA: a PUF-based identity preserving lightweight authentication protocol using binary string shuffling
US11537755B1 (en) * 2019-10-09 2022-12-27 University Of South Florida SR flip-flop based physical unclonable functions for hardware security
US11783092B2 (en) * 2020-02-10 2023-10-10 Taiwan Semiconductor Manufacturing Company Limited Systems and methods for classifying PUF signature modules of integrated circuits
DE102020106346A1 (de) * 2020-03-09 2021-09-09 Infineon Technologies Ag Integrierter schaltkreis
CN112272084B (zh) * 2020-09-27 2023-04-07 广东工业大学 抗攻击和自检特性的基于复合型puf的密钥生成系统及方法
CN112713894B (zh) * 2021-01-13 2022-08-30 温州大学 一种强弱混合型puf电路
US11961567B2 (en) 2021-09-21 2024-04-16 PUFsecurity Corporation Key storage device and key generation method

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8683210B2 (en) 2008-11-21 2014-03-25 Verayo, Inc. Non-networked RFID-PUF authentication
FR2941343B1 (fr) * 2009-01-20 2011-04-08 Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst Circuit de cryptographie, protege notamment contre les attaques par observation de fuites d'information par leur chiffrement.
JP5548218B2 (ja) 2009-03-06 2014-07-16 イントリンシツク・イー・デー・ベー・ベー 物理的システムに依存する暗号鍵を確立するためのシステム
US7898283B1 (en) 2009-08-31 2011-03-01 Farinaz Koushanfar Lightweight secure physically unclonable functions
JP5499358B2 (ja) * 2010-03-24 2014-05-21 独立行政法人産業技術総合研究所 認証処理方法及び装置
US20110299678A1 (en) * 2010-06-07 2011-12-08 Alexander Roger Deas Secure means for generating a specific key from unrelated parameters
KR20120038104A (ko) 2010-10-13 2012-04-23 한국전자통신연구원 랜덤 데이터 생성 장치 및 그 방법
JP5839659B2 (ja) 2011-06-20 2016-01-06 ルネサスエレクトロニクス株式会社 半導体装置
US9742563B2 (en) * 2012-09-28 2017-08-22 Intel Corporation Secure provisioning of secret keys during integrated circuit manufacturing
US9083323B2 (en) * 2013-02-11 2015-07-14 Qualcomm Incorporated Integrated circuit identification and dependability verification using ring oscillator based physical unclonable function and age detection circuitry
US9444618B1 (en) 2013-04-22 2016-09-13 Xilinx, Inc. Defense against attacks on ring oscillator-based physically unclonable functions
US9787480B2 (en) 2013-08-23 2017-10-10 Qualcomm Incorporated Applying circuit delay-based physically unclonable functions (PUFs) for masking operation of memory-based PUFs to resist invasive and clone attacks
US10044513B2 (en) * 2013-09-02 2018-08-07 Samsung Electronics Co., Ltd. Security device having physical unclonable function
US20150143130A1 (en) * 2013-11-18 2015-05-21 Vixs Systems Inc. Integrated circuit provisioning using physical unclonable function
US20150188717A1 (en) * 2013-12-26 2015-07-02 Wei Wu Physically unclonable function redundant bits
US9628272B2 (en) 2014-01-03 2017-04-18 William Marsh Rice University PUF authentication and key-exchange by substring matching
US9279850B1 (en) * 2014-02-14 2016-03-08 Altera Corporation Physically unclonable functions with enhanced margin testing
WO2015148659A1 (en) * 2014-03-25 2015-10-01 Mai Kenneth Wei-An Methods for generating reliable responses in physical unclonable functions (pufs) and methods for designing strong pufs
US9806718B2 (en) 2014-05-05 2017-10-31 Analog Devices, Inc. Authenticatable device with reconfigurable physical unclonable functions
KR101623109B1 (ko) * 2014-05-29 2016-05-20 부산대학교 산학협력단 Fpga에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치
KR102201642B1 (ko) * 2014-11-28 2021-01-13 삼성전자주식회사 Puf 회로 및 그것의 키 등록 방법
CN105184191B (zh) * 2015-08-12 2018-01-23 苏州芯动科技有限公司 一种可重构物理不可克隆功能电路
US9985791B2 (en) 2015-08-13 2018-05-29 Arizona Board Of Regents Acting For And On Behalf Of Northern Arizona University Physically unclonable function generating systems and related methods
US10027472B2 (en) 2016-09-27 2018-07-17 Intel Corporation Non-linear physically unclonable function (PUF) circuit with machine-learning attack resistance
US10511451B2 (en) * 2016-11-04 2019-12-17 Taiwan Semiconductor Manufacturing Company Ltd. Physically unclonable function (PUF) device and method of extending challenge/response pairs in a PUF device
EP3340216B1 (en) * 2016-12-23 2020-01-29 Secure-IC SAS Secret key generation using a high reliability physically unclonable function
CN107392057A (zh) * 2016-12-30 2017-11-24 北京同方微电子有限公司 一种物理不可克隆电路结构
JP6972562B2 (ja) * 2017-01-24 2021-11-24 セイコーエプソン株式会社 回路装置、発振デバイス、物理量測定装置、電子機器及び移動体
US10243749B2 (en) * 2017-05-16 2019-03-26 Samsung Electronics Co., Ltd. Physically unclonable function circuit, and system and integrated circuit including the same
CN107450644B (zh) * 2017-08-16 2018-09-21 宁波大学 一种利用mosfet电流分割偏差的多端口puf电路
CN107491704A (zh) * 2017-08-23 2017-12-19 大家传承网络科技(深圳)有限公司 涉及防伪、认证、密钥的物理不可克隆电路及实现方法
KR102341266B1 (ko) * 2017-08-30 2021-12-20 삼성전자주식회사 물리적 복제방지 기능을 위한 집적 회로 및 이를 포함하는 장치
DE102017126217B4 (de) * 2017-11-09 2019-06-27 Infineon Technologies Ag PUF-Arbiter-Schaltung
CN108616358A (zh) * 2018-05-10 2018-10-02 广西大学 基于puf的无线体域网中传感器与主控单元的认证方法
US10770146B2 (en) * 2018-06-08 2020-09-08 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for PUF generator characterization
US11258596B2 (en) * 2018-08-13 2022-02-22 Taiwan Semiconductor Manufacturing Company Ltd. System to generate a signature key and method of operating the same
KR102600349B1 (ko) * 2018-11-16 2023-11-09 한국전자통신연구원 링 발진기 구조 기반의 비밀 정보 생성 장치 및 방법
US11012425B2 (en) * 2018-12-28 2021-05-18 Micron Technology, Inc. Replay protection nonce generation

Also Published As

Publication number Publication date
US20220318436A1 (en) 2022-10-06
US11403432B2 (en) 2022-08-02
CN111385091A (zh) 2020-07-07
US20200210628A1 (en) 2020-07-02
CN111385091B (zh) 2024-05-24
TW202042096A (zh) 2020-11-16

Similar Documents

Publication Publication Date Title
KR20200082982A (ko) 물리적 복제방지 기능의 보안을 위한 집적 회로 및 이를 포함하는 장치
US11495300B2 (en) Method and apparatus for PUF generator characterization
US10366253B2 (en) Reliability enhancement methods for physically unclonable function bitstring generation
US9189201B2 (en) Entropy source with magneto-resistive element for random number generator
US11190365B2 (en) Method and apparatus for PUF generator characterization
Yan et al. Phase calibrated ring oscillator PUF design and implementation on FPGAs
KR20160128911A (ko) 유니크 암호 키 및 상응하는 헬퍼 데이터를 생성하는 방법
KR20190023922A (ko) 물리적 복제방지 기능을 위한 집적 회로 및 이를 포함하는 장치
KR20170019702A (ko) 난수 발생 장치
WO2018186968A1 (en) Random number generator that includes physically unclonable circuits
Zalivaka et al. FPGA implementation of modeling attack resistant arbiter PUF with enhanced reliability
CN110471871B (zh) 本质数据产生装置、半导体装置及认证系统
CN113539334A (zh) 用于物理不可克隆函数的测量机制
US10735149B2 (en) Eye diagram measurement device and eye diagram measurement method
TWI843758B (zh) 積體電路
Oh et al. Implementation and characterization of flash‐based hardware security primitives for cryptographic key generation
Feiten et al. Improving RO-PUF quality on FPGAs by incorporating design-dependent frequency biases
CN113535123A (zh) 具有通过位线预充电的物理不可克隆函数
Eiroa et al. Using physical unclonable functions for hardware authentication: A survey
CN111800272B (zh) 一种针对ro puf输出响应的可靠性自检电路及方法
Rios Design and Implementation of Memory Physically Unclonable Functions on Low-Power Devices
JP2010216998A (ja) テストモード設定回路およびそれを備えた半導体集積回路
KR101688870B1 (ko) 지연 시간 기반의 물리적인 반도체칩 복제감별장치 및 방법
Zalivaka et al. NAND Flash Memory Devices Security Enhancement Based on Physical Unclonable Functions
Pehl Design, Evaluation, and Application of Security Primitives that are Based on Hardware-Intrinsic Features

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal