KR102650331B1 - 물리적 복제 방지 기능을 구현하는 반도체 장치 - Google Patents

물리적 복제 방지 기능을 구현하는 반도체 장치 Download PDF

Info

Publication number
KR102650331B1
KR102650331B1 KR1020210104494A KR20210104494A KR102650331B1 KR 102650331 B1 KR102650331 B1 KR 102650331B1 KR 1020210104494 A KR1020210104494 A KR 1020210104494A KR 20210104494 A KR20210104494 A KR 20210104494A KR 102650331 B1 KR102650331 B1 KR 102650331B1
Authority
KR
South Korea
Prior art keywords
power supply
oscillation
cell
cell configuration
voltages
Prior art date
Application number
KR1020210104494A
Other languages
English (en)
Other versions
KR20230022566A (ko
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 KR1020210104494A priority Critical patent/KR102650331B1/ko
Priority to US17/736,986 priority patent/US20230044357A1/en
Publication of KR20230022566A publication Critical patent/KR20230022566A/ko
Application granted granted Critical
Publication of KR102650331B1 publication Critical patent/KR102650331B1/ko

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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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

Landscapes

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

Abstract

환경적 요인의 영향을 덜 받으면서, 안정적 성능을 발휘할 수 있고 우수한 반복성을 가지는 물리적 복제 방지(PUF) 셀을 제공한다. 본 발명의 PUF 셀은 문턱전압의 차이를 증폭하는 방식과 발진 주파수 차이를 증폭시키는 방식을 결합하여 출력 값을 생성한다. 발진기에 의하여 주파수가 서로 다른 발진 신호들을 발생함에 있어서, 문턱 전압 차이를 이용하여 생성된 서로 다른 크기의 바이어스 전압들을 발진기에 있는 복수의 스테이지들에 엇갈려서 공급함으로써 상기 발진 신호들의 주파수 차이를 증폭시키게 된다. 본 발명의 반도체 장치는 각각이 고유의 출력 값을 생성하도록 구성되는 복수의 PUF 셀들을 구비한다. 상기 복수의 PUF 셀들 각각은 서로 다른 레벨을 가지는 제1 및 제2 전원전압을 생성하는 바이어스 전압 생성기와; 및 직렬접속되어 있고 상기 제1 및 제2 전원전압에 엇갈려서 교대로 바이어스되는 복수의 인버터들을 포함하는 발진기;를 구비한다.

Description

물리적 복제 방지 기능을 구현하는 반도체 장치{Semiconductor Device Implementing Physically Unclonable Function}
본 발명은 보안 장치에 관한 것으로서, 보다 상세하게는, 반도체 제조 공정에서 공정 조건의 국부적 불균일성으로 인하여 발생하는 소자들간의 물리적 특성 차이를 이용하여 물리적 복제 방지(Physically Unclonable Function) 방식으로 보안용 키 값을 생성하는 반도체 장치에 관한 것이다.
모든 반도체 디바이스는 고유의 물리적 특성을 가진다. 동일한 설계도를 토대로 동일한 웨이퍼에서 동일한 공정을 통해 생산된 반도체 소자들도 공정 조건의 국부적 불균일성으로 인하여 물리적 특성에서 예상할 수 없는 차이를 보이게 된다. 물리적 복제 방지(PUF: Physically Unclonable Function) 장치는 이러한 공정 불일치로 인한 물리적 특성 차이를 디지털 값으로 전환하는 회로로서, 소자들간의 특성 차이를 이용하여 각 디바이스마다 지문과 같이 고유한 값을 생성하는데 사용된다. 물리적 복제 방지 장치는 물리적인 복제가 불가능하기 때문에, 이 장치가 생성하는 데이터는 예컨대 Internet of thing (IoT) 장치들의 안전한 통신을 위한 암호화 알고리즘의 키로 사용될 수 있다.
종래에 PUF 장치는 증폭기 내지 트랜지스터의 문턱전압 차이를 이용하는 방식과, 발진기의 주파수 차이를 이용하는 방식으로 대별될 수 있다.
문턱전압 차이를 이용하는 방식에 있어서는, 전압 증폭기를 여러 단으로 연결하여 증폭기의 문턱전압 차이를 키로 사용한다. 초기 단의 문턱 전압 차이는 다단의 증폭기를 거치며 전압 이득만큼 증폭되어 말단에 이르러서는 디지털 값으로 변환된다. 그런데, 이러한 유형의 PUF 장치는 잡음에 취약하다. 키를 생성하는 데 지배적인 영향을 끼치는 것은 여러 단의 증폭기 중 첫 번째와 두 번째 증폭기이며, 만약 이 두 증폭기의 문턱전압 차이가 작다면 잡음의 영향으로 인하여 출력이 불안정해진다. 또한 온도나 전압이 변화함에 따라 전압 증폭기의 문턱전압이 달라질 수 있기 때문에, 첫 두 단 증폭기의 문턱 전압이 환경적 요인으로 인하여 역전되고 다른 키를 생성할 가능성이 있다. 따라서 전압 증폭기 구조를 키 생성 목적으로 사용하려면 안정한 동작을 보조할 수 있도록 오류의 방지, 검출, 및 정정을 위한 오류정정부호화 회로가 추가적으로 설계되어야 하며. 이는 큰 전력 소모를 수반할 수 있다.
두 번째 유형의 PUF 장치는 발진기의 주파수 차이를 이용한다. 발진기를 구성하는 인버터들은 공정 차이로 인해 저마다 다른 시간 지연(delay)을 가지게 되므로 두 발진기는 미세하게 다른 주파수를 가지게 된다. 두 발진기 중 어느 발진기의 신호 위상이 빠른지에 따라 값이 다른 키를 생성할 수 있다. 링 발진기를 이용한 구조에서는 출력을 결정하기까지 여러 사이클의 발진이 일어난다. 두 발진기에 일어나는 잡음은 여러 사이클에 걸쳐 평균적으로 상쇄될 가능성이 크므로 잡음에 의해 발생하는 오류가 크게 줄어든다. 그러나 발진기 구조는 최종적으로 출력을 생성할 때까지 오랜 시간이 걸린다는 단점이 있다. 또한 출력을 내는 동안 발진을 반복하므로 소모되는 전력이 크다는 단점도 있다.
한편, 물리적 복제 방지 하드웨어는 제조 공정에서 발생하는 미세한 불균일성을 이용하는 것이므로 불일치 정도가 모든 PUF 셀에서 동일한 것은 아니며, 우연히 불일치가 적게 일어나는 PUF 셀이 존재할 수 있다. 이러한 셀은 잡음 및 환경 변화에 따라 오류를 생성할 가능성이 높으므로 미리 파악하여 키 생성에서 제외시킬 수 있는데, 이러한 기법을 마스킹이라고 한다. 종래의 기술들은 안전한 키 생성을 위해 적지 않은 수의 셀을 마스킹해야 할 수 있다. 따라서 알고리즘 구현에 필요한 키 비트들보다 훨씬 많은 수의 PUF 셀을 마련해두어야 하므로 추가적인 면적이 필요하다는 단점이 있다.
본 발명은 잡음, 온도, 및 전압과 같은 환경적 요인의 영향을 덜 받으면서, 안정적 성능을 발휘할 수 있고 우수한 반복성을 가지는 물리적 복제 방지(PUF) 셀을 제공한다.
본 발명은 이와 같은 PUF 셀을 다수 포함하는 PUF 셀 어레이를 구비하는 반도체 장치를 제공한다.
본 발명의 물리적 복제 방지를 위한 PUF 셀은 문턱전압의 차이를 증폭하는 방식과 발진 주파수 차이를 증폭시키는 방식을 결합하여 출력 값을 생성한다. 발진기에 의하여 주파수가 서로 다른 발진 신호들을 발생함에 있어서, 문턱 전압 차이를 이용하여 생성된 서로 다른 크기의 바이어스 전압들을 발진기에 있는 복수의 스테이지들에 엇갈려서 공급함으로써 상기 발진 신호들의 주파수 차이를 증폭시키게 된다.
본 발명의 한 양태에 따르면, 물리적 복제 방지 기능(PUF)을 구현하는 반도체 장치는 각각이 고유의 출력 값을 생성하도록 구성되는 복수의 PUF 셀들을 구비한다. 상기 복수의 PUF 셀들 각각은 서로 다른 레벨을 가지는 제1 및 제2 전원전압을 생성하는 바이어스 전압 생성기; 및 직렬접속되어 있고 상기 제1 및 제2 전원전압에 엇갈려서 교대로 바이어스되는 복수의 인버터들을 포함하는 발진기;를 구비한다.
상기 반도체 장치는 상기 복수의 PUF 셀들에 셀 구성신호를 공급하는 셀 구성신호 공급부를 더 구비할 수 있다. 이 경우, 상기 바이어스 전압 생성기는 상기 셀 구성신호를 토대로 상기 제1 및 제2 전원전압을 결정할 수 있다.
상기 바이어스 전압 생성기는 트랜지스터 문턱전압 차이로 인하여 서로 다른 레벨을 가지는 제1 및 제2 전압을 생성할 수 있다. 바이어스 전압 생성기는 상기 셀 구성신호를 토대로 제1 및 제2 전압 중 하나를 상기 제1 전원전압으로 출력하고 다른 하나를 상기 제2 전원전압으로 출력할 수 있다.
상기 발진기는 각각이 직렬접속된 소정수의 인버터들을 포함하고 서로 다른 주파수의 신호를 발진하며 루프 형태로 연결되어 있는 두 개의 발진 경로를 구비할 수 있다.상기 두 개의 발진 경로 각각은 소정의 스타트 신호를 받아들여 발진 기능을 활성화시키는 인에이블 게이트와, 상기 인에이블 게이트의 출력단자로부터 직렬접속되어 있는 상기 소정수의 인버터들을 구비할 수 있다.
상기 인에이블 게이트는 제1 입력단자를 통해 상기 스타트 신호를 받아들이고 제2 입력단자를 통해 상기 두 개의 발진 경로 중에서 다른 발진 경로의 출력을 받아들이는 낸드 게이트일 수 있다.
상기 반도체 장치는 상기 복수의 PUF 셀들 각각에 대한 상기 셀 구성신호에 대한 정보를 발생하는 셀 구성정보 결정부를 더 구비할 수 있다.
상기 셀 구성정보 결정부는 어느 한 셀에서 일정 시간동안 상기 복수의 발진 경로 중에서 제1 발진 경로에 의한 발진 사이클 수를 카운트하는 제1 카운터; 상기 셀에서 상기 일정 시간동안 상기 복수의 발진 경로 중에서 제2 발진 경로에 의한 발진 사이클 수를 카운트하는 제2 카운터; 및 상기 제1 카운터 및 상기 제2 카운터의 카운트 값들을 토대로 상기 셀에 대한 상기 셀 구성신호 정보를 결정하는 판단기;를 구비할 수 있다.
상기 제1 카운터와 상기 제2 카운터는 상기 제1 발진 경로와 상기 제2 발진 경로의 발진 기능이 컬랩스될 때까지 각각의 발진 사이클 수를 카운트할 수 있다.
상기 반도체 장치는 상기 제1 전원전압이 제1 포지티브 전원전압과 제1 네거티브 전원전압을 포함하고, 상기 제2 전원전압이 제2 포지티브 전원전압과 제2 네거티브 전원전압을 포함할 수 있다. 상기 제1 및 제2 포지티브 전원전압은 서로 다른 레벨을 가질 수 있고, 상기 제1 및 제2 네거티브 전원전압은 서로 다른 레벨을 가질 수 있다. 상기 제1 및 제2 포지티브 전원전압은 상기 복수의 인버터들에 엇갈려서 교대로 바이어스되고, 상기 제1 및 제2 네거티브 전원전압이 상기 복수의 인버터들에 엇갈려서 교대로 바이어스될 수 있다. 상기 제1 포지티브 전원전압이 인가되는 인버터들에는 상기 제2 네거티브 전원전압이 인가되고, 상기 제2 포지티브 전원전압이 인가되는 인버터들에는 상기 제1 네거티브 전원전압이 인가될 수 있다.
상기 바이어스 전압 생성기는 상기 셀 구성신호를 토대로, 서로 다른 레벨을 가지는 제1 및 제2 포지티브 전압 중에서 하나를 제1 포지티브 전원전압으로 출력하고 다른 하나를 제2 포지티브 전원전압으로 출력하는 제1 스위칭 회로와, 상기 셀 구성신호를 토대로, 서로 다른 레벨을 가지는 제1 및 제2 네거티브 전압 중에서 하나를 제1 네거티브 전원전압으로 출력하고 다른 하나를 제2 네거티브 전원전압으로 출력하는 제2 스위칭 회로를 구비할 수 있다.
상기 복수의 PUF 셀들 각각은 상기 복수의 발진 경로 중에서 어느 한 발진 경로의 출력이 컬랩스된 이후에 상기 복수의 발진 경로의 출력들 중에서 하나를 상기 출력 값으로 출력할 수 있다.
본 발명의 다른 양태에 따르면, 각각이 복수의 스테이지들을 구비하는 두 발진 회로들을 구비하되, 상기 두 발진 회로들이 주파수가 서로 다른 발진 신호들을 발생하게 구성되는 발진기와, 상기 발진 신호들의 주파수 차이를 증가시킬 수 있도록 상기 복수의 스테이지들에 엇갈려서 공급되는 복수의 바이어스 전압들을 생성하는 바이어스 전압 생성기를 구비하는 PUFF 셀 장치가 제공된다.
본 발명의 또 다른 양태에 따르면, 반도체 장치는 PUFF 셀 어레이와 셀 선택신호 공급부를 구비한다. 상기 PUFF 셀 어레이는 다수의 스테이지들을 구비하며 주파수가 서로 다른 발진 신호들을 발생하는 발진기와, 상기 발진 신호들의 주파수 차이를 증가시킬 수 있도록 상기 다수의 스테이지들에 엇갈려서 공급되는 복수의 바이어스 전압들을 생성하는 바이어스 전압 생성기를 각각이 구비하는 다수의 PUFF 셀들을 포함한다. 상기 셀 선택신호 공급부는 상기 다수의 PUFF 셀들 중 출력 값이 필요한 하나 이상의 셀을 선택하기 위하여 셀 선택신호를 공급한다.
상기 반도체 장치는 상기 다수의 PUF 셀들에 셀 구성신호를 공급하는 셀 구성신호 공급부를 더 구비할 수 있다. 상기 바이어스 전압 생성기는 상기 셀 구성신호를 토대로 상기 복수의 바이어스 전압들을 결정할 수 있다.
본 발명의 또 다른 양태에 따르면, 보안용 키를 생성하여 출력하는 보안용 키 생성 장치가 제공된다. 보안용 키 생성 장치는 다수의 PUFF 셀들을 포함하는 PUFF 셀 어레이; 상기 다수의 PUFF 셀들 각각에 대하여 셀 구성신호를 공급하는 셀 구성신호 공급부; 및 상기 다수의 PUFF 셀들 중 출력 값이 필요한 복수의 셀들을 선택하기 위하여 셀 선택신호를 공급하는 셀 선택신호 공급부;를 구비한다. 상기 다수의 PUFF 셀들 각각은 복수의 스테이지들을 구비하는 발진 회로들을 구비하여 소자들의 물리적 특성 차이를 토대로 주파수가 서로 다른 발진 신호들을 발생하며 발진이 컬랩스되어 안정화된 상태에서 1 비트의 출력 값을 출력하는 발진기와, 상기 발진 신호들의 주파수 차이를 증가시킬 수 있도록 상기 셀 구성신호를 토대로 상기 복수의 스테이지들에 엇갈려서 공급되는 복수의 바이어스 전압들을 생성하는 바이어스 전압 생성기를 구비한다. 보안용 키 생성 장치는 상기 복수의 셀들로부터 출력되는 출력 값들의 조합을 상기 보안용 키로써 출력하게 된다.
본 발명의 실시예들에 따르면, PUF 셀이 문턱전압 차이를 증폭시키는 방식과 발진 주파수 차이를 증폭시키는 방식을 결합함으로써 반도체의 미세구조 차이와 소자간의 물리적 특성 차이를 극대화한다.
본 발명의 PUF 장치는 잡음, 온도, 및 전압과 같은 환경적 요인에 강하다. 따라서, PUF 장치는 환경적 요인의 영향을 덜 받으면서, 안정적 성능을 발휘할 수 있고 우수한 반복성을 가지게 된다. 그러므로 본 발명은 소모 전력을 감소시키고 마스킹 셀의 비율을 줄일 수 있게 해준다. 또한 PUF 셀이 안정된 값을 출력하기까지 걸리는 사이클의 수가 줄어들게 되므로 발진 동작에서 소모되는 동적 소모 전력을 줄일 수 있다.
본 발명의 PUF 장치를 이용하면, 적은 오차를 가지고 넓은 온도 및 전압 범위에서도 올바른 암호화 알고리즘의 키를 생성할 수 있어서 신뢰할 수 있고 안전한 기기 인증을 기대할 수 있다.
도 1은 본 발명의 일 실시예에 따른 집적회로의 블록도이다.
도 2는 도 1에 도시된 PUF 셀 어레이의 블록도이다.
도 3은 본 발명의 일 실시예에 따른 PUF 셀의 상세 블록도이다.
도 4는 본 발명의 일 실시예에 따른 하이브리드 링 발진기의 개략적인 회로도이다.
도 5는 도 4에 도시된 바이어스 전압 생성기의 상세 회로도이다.
도 6은 링 발진기의 동작을 설명하기 위한 상세 회로도이다.
도 7은, 링 발진기에서 게이트들을 구성하는 소자들의 물리적 특성이 완전히 동일하다고 가정하는 경우의, 게이트 출력신호들의 예시적인 파형도이다.
도 8a는, 링 발진기에서 게이트들을 구성하는 소자들의 물리적 특성이 완전히 동일하다고 가정하는 경우의, 링 발진기의 출력신호들의 예시적인 파형도이다.
도 8b는 제1 출력신호의 상승 에지가 제2 출력신호의 상승 에지보다 빠른 경우, 링 발진기의 출력신호들의 변화를 보여주는 파형도이다.
도 8c는 제2 출력신호의 하강 에지가 제1 출력신호의 하강 에지보다 빠른 경우, 링 발진기의 출력신호들의 변화를 보여주는 파형도이다.
도 9는 셀 구성정보 결정부의 블록도이다.
도 10은 도 9의 셀 구성정보 결정부에서의 셀 구성정보 생성 과정을 보여주는 흐름도이다.
도 11은 셀 구성정보 결정부의 동작에 따른 링 발진기 바이어스 전압의 변화를 설명하기 위한 히스토그램이다.
도 12는 본 발명에 의한 물리적 복제 방지 장치를 실험예로써 제작한 집적회로의 다이 현미경 사진이다.
도 13은 본 발명의 실험예에서 실제로 측정된 파형도이다.
도 14는 본 발명에 의한 물리적 복제 방지 장치의 성능을 기존의 장치들과 비교하여 정리한 표이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2, 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. “및/또는”이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 출원의 실시예들에서, “A 및 B 중에서 적어도 하나”는 “A 또는 B 중에서 적어도 하나” 또는 “A 및 B 중 하나 이상의 조합들 중에서 적어도 하나”를 의미할 수 있다. 또한, 본 출원의 실시예들에서, “A 및 B 중에서 하나 이상”은 “A 또는 B 중에서 하나 이상” 또는 “A 및 B 중 하나 이상의 조합들 중에서 하나 이상”을 의미할 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 집적회로의 블록도이다. 도시된 집적회로는 PUF 블록(10), 컨트롤러(90), 및 플래시 메모리(99)를 포함한다. PUF 블록(10)는 다수의 셀들을 구비하며, 컨트롤러(90)의 제어 하에 상기 다수의 셀들 전체 또는 적어도 일부가 생성하는 키를 출력할 수 있다. 컨트롤러(90)는 PUF 블록(10)에 제어신호를 공급한다. 상기 제어신호는 PUF 블록(10) 내에 있는 각 셀에 대한 키 생성 시작신호와, 플래시 메모리(99)에 저장되어 있는 셀 구성정보를 포함할 수 있다. 플래시 메모리(99)는 PUF 블록(10) 내에 있는 각 셀에 대한 상기 셀 구성정보를 저장할 수 있다.
일 실시예에 있어서, PUF 블록(10), 컨트롤러(90), 및 플래시 메모리(99)는 하나의 집적회로 칩으로 패키징될 수 있다. 그렇지만, 본 발명이 이에 한정되는 것은 아니며, PUF 블록(10). 컨트롤러(90), 및 플래시 메모리(99)가 별개의 집적회로 칩으로 패키징될 수도 있다.
PUF 블록(10)은 셀 선택신호 공급부(12), 셀 구성신호 공급부(14), 및 PUF 셀 어레이(20)를 포함할 수 있다. PUF 셀 어레이(20)는 각각이 1비트의 키 값을 생성할 수 있는 다수의 PUF 셀들을 구비하며, 따라서 다수의 비트 길이를 갖는 키를 생성할 수 있다. 셀 선택신호 공급부(12)는 PUF 셀 어레이(20) 내에 있는 셀들 중 어느 하나에 셀 선택신호를 공급하여, 해당 셀이 셀 선택신호에 응답하여 키 값을 생성하여 출력하게 할 수 있다. 셀 구성신호 공급부(14)는 PUF 셀 어레이(20) 내에 있는 각 셀에 셀 구성신호를 공급하여, 각 셀이 상기 셀 구성신호를 토대로 잡음이나 온도 등 환경의 영향을 덜 받으면서 원활하게 키 값 생성을 할 수 있게 해준다.
도 2는 도 1에 도시된 PUF 셀 어레이(20)의 블록도이다. 설명의 편의상, 도 2에는 도 1에 도시된 셀 선택신호 공급부(12)과 셀 구성신호 공급부(14)가 함께 도시되어 있다. PUF 셀 어레이(20)는 종방향 및 횡방향의 2차원적으로 배열된 PUF 셀들(22)을 구비한다.
일 실시예에 있어서, PUF 셀 어레이(20)는 4행, 8열로 배열된 총 128개의 PUF 셀(22)을 구비한다. 각 PUF 셀(22)은 셀 구성신호 공급부(14)로부터 수신되는 셀 구성신호에 따라 내부 구성이 달라질 수 있다. 구체적으로는, 후술하는 바와 같이, PUF 셀(22) 내에 있는 게이트들을 바이어스시키는 전원전압이 셀 선택신호에 응답하여 복수의 전원전압 레벨 중에서 어느 한 값으로 선택될 수 있다. 각 PUF 셀(22)은 셀 선택신호 공급부(12)로부터 수신되는 셀 선택신호에 따라서 활성화되어, 데이터 버스(미도시)를 통해서 1비트의 키 값을 출력하게 된다. 따라서, PUF 셀 어레이(20)는 최대 128비트의 키를 생성하여 순차적으로 출력할 수 있다.
도 3은 본 발명의 일 실시예에 따른 PUF 셀(22)의 상세 블록도이다. PUF 셀(22)은 하이브리드 링 발진기(30)와, 출력 버퍼들(32, 34)과, 제1 및 제2 게이팅 트랜지스터(GP1, GN1)와, 제3 및 제4 게이팅 트랜지스터(GP2, GP3)을 포함한다.
하이브리드 링 발진기(30)는 다수의 트랜지스터를 포함하며, 소자들 간의 물리적 특성 차이를 토대로 키 값을 생성한다. 하이브리드 링 발진기(30)는 제1 및 제2 게이팅 트랜지스터(GP1, GN1)를 통해서 전력을 공급받아 동작하며, 제1 및 제2 게이팅 트랜지스터(GP1, GN1)는 하이브리드 링 발진기(30)에 선택적으로 전력 공급이 이루어지게 할 수 있다. 출력 버퍼들(32, 34)은 하이브리드 링 발진기(30)에서 생성된 신호를 증폭하여, 증폭된 신호를 출력신호(OUT, OUTB)로써 데이터 버스(16)에 출력한다. 또한, 출력 버퍼들(32, 34)은 하이브리드 링 발진기(30)의 출력단을 외부 회로를 아이솔레이션할 수 있다. 출력 버퍼들(32, 34)은 인버터에 의해 구현될 수 있다. 한편, 도면에는 도시되지 않았지만, 발진시작을 제어하는 스타트 신호(START)가 하이브리드 링 발진기(30)에 추가적으로 입력될 수 있다.
제1 게이팅 트랜지스터(GP1)는 PMOS 트랜지스터로 구현될 수 있으며, 소스가 전원전압(VDD)에 바이어스되고, 드레인이 하이브리드 링 발진기(30)에 접속되며, 게이트로 제1 슬립 신호(Sleep_P)로 받아들일 수 있다. 이에 따라, 제1 게이팅 트랜지스터(GP1)는 제1 슬립 신호(Sleep_P)가 하이 레벨일 때에는 하이브리드 링 발진기(30)에 대한 전원전압(VDD)의 공급을 차단하고, 제1 슬립 신호(Sleep_P)가 로우 레벨일 때에만 하이브리드 링 발진기(30)에 전원전압(VDD)이 공급되게 한다.
제2 게이팅 트랜지스터(GN1)는 NMOS 트랜지스터로 구현될 수 있으며, 드레인이 하이브리드 링 발진기(30)에 접속되고, 소스가 전원전압(VSS)에 바이어스되며, 게이트로 제2 슬립 신호(Sleep_N)를 받아들일 수 있다. 이에 따라, 제2 게이팅 트랜지스터(GN1)는 제2 슬립 신호(Sleep_N)가 로우 레벨일 때에는 하이브리드 링 발진기(30)에 대한 전원전압(VSS) 공급을 차단하고, 제2 슬립 신호(Sleep_N)가 하이 레벨일 때에만 하이브리드 링 발진기(30)에 전원전압(VSS)이 공급되게 한다.
제1 및 제2 게이팅 트랜지스터(GP1, GN1)는 PUF 셀(22)의 키 값 생성이 불필요한 대기시간에는 하이브리드 링 발진기(30)에 공급되는 전류를 차단하여 대기 전력 내지 누설 전류로 인한 전력 소비를 줄일 수 있게 해준다. 제1 및 제2 슬립 신호(Sleep_P, Sleep_N)는 컨트롤러(90)로부터 공급될 수 있다.
제3 게이팅 트랜지스터(GP2)는 PMOS 트랜지스터로 구현될 수 있으며, 소스가 제1 게이팅 트랜지스터(GP1)의 드레인에 접속되고, 드레인이 제1 출력 버퍼(32)에 접속되며, 게이트로 셀 선택신호(Read_EN)를 받아들일 수 있다. 이에 따라, 제3 게이팅 트랜지스터(GP2)는 제1 슬립 신호(Sleep_P)가 로우 레벨이어서 하이브리드 링 발진기(30)가 동작하는 상태에서 셀 선택신호(Read_EN)가 로우 레벨로 활성되었을 때에만 제1 출력 버퍼(32)에 전원전압(VDD)을 공급하여 제1 출력 버퍼(32)가 하이브리드 링 발진기(30)에서 출력되는 신호를 버퍼링하여 출력신호(OUT)를 출력하게 해준다.
제4 게이팅 트랜지스터(GP3)는 PMOS 트랜지스터로 구현될 수 있으며, 소스가 제1 게이팅 트랜지스터(GP1)의 드레인에 접속되고, 드레인이 제2 출력 버퍼(34)에 접속되며, 게이트로 셀 선택신호(Read_EN)를 받아들일 수 있다. 이에 따라, 제4 게이팅 트랜지스터(GP3)는 제1 슬립 신호(Sleep_P)가 로우 레벨이어서 하이브리드 링 발진기(30)가 동작하고 있는 상태에서 셀 선택신호(Read_EN)가 로우 레벨로 활성되었을 때에만 제2 출력 버퍼(34)에 전원전압(VDD)을 공급하여 제2 출력 버퍼(34)가 하이브리드 링 발진기(30)에서 출력되는 신호를 버퍼링하여 반전 출력신호(OUTB)를 출력하게 해준다.
그러므로, 제3 및 제4 게이팅 트랜지스터(GP2, GP3)는 셀 선택신호(Read_EN)가 활성 상태일 때에만, 출력 버퍼들(32, 34)이 출력신호(OUT, OUTB)를 데이터 버스(16a, 16b)에 출력하게 해준다. 그리고, 셀 선택신호(Read_EN)는 하이브리드 링 발진기(30)의 출력이 충분히 안정화되었을 때 활성화될 수 있다.
도 4는 본 발명의 일 실시예에 따른 하이브리드 링 발진기(30)의 회로도이다.
하이브리드 링 발진기(30)는 바이어스 전압 생성기(40)와 링 발진기(60)를 포함한다. 링 발진기(60)는 다수의 게이트가 링 형태로 접속된 구조를 가지며, 스타트 신호(STARTA, STARTB)가 인가된 시점부터 신호를 발진하다가 일정 시간 경과 후부터 안정화되어 고정된 레벨을 가지는 신호(OUT1, OUT2)를 출력한다. 출력신호(OUT1, OUT2)의 고정된 레벨은 하이브리드 링 발진기(30) 내에 있는 소자들의 물리적 특성 차이에 기인하는 것으로서, 동작시마다 우연에 의해 달라지는 것이 아니라 필연적으로 결정되며, 각 PUF 셀마다 항상 동일한 레벨을 가질 수 있다. 바이어스 전압 생성기(40)는 공정요인에 따른 소자들의 물리적 특성 차이를 증폭시키기 위하여 링 발진기(60)에 대한 바이어스 전압을 공급하며, 링 발진기(60)가 온도나 전압 등의 환경 변화에도 우수한 반복성을 가지고 안정된 특성을 보일 수 있게 해준다.
바이어스 전압 생성기(40)는 2개의 PMOS 트랜지스터들(P1, P2)과, 제1 스위칭 회로(42)와, 2개의 NMOS 트랜지스터들(N1, N2)과, 제2 스위칭 회로(44)를 포함한다.
PMOS 트랜지스터(P1)의 소스는 전원전압(VDD)에 바이어스되고, 게이트는 드레인에 결합되어 다이오드 결선되어 있다. PMOS 트랜지스터(P1)의 드레인은 제1 스위칭 회로(42)를 통해서 제1 노드(50)와 제2 노드(52) 중 어느 하나에 접속될 수 있다. PMOS 트랜지스터(P2)의 소스는 전원전압(VDD)에 바이어스되고, 게이트는 드레인에 결합되어 다이오드 결선되어 있다. PMOS 트랜지스터(P2)의 드레인은 제1 스위칭 회로(42)를 통해서 제1 노드(50)와 제2 노드(52) 중 어느 하나에 접속될 수 있다.
제1 스위칭 회로(42)는 PMOS 트랜지스터들(P1, P2) 중 어느 하나의 드레인을 제1 노드(50)에 접속시키고, 다른 하나의 드레인은 제2 노드(52)에 접속시킬 수 있다. PMOS 트랜지스터(P1)의 드레인이 제1 노드(50)에 접속되면 PMOS 트랜지스터(P2)의 드레인은 제2 노드(52)에 접속된다. PMOS 트랜지스터(P1)의 드레인이 제2 노드(52)에 접속되면 PMOS 트랜지스터(P2)의 드레인은 제1 노드(50)에 접속된다.
PMOS 트랜지스터들(P1, P2)의 드레인 전압은 해당 트랜지스터들의 문턱전압에 의해 결정되므로, 공정 불일치로 인하여 PMOS 트랜지스터들(P1, P2)의 드레인 전압은 서로 다를 수 있다. 따라서 제1 노드(50)의 전압은 제2 노드(52)의 전압과 다를 수 있다. 제1 및 제2 노드(50, 52)의 전압은 각각 제1 및 제2 포지티브 전원전압(VDDA, VDDB)으로서 링 발진기(60)에 공급된다.
NMOS 트랜지스터(N1)의 소스는 전원전압(VSS)에 바이어스되고, 게이트는 드레인에 결합되어 다이오드 결선되어 있다. NMOS 트랜지스터(N1)의 드레인은 제2 스위칭 회로(44)를 통해서 제3 노드(54)와 제4 노드(56) 중 어느 하나에 접속될 수 있다. NMOS 트랜지스터(N2)의 소스는 전원전압(VSS)에 바이어스되고, 게이트는 드레인에 결합되어 다이오드 결선되어 있다. NMOS 트랜지스터(N2)의 드레인은 제2 스위칭 회로(44)를 통해서 제3 노드(54)와 제4 노드(56) 중 어느 하나에 접속될 수 있다.
제2 스위칭 회로(44)는 NMOS 트랜지스터(N1, N2) 중 어느 하나의 드레인을 제3 노드(54)에 접속시키고, 다른 하나의 드레인은 제4 노드(56)에 접속시킬 수 있다. NMOS 트랜지스터(N1)의 드레인이 제3 노드(54)에 접속되면 NMOS 트랜지스터(N2)의 드레인은 제4 노드(56)에 접속된다. NMOS 트랜지스터(N1)의 드레인이 제4 노드(56)에 접속되면 NMOS 트랜지스터(N2)의 드레인은 제3 노드(54)에 접속된다.
NMOS 트랜지스터(N1, N2)의 드레인 전압은 해당 트랜지스터들의 문턱전압에 의해 결정되므로, 공정 불일치로 인하여 NMOS 트랜지스터(N1, N2)의 드레인 전압은 서로 다를 수 있다. 따라서 제3 노드(54)의 전압은 제4 노드(56)의 전압과 다를 수 있다. 제31 및 제4 노드(54, 56)의 전압은 각각 제1 및 제2 네거티브 전원전압(VSSA, VSSB)으로서 링 발진기(60)에 공급된다.
도 5는 바이어스 전압 생성기(40)의 상세 회로도이다.
도 5를 참조하면, 제1 스위칭 회로(42)는 셀 구성신호(CONFIG[0])와 반전된 셀 구성신호(/CONFIG[0])를 받아들이고, 이 신호들의 레벨에 따라 PMOS 트랜지스터들(P1, P2) 중 어느 하나의 드레인이 제1 노드(50)에 접속되고 다른 하나의 드레인이 제2 노드(52)에 접속되게 한다. 제1 스위칭 회로(42)는 4개의 PMOS 트랜지스터(P3-P6)를 포함할 수 있다. PMOS 트랜지스터(P3)의 소스는 PMOS 트랜지스터(P1)의 드레인에 접속되고, 드레인은 제1 노드(50)에 접속되며, 게이트에는 셀 구성신호(CONFIG[0])가 입력된다. PMOS 트랜지스터(P4)의 소스는 PMOS 트랜지스터(P1)의 드레인에 접속되고, 드레인은 제2 노드(52)에 접속되며, 게이트에는 반전된 셀 구성신호(/CONFIG[0])가 입력된다. PMOS 트랜지스터(P5)의 소스는 PMOS 트랜지스터(P2)의 드레인에 접속되고, 드레인은 제1 노드(50)에 접속되며, 게이트에는 반전된 셀 구성신호(/CONFIG[0])가 입력된다. PMOS 트랜지스터(P6)의 소스는 PMOS 트랜지스터(P2)의 드레인에 접속되고, 드레인은 제2 노드(52)에 접속되며, 게이트에는 셀 구성신호(CONFIG[0])가 입력된다.
따라서, 셀 구성신호(CONFIG[0])가 '하이'이고 반전된 셀 구성신호(/CONFIG[0])가 '로우'이면, PMOS 트랜지스터들(P3, P6)은 턴오프되고 PMOS 트랜지스터들(P4, P5)은 턴온된다. 이에 따라 PMOS 트랜지스터(P2)의 드레인이 제1 노드(50)에 접속되고 PMOS 트랜지스터(P1)의 드레인은 제2 노드(52)에 접속된다. 한편, 셀 구성신호(CONFIG[0])가 '로우'이고 반전된 셀 구성신호(/CONFIG[0])가 '하이'이면, PMOS 트랜지스터들(P3, P6)은 턴온되고 PMOS 트랜지스터들(P4, P5)은 턴오프된다. 이에 따라 PMOS 트랜지스터(P1)의 드레인이 제1 노드(50)에 접속되고 PMOS 트랜지스터(P2)의 드레인은 제2 노드(52)에 접속된다.
이상적인 공정 조건에서는 PMOS 트랜지스터들(P1, P2)은 물리적 특성이 동일하고 제1 노드(50)에서의 전압(VDDA)과 제2 노드(52)에서의 전압(VDDB)이 동일할 것이다. 그렇지만, 실제로는 공정변수의 국부적 편차로 인하여 PMOS 트랜지스터들(P1, P2)의 물리적 특성이 다르게 되고 제1 노드(50)에서의 전압(VDDA)과 제2 노드(52)에서의 전압(VDDB)이 서로 다르게 된다.
제2 스위칭 회로(44)는 셀 구성신호(CONFIG[1])와 반전된 셀 구성신호(CONFIG[1])를 받아들이고, 이 신호들의 레벨에 따라 NMOS 트랜지스터들(N1, N2) 중 어느 하나의 드레인이 제3 노드(54)에 접속되고 다른 하나의 드레인이 제4 노드(56)에 접속되게 한다. 제2 스위칭 회로(44)는 4개의 NMOS 트랜지스터(N3-N6)를 포함할 수 있다. NMOS 트랜지스터(N3)의 소스는 NMOS 트랜지스터(N1)의 드레인에 접속되고, 드레인은 제3 노드(54)에 접속되며, 게이트에는 셀 구성신호(CONFIG[1])가 입력된다. NMOS 트랜지스터(N4)의 소스는 NMOS 트랜지스터(N1)의 드레인에 접속되고, 드레인은 제4 노드(56)에 접속되며, 게이트에는 반전된 셀 구성신호(/CONFIG[1])가 입력된다. NMOS 트랜지스터(N5)의 소스는 NMOS 트랜지스터(N2)의 드레인에 접속되고, 드레인은 제3 노드(54)에 접속되며, 게이트에는 반전된 셀 구성신호(/CONFIG[1])가 입력된다. NMOS 트랜지스터(N6)의 소스는 NMOS 트랜지스터(N2)의 드레인에 접속되고, 드레인은 제4 노드(56)에 접속되며, 게이트에는 셀 구성신호(CONFIG[1])가 입력된다.
따라서, 셀 구성신호(CONFIG[1])가 '하이'이고 반전된 셀 구성신호(/CONFIG[1])가 '로우'이면, NMOS 트랜지스터들(N3, P6)은 턴온되고 NMOS 트랜지스터들(N4, P5)은 턴오프된다. 이에 따라 NMOS 트랜지스터(N1)의 드레인이 제3 노드(54)에 접속되고 NMOS 트랜지스터(N2)의 드레인은 제4 노드(56)에 접속된다. 한편, 셀 구성신호(CONFIG[1])가 '로우'이고 반전된 셀 구성신호(/CONFIG[1])가 '하이'이면, NMOS 트랜지스터들(N3, P6)은 턴오프되고 NMOS 트랜지스터들(N4, P5)은 턴온된다. 이에 따라 NMOS 트랜지스터(N1)의 드레인이 제4 노드(56)에 접속되고 NMOS 트랜지스터(N2)의 드레인은 제3 노드(54)에 접속된다.
이상적인 공정 조건에서는 NMOS 트랜지스터들(N1, N2)은 물리적 특성이 동일하고 제3 노드(54)에서의 전압(VSSA)과 제4 노드(56)에서의 전압(VSSB)이 동일할 것이다. 그렇지만, 실제로는 공정변수의 국부적 편차로 인하여 NMOS 트랜지스터들(N1, N2)의 물리적 특성이 다르게 되고 제3 노드(54)에서의 전압(VSSA)과 제4 노드(56)에서의 전압(VSSB)이 서로 다르게 된다.
제1 노드(50)에서의 전압(VDDA)과 제2 노드(52)에서의 전압(VDDB)은 각각에 대하여 별도로 마련된 레일들을 통해 링 발진기(60)에 공급된다. 또한, 제3 노드(54)에서의 전압(VSSA)과 제4 노드(56)에서의 전압(VSSB)은 각각에 대하여 별도로 마련된 레일들을 통해 링 발진기(60)에 공급된다. 이에 따라, 바이어스 전압 생성기(40)는 두 개의 포지티브(positive) 전원전압 레일을 통해 제1 및 제2 포지티브 전원전압(VDDA, VDDB)을 링 발진기(60)에 공급하고, 두 개의 네거티브(negative) 전원전압 레일을 통해 제1 및 제2 네거티브 전원전압(VSSA, VSSB)을 링 발진기(60)에 공급하게 된다.
다시 도 4를 참조하면, 본 발명의 일 실시예에 따른 링 발진기(60)는 일반적인 링 발진기 2개가 결합하여 하나의 루프를 형성하는 구조를 가진다. 구체적으로, 링 발진기(60)는 루프 형태로 결합된 제1 발진기 내지 발진 경로와 제2 발진기 내지 발진 경로를 포함한다. 제1 발진기는 NAND 게이트(70)와 복수의 인버터들(72a-72d)을 구비하고, 제2 발진기는 NAND 게이트(80)와 복수의 인버터들(82a-82d)을 구비한다. 인버터들(72a-72d)의 개수와 인버터들(82a-82d)의 개수는 서로 동일하고, 짝수이다.
NAND 게이트(70)의 일 입력 단자에는 스타트 신호(STARTA)가 입력되고, 다른 입력 단자에는 제8 인버터(82d)로부터의 제2 출력신호(OUT2)이 입력될 수 있다. NAND 게이트(70)의 출력 단자는 제1 인버터(72a)의 입력이 될 수 있다. 제1 내지 제4 인버터들(72a-72d)은 직렬로 연결된다. 제4 인버터(72d)의 출력은 링 발진기(60)의 제1 출력신호(OUT1)이 될 수 있다. 한편, NAND 게이트(80)의 일 입력 단자에는 스타트 신호(STARTB)가 입력되고, 다른 입력 단자에는 제4 인버터(72d)로부터의 제1 출력신호(OUT1)이 입력될 수 있다. NAND 게이트(80)의 출력 단자는 제5 인버터(82a)의 입력이 될 수 있다. 제5 내지 제8 인버터들(82a-82d)은 직렬로 연결된다. 제8 인버터(82d)의 출력은 링 발진기(60)의 제2 출력신호(OUT2)이 될 수 있다. 여기서, 두 개의 스타트 신호(STARTA, STARTB)는 실제로는 동일한 신호일 수 있다. 즉, 스타트 신호(STARTA)가 스타트 신호(STARTB)로 사용될 수도 있다.
NAND 게이트들(70, 80)과 제1 내지 제8 인버터(72a-72d, 82a-82d) 중에서 인접한 디바이스들은 서로 다른 전원전압 레일로부터 전원전압을 공급받게 된다. 예컨대, NAND 게이트(70), 제2 인버터(72b), 제4 인버터(72d), 제5 인버터(82a), 및 제7 인버터(82c)는 제2 포지티브 전원전압(VDDB)과 제1 네거티브 전원전압(VSSA)으로 바이어스될 수 있다. 그리고 제1 인버터(72a), 제3 인버터(72c), NAND 게이트(80), 제6 인버터(82b), 및 제8 인버터(82d)는 제1 포지티브 전원전압(VDDA)과 제2 네거티브 전원전압(VSSB)으로 바이어스될 수 있다. 즉, 각 디바이스는 인접한 디바이스들과 다른 전원전압 레일로부터 포지티브 전원전압과 네거티브 전원전압을 공급받게 된다.
링 발진기(60)에서, 스타트 신호(STARTA, STARTB)의 인가 직후에는 제1 및 제2 출력신호(OUT1, OUT2)이 실질적으로 동일한 레벨을 가진다. 그렇지만, 링 발진기(60) 내에 있는 소자들의 물리적 특성 차이로 인하여, 일정 시간이 경과한 후에 제1 및 제2 출력신호(OUT1, OUT2) 중 하나가 다른 하나를 따라잡게 되고, 발진기 기능이 컬랩스(collapse)된다. 이에 따라, 제1 및 제2 출력신호(OUT1, OUT2)는 랫치되어, 서로 상보적인 레벨로 고정된다. 각각이 서로 다른 레벨을 가지면서 별도의 레일을 통해 링 발진기(60)에 공급되는 두 포지티브 전원전압(VDDA, VDDB)과 두 네거티브 전원전압(VSSA, VSSB)은 컬랩스에 소요되는 시간을 단축시키고, 링 발진기(60)가 온도 등의 환경 변화에도 안정으로 동작할 수 있게 해준다.
도 6 내지 도 8을 참조하여, 링 발진기(60)의 동작을 설명한다.
도 6은 링 발진기(60)의 동작을 설명하기 위한 상세 회로도이다. 도 6을 참조하면, 제1 내지 제8 인버터들(72a-82d) 각각은 한 개의 PMOS 트랜지스터와 한 개의 NMOS 트랜지스터로 구성되는 트랜지스터 쌍으로 구현될 수 있다. 상기 각 트랜지스터 쌍은 CMOS 트랜지스터에 의해 구현될 수 있다.
제1 인버터(72a)의 PMOS 트랜지스터(P11)의 소스, 제3 인버터(72c)의 PMOS 트랜지스터(P13)의 소스, 제2 NAND 게이트(80)의 제1 전원단자, 제5 인버터(82a)의 PMOS 트랜지스터(P15)의 소스, 제7 인버터(82c)의 PMOS 트랜지스터(P17)의 소스에는 제1 포지티브 전원전압(VDDA)이 인가된다. 제1 NAND 게이트(70)의 제1 전원단자, 제2 인버터(72b)의 PMOS 트랜지스터(P12)의 소스, 제4 인버터(72d)의 PMOS 트랜지스터(P14)의 소스, 제6 인버터(82b)의 PMOS 트랜지스터(P16)의 소스, 제8 인버터(82d)의 PMOS 트랜지스터(P18)의 소스, 에는 제2 포지티브 전원전압(VDDB)이 인가된다. 이에 따라, 제1 NAND 게이트(70)의 제1 전원단자, PMOS 트랜지스터들(P11-P14)의 소스, 제2 NAND 게이트(80)의 제1 전원단자, PMOS 트랜지스터들(P15-P18)의 소스에는 제1 및 제2 포지티브 전원전압(VDDA, VDDB)이 서로 엇갈려서 교대로 인가된다.
제1 NAND 게이트(70)의 제2 전원단자, 제2 인버터(72b)의 NMOS 트랜지스터(N12)의 소스, 제4 인버터(72d)의 NMOS 트랜지스터(N14)의 소스, 제5 인버터(82a)의 NMOS 트랜지스터(N15)의 소스, 제7 인버터(82c)의 NMOS 트랜지스터(N17)의 소스에는 제1 네거티브 전원전압(VSSA)이 인가된다. 제1 인버터(72a)의 NMOS 트랜지스터(N11)의 소스, 제3 인버터(72c)의 NMOS 트랜지스터(N13)의 소스, 제2 NAND 게이트(80)의 제2 전원단자, 제6 인버터(82b)의 NMOS 트랜지스터(N16)의 소스, 제8 인버터(82d)의 NMOS 트랜지스터(N18)의 소스에는 제2 네거티브 전원전압(VSSB)이 인가된다. 이에 따라, 제1 NAND 게이트(70)의 제2 전원단자, NMOS 트랜지스터들(N11-N14)의 소스, 제2 NAND 게이트(80)의 제2 전원단자, NMOS 트랜지스터들(N15-N18)의 소스에는 제1 및 제2 네거티브 전원전압(VSSA, VSSB)이 서로 엇갈려서 교대로 인가된다.
도 6에서, 링 발진기(60)는 점선으로 표시한 제1 지연경로(delay path)와 실선으로 표시한 제2 지연경로를 통해서 발진을 일으킨다.
발진 신호(OUT1, OUT2)에서, 제1 출력신호(OUT1)의 상승 에지와 제2 출력신호(OUT2)의 하강 에지의 타이밍은 제1 NAND 게이트(70)의 풀업 트랜지스터(미도시)의 풀업, NMOS 트랜지스터(N11)의 풀다운, PMOS 트랜지스터(P12)의 풀업, NMOS 트랜지스터(N13)의 풀다운, PMOS 트랜지스터(P14)의 풀업, 제2 NAND 게이트(80)의 풀다운 트랜지스터(미도시)의 풀다운, PMOS 트랜지스터(P15)의 풀업, NMOS 트랜지스터(N16)의 풀다운, PMOS 트랜지스터(P17)의 풀업, NMOS 트랜지스터(N18)의 풀다운 동작에 의해서 정해진다.
제1 출력신호(OUT1)의 하강 에지와 제2 출력신호(OUT2)의 상승 에지의 타이밍은 제1 NAND 게이트(70)의 풀다운 트랜지스터(미도시)의 풀다운, PMOS 트랜지스터(P11)의 풀업, NMOS 트랜지스터(N12)의 풀다운, PMOS 트랜지스터(P13)의 풀업, NMOS 트랜지스터(N14)의 풀다운, 제2 NAND 게이트(80)의 풀업 트랜지스터(미도시)의 풀업, NMOS 트랜지스터(N15)의 풀다운, PMOS 트랜지스터(P16)의 풀업, NMOS 트랜지스터(N17)의 풀다운, PMOS 트랜지스터(P18)의 풀업 동작에 의해서 정해진다.
두 지연경로에서의 풀업 및 풀다운에 소요되는 지연시간들의 합산치의 상대적인 길고 짧음에 따라, 제1 및 제2 출력신호(OUT1, OUT2) 중 따라잡히는 신호가 결정되고, PUF 셀의 출력값이 달라진다. 이하, 이를 구체적으로 설명한다.
도 7은, 링 발진기에서 게이트들을 구성하는 소자들의 물리적 특성이 완전히 동일하다고 가정하는 경우의, 게이트 출력신호들의 예시적인 파형도이다. 도 7에 도시된 동작에서는, 두 스타트 신호(STARTA, STARTB)로 동일하다고 가정하고 이를 '스타트 신호(START)'로 나타내기로 한다. 스타트 신호(START)가 '로우'일 때, 제1 및 제2 출력신호(OUT1, OUT2)은 '하이' 레벨에 있게 된다. 이와 같은 상태에서 발진 작용은 스타트 신호(START)가 '하이'로 활성화될 때 시작된다.
스타트 신호(START)가 '하이'로 천이되면, NAND 게이트(70)는 일정한 지연시간 후에 '로우'를 출력한다. 이에 따라, 직렬 연결된 제1 내지 제4 인버터들(72a-72d)은 순차적으로 '하이', '로우', '하이', '로우'를 출력하게 된다. 이때, NAND 게이트(70)와 제1 내지 제4 인버터들(72a-72d)은 수신되는 신호 레벨이 변경된 후 일정한 내부 지연시간 후에 천이된 신호를 출력하게 된다. 그러므로, 제4 인버터(72d)의 출력인 제1 출력신호(OUT1)은 타이밍(t0)에 스타트 신호(START)가 '하이'로 활성화된 후 일정한 지연시간 후에 즉 타이밍(t5)에 '로우'로 천이된다.
마찬가지로, 타이밍(t0)에 스타트 신호(START)가 '하이'로 천이되면, NAND 게이트(80)는 일정한 지연시간 후에 '로우'를 출력한다. 이에 따라, 직렬 연결된 제5 내지 제8 인버터들(82a-82d)은 순차적으로 '하이', '로우', '하이', '로우'를 출력하게 된다. 이때, NAND 게이트(80)와 제5 내지 제8 인버터들(82a-82d)은 수신되는 신호 레벨이 변경된 후 일정한 내부 지연시간 후에 천이된 신호를 출력하게 된다. 그러므로, 제8 인버터(82d)의 출력인 제2 출력신호(OUT2)은 타이밍(t0)에 스타트 신호(START)가 '하이'로 활성화된 후 일정한 지연시간 후에 즉 타이밍(t5)에 '로우'로 천이된다.
이후, 제8 인버터(82d)에서 출력되는 제2 출력신호(OUT2)은 NAND 게이트(70)에 입력되고, 제4 인버터(72d)에서 출력되는 제1 출력신호(OUT1)은 NAND 게이트(80)에 입력되어, 각각의 출력이 천이되도록 한다. 그리고, 제1 내지 제4 인버터들(72a-72d)과 제5 내지 제8 인버터들(82a-82d)의 출력들이 순차적으로 천이되고, 제1 출력신호(OUT1)과 제2 출력신호(OUT2)의 상태가 타이밍(t10)에 '하이'로 변경된다.
위와 같은 과정이 반복되면서, 제1 출력신호(OUT1)과 제2 출력신호(OUT2)은 각 지연경로에서 게이트들의 내부 지연시간의 총합과 동일한 주기로 '하이' 레벨과 '로우' 레벨 사이에서 천이를 일으켜서 발진할 수 있다. 도 8a는 이와 같이 게이트들을 구성하는 소자들의 물리적 특성이 완전히 동일하다고 가정하는 경우의 링 발진기(60)의 출력신호들(OUT1, OUT2)의 예시적인 파형도이다. 소자들의 물리적 특성이 완전히 동일하다고 가정하는 경우, 링 발진기(60)의 두 출력신호들(OUT1, OUT2)은 동일한 파형을 가질 수 있다.
그런데, 제조 공정에서 공정 조건의 미세한 국부적 불균일성으로 인하여 각 소자들은 물리적 특성에서 차이를 보이게 되고, 링 발진기(60) 내에 있는 각 게이트에서의 지연시간은 게이트마다 서로 다르게 된다. 이에 따라, 제1 NAND 게이트(70)와 제1 내지 제4 인버터들(72a-72d)에서의 지연시간의 합은 제2 NAND 게이트(80)와 제5 내지 제8 인버터들(82a-82d)에서의 지연시간의 합과 다르다. 그러므로 제1 출력신호(OUT1)과 제2 출력신호(OUT2) 사이에 엣지 레이싱(edge racing)이 발생한다.
만약 도 6에서 점선으로 표시된 제1 지연경로 상에 있는 트랜지스터들의 풀다운 및 풀업 동작에서의 지연시간의 합이 실선으로 표시된 제2 지연경로 상에 있는 트랜지스터들의 풀업 및 풀다운 동작에서의 지연시간의 합보다 짧다면, 제1 출력신호(OUT1)의 상승 에지가 제2 출력신호(OUT2)의 상승 에지보다 빠르거나 제2 출력신호(OUT2)의 하강 에지가 제1 출력신호(OUT1)의 하강 에지보다 빠르게 된다.
도 8b에 도시된 바와 같이 제1 출력신호(OUT1)의 상승 에지가 제2 출력신호(OUT2)의 상승 에지보다 빠른 경우, 도 6에서 점선으로 표시된 제1 지연경로에서의 지연시간이 실선으로 표시된 제2 지연경로에서의 지연시간보다 짧게 때문에, 제1 출력신호(OUT1)의 상승 에지는 점점 더 빨라지게 된다. 결국, 다음 수학식 1과 같이 제1 출력신호(OUT1)의 N번째 상승 에지가 제2 출력신호(OUT2)의 하강 에지를 따라잡거나 제1 출력신호(OUT1)의 (N-1)번째 하강 에지와 중첩되는 시점이 도래하게 된다. 이와 같은 상황이 발생하면, 발진기 기능이 컬랩스되고, 제1 및 제2 출력신호(OUT1, OUT2)는 각각 '하이'와 '로우'로 랫치되어 변동하지 않게 된다.
Figure 112021091515064-pat00001
도 8c에 도시된 바와 같이 제2 출력신호(OUT2)의 하강 에지가 제1 출력신호(OUT1)의 하강 에지보다 빠른 경우에도, 도 6에서 점선으로 표시된 제1 지연경로에서의 지연시간이 실선으로 표시된 제2 지연경로에서의 지연시간보다 짧게 때문에, 제2 출력신호(OUT2)의 하강 에지는 점점 더 빨라지게 된다. 결국, 다음 수학식 2과 같이 제2 출력신호(OUT2)의 (N+1)번째 하강 에지가 제1 출력신호(OUT1)의 상승 에지를 따라잡는 시점이 도래하게 된다. 이와 같은 경우에도, 발진기 기능이 컬랩스되고, 제1 및 제2 출력신호(OUT1, OUT2)는 각각 '하이'와 '로우'로 랫치되어 변동하지 않게 된다.
Figure 112021091515064-pat00002
도 8b 및 도 8c에서는 제1 출력신호(OUT1)의 상승 에지가 제2 출력신호(OUT2)의 상승 에지보다 빠른 경우와 제2 출력신호(OUT2)의 하강 에지가 제1 출력신호(OUT1)의 하강 에지보다 빠른 경우만을 예시하였지만, 제2 출력신호(OUT2)의 상승 에지가 제1 출력신호(OUT1)의 상승 에지보다 빠르거나 제1 출력신호(OUT1)의 하강 에지가 제2 출력신호(OUT2)의 하강 에지보다 빠른 경우에도 비슷하게 설명이 가능하다.
이와 같이 게이트들 내부에 있는 각 소자들의 물리적 특성의 차이와 이로 인한 각 게이트에서의 지연시간들의 차이가 존재하면, 발진기 기능이 컬랩스되어 링 발진기(60)는 더 이상 발진을 하지 않게 되며, 제1 및 제2 출력신호(OUT1, OUT2)는 고정된 출력 레벨을 유지한다. 출력신호들(OUT1, OUT2)의 논리 레벨들과, 상기 논리 레벨들이 고정되는 시점은 각 지연경로에서의 지연시간 차이에 따라 달라질 수 있다. 그리고 링 발진기(60)의 안정화된 상태에서의 출력 값은 해당 PUF 셀(22)의 특유의 속성이 된다.
특히, 본 발명의 일 실시예에 따르면, 발진기(60)에서 각 게이트의 바이어스 전압을 이웃 게이트들의 바이어스 전압과 다르게 설정되기 때문에, 링 발진기(60)의 불안정성을 줄이고 컬랩스 및 레벨 고정화에 이르는 시간을 단축시킬 수 있다.
예를 들어, 도 8b와 같이 제1 출력신호(OUT1)의 상승 에지가 제2 출력신호(OUT2)의 상승 에지보다 빠르거나 도 8c와 같이 제2 출력신호(OUT2)의 하강 에지가 제1 출력신호(OUT1)의 하강 에지보다 빠르다고 가정한다.
이 경우, 제2 포지티브 전원전압(VDDB)은 제1 포지티브 전원전압(VDDA)보다 큰 값을 가지도록 설정될 수 있다. 이에 따라, 도 6에서 실선으로 표시된 제2 지연경로에 있는 PMOS 트랜지스터들(P12, P14, P16, P18)은 상대적으로 크기가 큰 제2 포지티브 전원전압(VDDB)으로 바이어스되기 때문에, 제1 포지티브 전원전압(VDDA)으로 바이어스되는 제1 지연경로에 있는 PMOS 트랜지스터들(P11, P13, P15, P17)보다 더 빨리 풀업될 수 있다. 이에 반하여, 점선으로 표시된 제2 지연경로에 있는 PMOS 트랜지스터들(P11, P13, P15, P17)은 서서히 풀업된다. 이러한 풀업 속도의 차이는 제1 출력신호(OUT1)의 상승 에지와 제2 출력신호(OUT2)의 상승 에지의 속도 차이를 더 증가시키게 된다.
아울러, 이 예에서는, 제2 네거티브 전원전압(VSSB)이 제1 네거티브 전원전압(VSSA)보다 더 작은 값을 가지도록 설정될 수 있다. 이에 따라, 도 6에서 실선으로 표시된 제2 지연경로에 있는 NMOS 트랜지스터들(N11, N13, N15, N17)은 크기가 더 작은 제2 네거티브 전원전압(VSSB)으로 바이어스되기 때문에, 제1 네거티브 전원전압(VSSA)으로 바이어스되는 제1 지연경로에 있는 NMOS 트랜지스터들(N12, N14, N16, N18)보다 더 빨리 풀다운될 수 있다. 이에 반하여, 점선으로 표시된 제2 지연경로에 있는 NMOS 트랜지스터들(N12, N14, N16, N18)은 서서히 풀다운된다. 이러한 풀다운 속도의 차이는 제2 출력신호(OUT2)의 하강 에지와 제1 출력신호(OUT1)의 하강 에지의 속도 차이를 더 증가시키게 된다.
나아가, 포지티브 전원전압들(VDDA, VDDB)과 네거티브 전원전압들(VSSA, VSSB)의 조합을 통해서, 엣지 레이싱에서 제1 출력신호(OUT1)와 제2 출력신호(OUT2)의 지연시간과 속도 차이를 더욱 심화시킬 수 있다. 그러므로, 링 발진기(60)에서의 발진 기능이 캘랩스되기까지의 시간을 단축시키고, 엣지 레이싱을 조기에 종료시켜 신호들을 안정화시키는 것이 가능해진다. 아울러, 위와 같은 바이어싱 방식은 환경 요인에 따른 PUF 셀의 오동작 가능성을 줄이고, PUF 셀의 반복성과 안정성을 높이게 된다.
앞에서 설명한 바와 같이, 바이어스 전압 생성기(40)의 제1 스위칭 회로(42)는 PMOS 트랜지스터(P1)의 드레인 전위와 PMOS 트랜지스터(P2)의 드레인 전위를 받아들이고, 셀 구성신호(CONFIG[0], /CONFIG[0])에 응답하여 두 전위 중 어느 하나를 제1 포지티브 전원전압(VDDA)으로서 링 발진기(60)에 공급하고, 다른 하나의 전위를 제2 포지티브 전원전압(VDDB)으로서 링 발진기(60)에 공급한다. 제2 스위칭 회로(44)는 NMOS 트랜지스터(N1)의 드레인 전위와 NMOS 트랜지스터(N2)의 드레인 전위를 받아들이고, 셀 구성신호(CONFIG[1], /CONFIG[1])에 응답하여 두 전위 중 어느 하나를 제1 네거티브 전원전압(VSSA)으로서 링 발진기(60)에 공급하고, 다른 하나의 전위를 제2 네거티브 전원전압(VSSB)으로서 링 발진기(60)에 공급한다. 즉, 셀 구성신호들(CONFIG[0], /CONFIG[0], CONFIG[1], /CONFIG[1])은 제1 및 제2 포지티브 전원전압(VDDA, VDDB)과 제1 및 제2 네거티브 전원전압(VSSA, VSSB)을 결정할 수 있게 해준다.
본 발명의 일 실시예에 따르면, 각 PUF 셀(22)에 적합한 셀 구성신호들(CONFIG[0:1], /CONFIG[0:1])의 조합(즉, '셀 구성정보')을 결정하는 셀 구성정보 결정부가 마련될 수 있다. 도 1에 도시된 실시예에서, 셀 구성정보 결정부는 컨트롤러(90) 내에 탑재된 하드웨어, 소프트웨어, 또는 펌웨어일 수 있다. 이와 같은 실시예에서, 셀 구성정보 결정부는 셀 구성정보를 플래시 메모리(99)에 저장해두고, 셀 구성신호 공급부(14)가 이를 참조하여 셀 구성신호들을 PUF 셀 어레이(20)에 공급하도록 한다. 그렇지만, 다른 실시예에 있어서는, 셀 구성정보 결정부가 셀 구성신호 공급부(14)에 포함될 수 있다. 또 다른 실시예에 있어서는, 셀 구성정보를 PUF 블록(10)의 제조 과정에서 결정하여, 셀 구성신호 공급부(14) 또는 별도의 비휘발성 메모리 셀에 저장해둘 수 있다.
도 9는 셀 구성정보 결정부의 블록도이고, 도 10은 셀 구성정보 결정부에서의 셀 구성정보 생성 과정을 보여주는 흐름도이다.
도 9에 도시된 셀 구성정보 결정부는 링 발진기(60)에서 두 발진 경로의 주파수 차이를 극대화시킬 수 있게 해주는 바이어스 전압의 조합을 결정한다. 셀 구성정보 결정부는 제1 카운터(100), 제2 카운터(102), 가산기(104), 및 판단기(106)를 포함한다. 앞서 설명한 바와 같이, 게이트들(70-72d)로 구성되는 제1 발진 경로와 게이트들(80-82d)로 구성되는 제2 발진 경로 사이의 주파수 차이가 클수록 빠른 발진 경로가 느린 발진 경로를 따라잡는데 소요되는 사이클의 횟수가 작다. 제1 및 제2 카운터(100, 102)는 셀 구성신호들(CONFIG[0:1], /CONFIG[0:1])을 (0,0), (0,1), (1,0), (1,1)로 바꾸어가면서, 각 셀 구성신호 조합에 대하여 제1 출력신호(OUT1) 및 제2 출력신호(OUT2)에서 컬랩스 전에 몇 번의 발진이 있어났는지 카운트한다(제120단계). 가산기(104)는 제1 및 제2 카운터(100, 102)로부터의 카운트 값들(Count1, Count2)을 가산하여 총발진횟수를 결정한다. 판단기(106)는 컬랩스 전에 일어난 총발진횟수가 가장 작은 셀 구성신호 조합을 최적의 셀 구성정보로 결정한다(제122단계). 판단기(106)는 결정된 셀 구성정보를 플래시 메모리(99)에 저장할 수 있다(제124단계). 최적의 셀 구성정보를 설정하였을 때 PUF 회로의 출력신호 값이 키로 사용될 수 있다.
도 11은 셀 구성정보 결정부의 동작에 따른 링 발진기 바이어스 전압의 변화를 설명하기 위한 히스토그램이다.
제1 및 제2 포지티브 전원전압(VDDA, VDDB)과 제1 및 제2 네거티브 전원전압(VSSA, VSSB)은 PUF 셀에 따라 일정한 범위의 값을 가질 수 있다. 예를 들어, 도 11의 예에서, 제1 및 제2 포지티브 전원전압(VDDA, VDDB)은 0.63~0.80 볼트(V)의 범위에 있을 수 있고, 제1 및 제2 네거티브 전원전압(VSSA, VSSB)은 0.04~0.21 V의 범위 내에 있을 수 있다. 포지티브 전원전압(VDDA, VDDB)이 클수록 그리고 네거티브 전원전압(VSSA, VSSB)이 작을수록, 관련된 게이트의 스위칭 지연시간이 작게 된다. 이에 반하여, 포지티브 전원전압(VDDA, VDDB)이 작을수록 그리고 네거티브 전원전압(VSSA, VSSB)이 클수록, 관련된 게이트의 스위칭 지연시간이 커지게 된다. 일 실시예에 따르면, 바이어스 전압 생성기(40)의 제1 스위칭 회로(42)에 공급되는 셀 구성신호(CONFIG[0], /CONFIG[0])에 따라 포지티브 전원전압(VDDA, VDDB)이 선택된다. 그리고 제2 스위칭 회로(44)에 공급되는 셀 구성신호(CONFIG[1], /CONFIG[1])에 따라 네거티브 전원전압(VSSA, VSSB)이 선택된다.
발명자들은 40nm CMOS 공정으로 집적회로(IC)를 구현하고 성능을 시험하였다. 도 12는 본 발명에 의한 물리적 복제 방지 를 실험예로써 제작한 집적회로의 다이 현미경 사진이다. 도면에서 하측 부분은 집적회로 다이의 현미경 사진이고, 상측 부분은 참고용으로 표시된 레이아웃 설계도면이다. 제작된 IC는 4행, 8열로 배열된 총 128개의 PUF 셀을 구비하는 PUF 셀 어레이와, 컨트롤러 이외에, 테스트 회로를 구비한다.
도 13은 도 12의 실험예에서 실제로 측정된 파형도이다. 스타트 신호(START) 신호가 인가된 후 4.5 발진 주기만에 제2 출력신호(OUT2)가 컬랩스되고, 제1 및 제2 출력신호(OUT1, OUT2)가 각각 '하이' 및 '로우'로 안정화되는 것을 확인할 수 있다. 도 14는 본 발명에 의한 물리적 복제 방지 장치의 성능을 기존의 장치들과 비교하여 정리한 표이다. 최근에 제안된 다른 장치에 비하여 전체적으로 우수한 성능을 나타내며, 특히 비트에러율(BER)이 0.027%에 불과한 것을 확인할 수 있다.
이상에서 본 발명의 예시적인 실시예들을 설명하였지만, 본 발명은 이에 한정되지 않고 다양하게 변형될 수 있다.
예컨대, 다른 실시예에서 본 발명의 PUF 셀을 구비하는 반도체 장치는 키 생성 목적으로 사용함에 있어서 안정된 동작을 보조할 수 있도록 오류의 방지, 검출, 및 정정을 위한 오류정정부호화(ECC) 회로가 부가될 수 있다.
이상에서는 CMOS를 기준으로 예시적인 실시예를 설명하였지만, NMOS나 PMOS가 사용될 수도 있다.
그러므로, 본 발명이 속하는 기술분야의 숙련된 당업자는 아래 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (17)

  1. 물리적 복제 방지 기능(PUF)을 구현하는 반도체 장치로서,
    각각이 고유의 출력 값을 생성하도록 구성되는 복수의 PUF 셀들을 구비하고,
    상기 복수의 PUF 셀들 각각이
    서로 다른 레벨을 가지는 제1 및 제2 전원전압을 생성하는 바이어스 전압 생성기; 및
    직렬접속되어 있고 상기 제1 및 제2 전원전압에 엇갈려서 교대로 바이어스되는 복수의 인버터들을 포함하는 발진기;
    를 구비하는 반도체 장치.
  2. 청구항 1에 있어서,
    상기 복수의 PUF 셀들에 셀 구성신호를 공급하는 셀 구성신호 공급부;를 더 구비하며,
    상기 바이어스 전압 생성기는 상기 셀 구성신호를 토대로 상기 제1 및 제2 전원전압을 결정하는 반도체 장치.
  3. 청구항 2에 있어서, 상기 바이어스 전압 생성기가 트랜지스터 문턱전압 차이로 인하여 서로 다른 레벨을 가지는 제1 및 제2 전압을 생성하고, 상기 셀 구성신호를 토대로 제1 및 제2 전압 중 하나를 상기 제1 전원전압으로 출력하고 다른 하나를 상기 제2 전원전압으로 출력하는 반도체 장치.
  4. 청구항 2에 있어서, 상기 발진기가
    각각이 직렬접속된 소정수의 인버터들을 포함하고 서로 다른 주파수의 신호를 발진하며 루프 형태로 연결되어 있는 두 개의 발진 경로를 구비하는 반도체 장치.
  5. 청구항 4에 있어서, 상기 두 개의 발진 경로 각각은
    소정의 스타트 신호를 받아들여 발진 기능을 활성화시키는 인에이블 게이트; 및
    상기 인에이블 게이트의 출력단자로부터 직렬접속되어 있는 상기 소정수의 인버터들;을 구비하는 반도체 장치.
  6. 청구항 5에 있어서, 상기 인에이블 게이트는 제1 입력단자를 통해 상기 스타트 신호를 받아들이고 제2 입력단자를 통해 상기 두 개의 발진 경로 중에서 다른 발진 경로의 출력을 받아들이는 낸드 게이트인 반도체 장치.
  7. 청구항 6에 있어서, 상기 두 개의 발진 경로의 낸드 게이트에 입력되는 상기 스타트 신호가 서로 동일한 반도체 장치.
  8. 청구항 4에 있어서,
    상기 복수의 PUF 셀들 각각에 대한 상기 셀 구성신호에 관한 정보를 발생하는 셀 구성정보 결정부;
    를 더 구비하는 반도체 장치.
  9. 청구항 8에 있어서, 상기 셀 구성정보 결정부는
    어느 한 셀에서 일정 시간동안 상기 복수의 발진 경로 중에서 제1 발진 경로에 의한 발진 사이클 수를 카운트하는 제1 카운터;
    상기 셀에서 상기 일정 시간동안 상기 복수의 발진 경로 중에서 제2 발진 경로에 의한 발진 사이클 수를 카운트하는 제2 카운터; 및
    상기 제1 카운터 및 상기 제2 카운터의 카운트 값들을 토대로 상기 셀에 대한 상기 셀 구성신호에 관한 정보를 결정하는 판단기;
    를 구비하는 반도체 장치.
  10. 청구항 9에 있어서, 상기 제1 카운터와 상기 제2 카운터는 상기 제1 발진 경로와 상기 제2 발진 경로의 발진 기능이 컬랩스될 때까지 각각의 발진 사이클 수를 카운트하는 반도체 장치.
  11. 청구항 2에 있어서,
    상기 제1 전원전압이 제1 포지티브 전원전압과 제1 네거티브 전원전압을 포함하고, 상기 제2 전원전압이 제2 포지티브 전원전압과 제2 네거티브 전원전압을 포함하며,
    상기 제1 및 제2 포지티브 전원전압이 서로 다른 레벨을 가지고, 상기 제1 및 제2 네거티브 전원전압이 서로 다른 레벨을 가지며,
    상기 제1 및 제2 포지티브 전원전압이 상기 복수의 인버터들에 엇갈려서 교대로 바이어스되고, 상기 제1 및 제2 네거티브 전원전압이 상기 복수의 인버터들에 엇갈려서 교대로 바이어스되되, 상기 제1 포지티브 전원전압이 인가되는 인버터들에는 상기 제2 네거티브 전원전압이 인가되고, 상기 제2 포지티브 전원전압이 인가되는 인버터들에는 상기 제1 네거티브 전원전압이 인가되는 반도체 장치.
  12. 청구항 11에 있어서, 상기 바이어스 전압 생성기가
    상기 셀 구성신호를 토대로, 서로 다른 레벨을 가지는 제1 및 제2 포지티브 전압 중에서 하나를 제1 포지티브 전원전압으로 출력하고 다른 하나를 제2 포지티브 전원전압으로 출력하는 제1 스위칭 회로; 및
    상기 셀 구성신호를 토대로, 서로 다른 레벨을 가지는 제1 및 제2 네거티브 전압 중에서 하나를 제1 네거티브 전원전압으로 출력하고 다른 하나를 제2 네거티브 전원전압으로 출력하는 제2 스위칭 회로;를 구비하는 반도체 장치.
  13. 청구항 4에 있어서, 상기 복수의 PUF 셀들 각각은 상기 복수의 발진 경로 중에서 어느 한 발진 경로의 출력이 컬랩스된 이후에 상기 복수의 발진 경로의 출력들 중에서 하나를 상기 출력 값으로 출력하는 반도체 장치.
  14. 각각이 복수의 스테이지들을 구비하는 두 발진 회로들을 구비하되, 상기 두 발진 회로들이 주파수가 서로 다른 발진 신호들을 발생하게 구성되는 발진기; 및
    상기 발진 신호들의 주파수 차이를 증가시킬 수 있도록 상기 복수의 스테이지들에 엇갈려서 공급되는 복수의 바이어스 전압들을 생성하는 바이어스 전압 생성기;
    를 구비하는 PUFF 셀 장치.
  15. 다수의 스테이지들을 구비하며 주파수가 서로 다른 발진 신호들을 발생하는 발진기와, 상기 발진 신호들의 주파수 차이를 증가시킬 수 있도록 상기 다수의 스테이지들에 엇갈려서 공급되는 복수의 바이어스 전압들을 생성하는 바이어스 전압 생성기를 각각이 구비하는 다수의 PUFF 셀들을 포함하는 PUFF 셀 어레이; 및
    상기 다수의 PUFF 셀들 중 출력 값이 필요한 하나 이상의 셀을 선택하기 위하여 셀 선택신호를 공급하는 셀 선택신호 공급부;
    를 구비하는 반도체 장치.
  16. 청구항 15에 있어서,
    상기 다수의 PUF 셀들에 셀 구성신호를 공급하는 셀 구성신호 공급부;를 더 구비하며,
    상기 바이어스 전압 생성기는 상기 셀 구성신호를 토대로 상기 복수의 바이어스 전압들을 결정하는 반도체 장치.
  17. 다수의 PUFF 셀들을 포함하는 PUFF 셀 어레이;
    상기 다수의 PUFF 셀들 각각에 대하여 셀 구성신호를 공급하는 셀 구성신호 공급부; 및
    상기 다수의 PUFF 셀들 중 출력 값이 필요한 복수의 셀들을 선택하기 위하여 셀 선택신호를 공급하는 셀 선택신호 공급부;를 구비하고,
    상기 다수의 PUFF 셀들 각각이
    복수의 스테이지들을 구비하는 발진 회로들을 구비하여 소자들의 물리적 특성 차이를 토대로 주파수가 서로 다른 발진 신호들을 발생하며, 발진이 컬랩스되어 안정화된 상태에서 1 비트의 출력 값을 출력하는 발진기; 및
    상기 발진 신호들의 주파수 차이를 증가시킬 수 있도록 상기 셀 구성신호를 토대로 상기 복수의 스테이지들에 엇갈려서 공급되는 복수의 바이어스 전압들을 생성하는 바이어스 전압 생성기;를 구비하여, 상기 복수의 셀들로부터 출력되는 출력 값들의 조합을 보안용 키로써 출력하는 보안용 키 생성 장치.
KR1020210104494A 2021-08-09 2021-08-09 물리적 복제 방지 기능을 구현하는 반도체 장치 KR102650331B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210104494A KR102650331B1 (ko) 2021-08-09 2021-08-09 물리적 복제 방지 기능을 구현하는 반도체 장치
US17/736,986 US20230044357A1 (en) 2021-08-09 2022-05-04 Semiconductor device implementing physically unclonable function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210104494A KR102650331B1 (ko) 2021-08-09 2021-08-09 물리적 복제 방지 기능을 구현하는 반도체 장치

Publications (2)

Publication Number Publication Date
KR20230022566A KR20230022566A (ko) 2023-02-16
KR102650331B1 true KR102650331B1 (ko) 2024-03-21

Family

ID=85152030

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210104494A KR102650331B1 (ko) 2021-08-09 2021-08-09 물리적 복제 방지 기능을 구현하는 반도체 장치

Country Status (2)

Country Link
US (1) US20230044357A1 (ko)
KR (1) KR102650331B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090177725A1 (en) 2008-01-08 2009-07-09 Kabushiki Kaisha Toshiba Random number generation device

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US9195434B2 (en) * 2014-01-14 2015-11-24 Nvidia Corporation Power supply for ring-oscillator based true random number generator and method of generating true random numbers
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
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电路
US10880102B2 (en) * 2018-09-21 2020-12-29 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for logic cell-based PUF generators
US20190305971A1 (en) * 2018-04-03 2019-10-03 Qualcomm Incorporated Physically unclonable function (puf) memory employing static random access memory (sram) bit cells enhanced by stress for increased puf output reproducibility
US10164640B1 (en) * 2018-06-08 2018-12-25 Taiwan Semiconductor Manufacturing Co., Ltd. Method and device to speed-up leakage based PUF generators under extreme operation conditions
US10958453B2 (en) * 2018-07-03 2021-03-23 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for noise injection for PUF generator characterization
US10812084B2 (en) * 2018-11-06 2020-10-20 The Regents Of The University Of California Reconfigurable physically unclonable functions based on analog non-volatile memories
KR102600349B1 (ko) * 2018-11-16 2023-11-09 한국전자통신연구원 링 발진기 구조 기반의 비밀 정보 생성 장치 및 방법
US10574469B1 (en) * 2019-04-10 2020-02-25 Nxp Usa, Inc. Physically unclonable function and method for generating a digital code
KR20210053029A (ko) * 2019-11-01 2021-05-11 삼성전자주식회사 물리적 복제 방지 기능 셀들을 포함하는 보안 장치, 보안 장치의 동작 방법 및 물리적 복제 방지 기능 셀 장치의 동작 방법
US11528151B2 (en) * 2020-04-01 2022-12-13 Taiwan Semiconductor Manufacturing Company, Ltd. Physically unclonable function (PUF) generation
US11734459B2 (en) * 2020-08-05 2023-08-22 Analog Devices International Unlimited Company Monitoring a physical unclonable function

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090177725A1 (en) 2008-01-08 2009-07-09 Kabushiki Kaisha Toshiba Random number generation device

Also Published As

Publication number Publication date
KR20230022566A (ko) 2023-02-16
US20230044357A1 (en) 2023-02-09

Similar Documents

Publication Publication Date Title
US7702705B2 (en) Random number generation circuit
KR100965766B1 (ko) 링 오실레이터와 이를 이용한 멀티 위상 클럭 보정 회로
KR101848042B1 (ko) 클록 게이티드 회로 및 그것을 포함하는 디지털 시스템
US20170338825A1 (en) Delay locked loop including a delay code generator
US7772883B2 (en) Level shifter
US7795920B2 (en) Semiconductor integrated circuit
US6798249B2 (en) Circuit for asynchronous reset in current mode logic circuits
US7157930B2 (en) Scan flip flop, semiconductor device, and production method of semiconductor device
US7183810B2 (en) Circuit and method for detecting phase
JP2009296548A (ja) 半導体集積回路装置
CN112017721A (zh) 一种基于漏电流的弱物理不可克隆函数电路
KR102650331B1 (ko) 물리적 복제 방지 기능을 구현하는 반도체 장치
JP2008172779A (ja) 高速動作のためのフリップフロップ
US5812000A (en) Pulse signal shaper in a semiconductor integrated circuit
US7116152B2 (en) Digital circuit tolerant of race condition problem
TW202008717A (zh) 資料閂鎖電路及其脈波信號產生器
JP5707964B2 (ja) ラッチ回路およびデータ保持回路
KR100729918B1 (ko) 펄스 수를 선택적으로 조절하는 펄스 발생기와 이를포함하는 반도체 메모리 장치의 내부 전압 트리밍 제어회로 및 내부 전압 트리밍 제어 방법
US7872516B2 (en) Precision pulse generator
JP4713130B2 (ja) スキャン付きフリップフロップ、半導体装置及び半導体装置の製造方法
CN114567292B (zh) 静态锁存器以及包括静态锁存器的处理器和计算装置
US7400542B2 (en) Control selection circuit and method for a semiconductor device
JP2005210683A5 (ko)
Gupta et al. Performance comparison of SR and nikolic sense amplifier based energy resumption flip-flops at 90nm CMOS technology
US20070188208A1 (en) Semiconductor integrated circuit

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant