KR20210158256A - 물리적 복제방지 기능을 위한 집적 회로 및 이의 동작 방법 - Google Patents

물리적 복제방지 기능을 위한 집적 회로 및 이의 동작 방법 Download PDF

Info

Publication number
KR20210158256A
KR20210158256A KR1020200076760A KR20200076760A KR20210158256A KR 20210158256 A KR20210158256 A KR 20210158256A KR 1020200076760 A KR1020200076760 A KR 1020200076760A KR 20200076760 A KR20200076760 A KR 20200076760A KR 20210158256 A KR20210158256 A KR 20210158256A
Authority
KR
South Korea
Prior art keywords
puf
puf cell
controller
cell data
data pairs
Prior art date
Application number
KR1020200076760A
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 KR1020200076760A priority Critical patent/KR20210158256A/ko
Priority to DE102021105189.4A priority patent/DE102021105189A1/de
Priority to US17/199,944 priority patent/US11849054B2/en
Priority to CN202110685505.6A priority patent/CN113836599A/zh
Publication of KR20210158256A publication Critical patent/KR20210158256A/ko
Priority to US18/512,212 priority patent/US20240089125A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • 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
    • 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)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

본 개시의 예시적 실시 예에 따른 물리적 복제방지 기능(Physically Unclonable Function; PUF)을 위한 집적 회로는, PUF 셀 특성과 관련하여 각각 상호 소정의 부정합(mismatch) 거리를 갖는 제1 PUF 셀 그룹과 제2 PUF 셀 그룹간 제1 맵핑 관계 및 제3 PUF 셀 그룹과 제4 PUF 셀 그룹간 제2 맵핑 관계를 나타내는 어드레스 테이블을 참조하여 제어 신호를 생성하도록 구성된 컨트롤러 및 상기 제어 신호에 응답하여 복수의 PUF 셀 데이터 쌍들을 상기 컨트롤러에 제공하도록 구성된 PUF 블록을 포함하고, 상기 컨트롤러는, 상기 복수의 PUF 셀 데이터 쌍들 각각을 기준 데이터 쌍들과 비교하여 인증 키(authentication key)를 생성하는 것을 특징으로 한다.

Description

물리적 복제방지 기능을 위한 집적 회로 및 이의 동작 방법{INTEGRATED CIRCUIT FOR CHALLENGE-RESPONSE PHYSICALLY UNCLONABLE FUNCTION AND OPEARATION METHOD THEREOF}
본 개시의 기술적 사상은 보안 기술에 관한 것으로서, 더욱 상세하게는 물리적 복제 방지 기능 회로(Physically Unclonable Function circuit)에 관한 것이다.
최근 유무선 통신 기술 및 스마트 디바이스 관련 기술이 급속도로 발전함에 따라, 이를 안전하게 이용할 수 있는 보안 시스템에 대한 구축 요구 역시 증가하고 있다. 이에 따라, 물리적 복제방지 기능(Physical Unclonable Function, 이하 'PUF'로 지칭함)을 갖는 보안 기술이 주목을 받고 있다. PUF 셀은 반도체 제조 공정에서 발생하는 공정 편차를 이용하여 반도체 칩 내부에 구현된, 예측하기 어려운 랜덤한 값을 생성하는 셀을 말한다. PUF 셀을 이용하여 키(key)를 생성할 경우 보안 장치에 저장되는 인증 키와 같은 중요 키의 복제를 원천적으로 방지할 수 있다.
한편, 복수의 PUF 셀들은 PUF 셀 특성의 변동으로 인해 높은 확률로 키 값이 변동될 수 있는 약한(weak) PUF 셀들과 낮은 확률로 키 값이 변동될 수 있는 강한(strong) PUF 셀들을 포함할 수 있다. 복수의 PUF 셀들을 이용하여 생성된 인증 키의 신뢰성을 확보하기 위해 약한 PUF 셀들을 선별하여 키를 생성하는 데에 배제할 수 있다. 다만, 이 때에, 약한 PUF 셀들을 선별하기 위해서는 PUF 셀들의 특성에 기인한 값들이 세밀하게 구분되도록 데이터화 해야하는 바, ADC(Analog-Digital Converter)와 같은 복잡한 로직이 추가적으로 요구되었다. ADC의 존재는 PUF 기능을 지원하는 집적 회로 설계에 비용, 면적 측면에서 부담이 되어 이를 해결하기 위한 솔루션들이 필요한 실정이다.
본 개시의 기술적 사상이 해결하려는 과제는 복잡한 로직없이 개선된 비트 에러율 및 신뢰성이 보장된 PUF를 지원하기 위한 집적 회로 및 이의 동작 방법을 제공하는 데에 있다.
본 개시의 예시적 실시 예에 따른 물리적 복제방지 기능(Physically Unclonable Function; PUF)을 위한 집적 회로는, PUF 셀 특성과 관련하여 각각 상호 소정의 부정합(mismatch) 거리를 갖는 제1 PUF 셀 그룹과 제2 PUF 셀 그룹간 제1 맵핑 관계 및 제3 PUF 셀 그룹과 제4 PUF 셀 그룹간 제2 맵핑 관계를 나타내는 어드레스 테이블을 참조하여 제어 신호를 생성하도록 구성된 컨트롤러 및 상기 제어 신호에 응답하여 복수의 PUF 셀 데이터 쌍들을 상기 컨트롤러에 제공하도록 구성된 PUF 블록을 포함하고, 상기 컨트롤러는, 상기 복수의 PUF 셀 데이터 쌍들 각각을 기준 데이터 쌍들과 비교하여 인증 키(authentication key)를 생성하는 것을 특징으로 한다.
본 개시의 예시적 실시 예에 따른 물리적 복제방지(Physically Unclonable Function; PUF) 기능을 위한 집적 회로는, 복수의 PUF 셀들을 포함하도록 구성된 PUF 블록 및 PUF 셀 특성과 관련하여 상호 소정의 부정합 거리를 갖는 제1 PUF 셀 그룹과 제2 PUF 셀 그룹간 제1 맵핑 관계 또는 제3 PUF 셀 그룹과 제4 PUF 셀 그룹간 제2 맵핑 관계에 따른 복수의 PUF 셀 데이터 쌍들을 상기 PUF 블록으로부터 수신하는 컨트롤러를 포함하고, 상기 컨트롤러는, 상기 복수의 PUF 셀 데이터 쌍들 각각을 기준 데이터 쌍들과 비교하여 인증 키를 구성하는 복수의 요소 키들을 생성하는 것을 특징으로 한다.
본 개시의 예시적 실시 예에 따른 물리적 복제방지 기능(Physically Unclonable Function; PUF)을 지원하기 위해 컨트롤러 및 PUF 블록이 구비된 집적 회로의 동작 방법은, 상기 컨트롤러에 인증 키 요청을 제공하는 단계, 상기 컨트롤러는, 상기 인증 키 요청에 응답하여 복수의 제1 PUF 셀들 및 이와 쌍을 이루는 복수의 제2 PUF 셀들에 대응하는 복수의 PUF 셀 데이터 쌍들을 리드하기 위한 제어 신호를 상기 PUF 블록에 제공하는 단계, 상기 PUF 블록은, 상기 제어 신호에 응답하여 상기 복수의 PUF 셀 데이터 쌍들을 상기 컨트롤러에 제공하는 단계, 상기 컨트롤러는, 상기 복수의 PUF 셀 데이터 쌍들 각각을 기준 데이터 쌍들과 비교하는 단계 및 상기 컨트롤러는, 상기 비교 결과를 기반으로 상기 복수의 PUF 셀 데이터 쌍들에 대응하는 복수의 요소 키들로 구성된 인증 키를 생성하는 단계를 포함한다.
본 개시의 예시적 실시예에 따른 집적 회로는 PUF 셀 그룹들 간의 맵핑 관계를 나타내는 어드레스 테이블을 참조하여 PUF 셀 데이터 쌍들을 리드하고, 리드된 PUF 셀 데이터 쌍들을 이용하여 개선된 비트 에러율 및 신뢰성이 보장된 인증 키를 생성할 수 있는 효과가 있다.
본 개시의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 집적 회로를 나타내는 블록도이다.
도 2 내지 도 4는 도 1의 컨트롤러의 동작의 예시를 설명하기 위한 도면이다.
도 5는 도 1의 집적 회로의 동작 방법을 설명하기 위한 순서도이다.
도 6은 도 5의 단계 S120 및 단계 S140의 구체적인 실시예를 설명하기 위한 순서도이다.
도 7은 도 1의 집적 회로의 구체적인 요소 키 생성 방법을 설명하기 위한 순서도이다.
도 8a 및 도 8b는 맵핑된 PUF 셀 그룹들의 PUF 셀들이 모두 올바르지 않은 PUF 셀 데이터들을 출력하였을 때를 설명하기 위한 그래프이다.
도 9 내지 도 11은 도 8a 및 도 8b의 경우에서 도 1의 집적 회로의 인증 키를 생성하는 방법을 설명하기 위한 순서도이다.
도 12는 본 개시의 예시적 실시예에 따라 재시도 횟수를 관리하기 위한 어드레스 테이블을 나타내는 도면이다.
도 13은 도 1의 집적 회로의 설정 단계(또는, 업데이트 단계)에서의 동작을 설명하기 위한 순서도이다.
도 14a 및 도 14b는 도 1의 집적 회로의 설정 단계(또는, 업데이트 단계)에서의 동작을 설명하기 위한 도면이다.
도 15는 본 개시의 실시예에 따른 전자 장치를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예들에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시예에 따른 집적 회로(10)를 나타내는 블록도이고, 도 2 내지 도 4는 도 1의 컨트롤러(100)의 동작의 예시를 설명하기 위한 도면이다. 집적 회로(10)는 PUF를 지원하기 위한 집적 회로 또는 장치로서 지칭될 수 있다. 일부 실시예들에서, 집적 회로(10)는 반도체 공정을 통해 제조될 수 있고, 집적 회로(10)의 구성요소들은, 단일 패키지에 패키징되거나, 2이상의 패키지들에 각각 패키징될 수 있다. 또한, 집적 회로(10)는 데이터의 암호화 또는 보안 인증이 수행되는 다양한 종류의 전자 장치에 탑재될 수 있다. 집적 회로(10)는 외부 장치, 예컨대, 외부 호스트(또는, 외부 프로세서)로부터의 인증 키 요청 신호(REQ)에 응답하여, 인증 키(KEY)를 생성하고, 이를 외부 장치에 제공할 수 있다. 예컨대, 외부 장치는 암호화 모듈 또는 인증 모듈 등의 보안 장치일 수 있다. 도 1 내지 도 5에 도시된 내용은 본 개시의 사상을 설명하기 위한 예시적인 실시예들에 불과한 바, 이에 국한되지 않음은 분명하다.
도 1을 참조하면, 집적 회로(10)는 컨트롤러(100), PUF 블록(200) 및 비휘발성 메모리(300)를 포함할 수 있다. 컨트롤러(100)는 외부 호스트로부터 수신된 인증 키 요청 신호(REQ)에 응답하여 PUF 블록(200)을 이용해 인증 키(KEY)를 생성할 수 있다.
컨트롤러(200)는 컨트롤 로직(110), 맵핑 레지스터(120) 및 키 생성기(130)를 포함할 수 있다. PUF 블록(200)은 복수의 PUF 셀들이 구비된 PUF 셀 어레이(210)를 포함할 수 있다. PUF 셀 어레이(210)의 PUF 셀은 PUF에 따라 고유한 값을 갖는 고유 신호를 생성할 수 있다. PUF는 하드웨어의 본질적인(intrinsic) 특성에 기초하여 하드웨어에 대응하는 고유한(unique) 값을 제공하는 것을 지칭할 수 있다. 예를 들면, 반도체 칩들과 같은 복수의 하드웨어들이 동일한 공정에 의해서 제조될지라도, 복수의 하드웨어들 각각은 물리적으로 완전히 일치하지 아니할 수 있고, 복수의 하드웨어들에서 미약한 변동(variation)들이 발생할 수 있다. 이러한 변동들에 기초하여, 하드웨어의 고유한 값이 추출될 수 있고, 추출된 값은 보안이 필요한 어플리케이션, 예컨대 보안 통신, 보안 데이터 처리, 사용자 식별, 펌웨어(firmware) 업데이트 등에 사용될 수 있다. 일부 실시예에서 PUF 셀 어레이(210)의 PUF 셀은 고유한 값의 k(단, k는 2 이상의 정수)비트 데이터를 생성하는 임의의 구조를 가질 수 있다. PUF 셀은 예시로서, SRAM(Static Random Access Memory) 셀에 저장된 값에 기초한 SRAM 유형 PUF 구조를 가질 수도 있고, 주파수 변동에 기초한 링 오실레이터 구조를 가질 수도 있고, 누설 전류 등에 기초한 누설 기반 PUF 구조를 가질 수도 있으며, 신호의 경로가 임의로 결정되는 아비터(arbiter) PUF 구조 등을 가질 수도 있다. 더 나아가, 저항 소자들로 구성된 PUF 구조를 가질 수도 있다. 이하에서는, PUF 셀은 고유한 문턱 전압과 관련된 특성을 갖는 MOS(Metal Oxide Semiconductor) 트랜지스터 구조로 된 것을 중심으로 서술하나, 이는 예시적인 실시예에 불과한 바, PUF를 지원하기 위해 고유한 특성을 가질 수 있는 다양한 구조가 PUF 셀에 적용될 수 있다.
이하, 컨트롤러(100)에 포함된 컨트롤 로직(110), 키 생성기(130)의 동작은 컨트롤러(100)의 동작으로 혼용될 수 있으며, 컨트롤러(100)는 하드웨어로 구현되거나, 일련의 명령어들(또는, 소프트웨어)을 실행하는 임의의 프로세싱 유닛들을 포함하도록 구현될 수 있다. 일 예로, 컨트롤러(100)는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application-Specific Integrated Circuit) 등으로 구현될 수 있다.
컨트롤 로직(110)은 인증 키 요청 신호(REQ)에 응답하여 어드레스 테이블을 참조하여 인증 키(KEY) 생성에 필요한 복수의 PUF 셀 데이터 쌍들(PUF_DP)을 리드하기 위한 제어 신호(CS)를 PUF 블록(200)에 제공할 수 있다. 제어 신호(CS)는 PUF 셀 어레이(210)의 복수의 PUF 셀들 중 원하는 PUF 셀들로부터 PUF 셀 데이터 쌍(PUF_DP)이 출력되도록 필요한 신호들을 포함할 수 있다. PUF 셀 어레이(210)의 복수의 PUF 셀들은 문턱 전압 산포를 형성할 수 있으며, 문턱 전압 크기에 따라 미리 그룹핑될 수 있다.
도 2를 더 참조하면, 복수의 PUF 셀들은 제1 기준 포인트(p1)에서 제2 기준 포인트(p2) 사이의 문턱 전압을 갖는 제1 PUF 셀 그룹(Group_1), 제2 기준 포인트(p2)에서 제3 기준 포인트(p3) 사이의 문턱 전압을 갖는 제2 PUF 셀 그룹(Group_2), 제3 기준 포인트(p3)에서 제4 기준 포인트(p4) 사이의 문턱 전압을 갖는 제3 PUF 셀 그룹(Group_3), 제4 기준 포인트(p4)에서 제5 기준 포인트(p5) 사이의 문턱 전압을 갖는 제4 PUF 셀 그룹(Group_4)으로 나뉠 수 있다. 위와 같은 그룹핑은 집적 회로(10)가 인증 키(KEY)를 생성하기 전의 설정 단계에서 컨트롤러(100)에 의해 미리 수행될 수 있다. 컨트롤러(100)는 설정 단계에서 제1 내지 제5 기준 포인트(p1~p5)를 결정할 수 있으며, 제1 내지 제5 기준 포인트(p1~p5)는 제1 내지 제4 PUF 셀 그룹(Group_1~Group_4) 각각에 속한 PUF 셀 개수가 동일 또는 유사하도록 결정될 수 있다.
예시적 실시예로, PUF 블록(200)은 복수의 PUF 셀들로부터 생성된 고유한 값의 고유 신호들이 2비트를 갖는 PUF 셀 데이터들로서 컨트롤러(100)에 제공될 수 있도록 구성될 수 있다. 일 예로, PUF 블록(200)은 PUF 셀로부터 생성된 고유 신호를 제3 기준 포인트(p3)와 비교하고, 후속하여 제2 또는 제4 기준 포인트(p2, p4)와 비교함으로써 2비트의 PUF 셀 데이터를 출력할 수 있다. 이하에서는, 편의상 PUF 셀이 PUF 셀 데이터를 출력하는 것으로도 서술될 수 있다.
예를 들어, 제1 PUF 셀 그룹(Group_1)에 속한 PUF 셀들은 '00'의 PUF 셀 데이터를 출력하고, 제2 PUF 셀 그룹(Group_2)에 속한 PUF 셀들은 '01'의 PUF 셀 데이터를 출력하고, 제3 PUF 셀 그룹(Group_3)에 속한 PUF 셀들은 '10'의 PUF 셀 데이터를 출력하며, 제4 PUF 셀 그룹(Group_4)에 속한 PUF 셀들은 '11'의 PUF 셀 데이터를 출력할 수 있다.
도 3을 더 참조하면, 예시적 실시 예로, PUF 셀 어레이(210)는 256개의 PUF 셀들(C1~C256)을 포함할 수 있다. PUF 셀들(C1~C256)은 셀 특성(예를 들면, 문턱 전압)의 고유 값들에 기초하여 제1 내지 제4 PUF 셀 그룹(Group_1~Group_4)으로 나뉠 수 있다. 제1 내지 제4 PUF 셀 그룹(Group_1~Group_4) 각각에 포함된 PUF 셀 개수는 64개로 동일할 수 있다. 예시적 실시 예로, 제1 PUF 셀 그룹(Group_1)은 제3 PUF 셀 그룹(Group_2)과 맵핑되어 쌍을 이룰 수 있고, 제2 PUF 셀 그룹(Group_2)은 제4 PUF 셀 그룹(Group_4)과 맵핑되어 쌍을 이룰 수 있다. 구체적으로, 제1 PUF 셀 그룹(Group_1)은 제3 PUF 셀 그룹(Group_3)과 소정의 부정합 거리를 가질 수 있으며, 제2 PUF 셀 그룹(Group_2)은 제4 PUF 셀 그룹(Group_4)과 소정의 부정합 거리를 가질 수 있다. 부정합 거리는, PUF 셀들이 물리적으로 완전히 일치하지 아니함에 따라 발생될 수 있는 것으로 서로 인접하지 않은 PUF 셀 그룹들이 상호 쌍을 이룬 결과를 설명하기 위해 정의된 용어일 수 있다.
한편, 일부 실시예에 있어서, 제1 및 제4 PUF 셀 그룹(Group_1, Group_4)은 강한(Strong) PUF 셀들을 포함할 수 있으며, 제2 및 제3 PUF 셀 그룹(Group_2, Group_3)은 약한(weak) PUF 셀들을 포함할 수 있다. 강한 PUF 셀은 낮은 확률로 본인이 속한 PUF 셀 그룹에 인접한 PUF 셀 그룹에 대응하는 PUF 셀 데이터를 출력하는 PUF 셀을 의미하며, 약한 PUF 셀은 높은 확률로 본인이 속한 PUF 셀 그룹에 인접한 PUF 셀 그룹에 대응하는 PUF 셀 데이터를 출력하는 PUF 셀을 의미할 수 있다.
이에 따라, 제1 및 제4 PUF 셀 그룹(Group_1, Group_4)의 PUF 셀들로부터 출력된 PUF 셀 데이터들은, 각각 쌍을 이루는 제2 및 제3 PUF 셀 그룹(Group_2, Group_3)의 PUF 셀들로부터 출력된 PUF 셀 데이터들이 올바른 값을 갖는지 확인할 수 있는 기준이 될 수 있다. 다만, 제1 및 제4 PUF 셀 그룹(Group_1, Group_4)의 PUF 셀들로부터 출력된 PUF 셀 데이터들도 올바르지 않은(또는, 에러를 포함하는) 값을 가질 수 있으며, 이런 경우에의 인증 키 생성 방법은 도 8a 내지 도 10에서 서술한다.
도 4를 더 참조하면, 어드레스 테이블(TB_1)은 도 3의 PUF 셀 그룹들(Group_1~Group_4)간의 맵핑 관계에 부합하도록 제1 PUF 셀 그룹(Group_1)의 PUF 셀들의 어드레스들과 제3 PUF 셀 그룹(Group_3)의 PUF 셀들의 어드레스들이 맵핑된 정보 및, 제2 PUF 셀 그룹(Group_3)의 PUF 셀들의 어드레스들과 제4 PUF 셀 그룹(Group_4)의 PUF 셀들이 어드레스들이 맵핑된 정보를 포함할 수 있다. 예를 들어, 제1 PUF 셀(C10)은 제79 PUF 셀(C79)과 쌍을 이루는 때에, 어드레스 테이블(TB_1) 상에서 제1 PUF 셀(C10)의 어드레스(C1_ADD)는 제79 PUF 셀(C79)의 어드레스(C79_ADD)와 맵핑되고, 제256 PUF 셀(C256)은 제67 셀(C67)과 쌍을 이루는 때에, 어드레스 테이블(TB_1) 상에서 제256 PUF 셀(C256)의 어드레스(C256_ADD)는 제67 PUF 셀(C67)의 어드레스(C67_ADD)와 맵핑될 수 있다. 예시적 실시예로, 컨트롤러(100)는 설정 단계에서 위와 같은 어드레스 테이블(TB_1)을 미리 생성하여 비휘발성 메모리(300)에 저장할 수 있다. 일부 실시예에서, 어드레스 테이블(TB_1)은 인증 키(KEY)를 생성하는 인증 단계에서 비휘발성 메모리(300)로부터 맵핑 레지스터(120)에 복사될 수 있다.
다시 도 1로 돌아오면, 컨트롤 로직(110)은 인증 키 요청 신호(REQ)에 포함된 적어도 하나의 어드레스에 대응하는 PUF 셀과 어드레스 테이블(TB_1)을 참조하여 해당 PUF 셀과 쌍을 이루는 PUF 셀로부터 출력되는 PUF 셀 데이터 쌍(PUF_DP)을 리드하기 위한 제어 신호(CS)를 PUF 블록(200)에 제공할 수 있다. 예를 들어, 컨트롤 로직(110)은 제1 PUF 셀(C1)의 어드레스(C1_ADD)가 포함된 인증 키 요청 신호(REQ)를 수신한 때에, 어드레스 테이블(TB_1)을 참조하여 제1 PUF 셀(C1)과 쌍을 이루는 제79 PUF 셀(C79)의 어드레스(C79_ADD)를 확인한 후, 제1 PUF 셀(C1) 및 제79 셀(C79)에 대응하는 PUF 셀 데이터 쌍(PUF_DP)을 리드하기 위한 제어 신호(CS)를 PUF 블록(200)에 제공할 수 있다.
예시적 실시예로, 키 생성기(130)는 PUF 블록(200)으로부터 수신된 복수의 PUF 셀 데이터 쌍들(PUF_DP) 각각을 기준 데이터 쌍들과 비교하여 인증 키(KEY)를 생성할 수 있다. 인증 키(KEY)는 복수의 요소 키(element key)들로 구성될 수 있으며, 요소 키는 하나의 PUF 셀 데이터 쌍을 이용하여 생성되는 키로 정의될 수 있다. 예를 들어, 키 생성기(130)는 복수의 PUF 셀 데이터 쌍들(PUF_DP) 중 제n PUF 셀 데이터 쌍에 있어서, 제n PUF 셀 데이터 쌍과 매칭된 기준 데이터 쌍에 부합하는 값을 갖는 제n 요소 키를 생성할 수 있다. 이하, 매칭은 데이터 쌍들이 상호 일치하는 것을 나타내는 의미일 수 있다. 한편, 키 생성기(130)는 제n PUF 셀 데이터 쌍이 기준 데이터 쌍들 중 어느 하나와도 매칭되지 않을 때에, 매칭 결과 신호(RS)를 컨트롤 로직(110)에 제공하고, 컨트롤 로직(110)은 매칭 결과 신호(RS)에 응답하여 제n PUF 셀 데이터 쌍에 대응하는 제n 요소 키의 생성을 재시도할 수 있다. 즉, 제n PUF 셀 데이터 쌍은 PUF 블록(200)으로부터 올바르지 않는 값을 갖도록 출력되었기 때문에, 제n PUF 셀 데이터 쌍이 PUF 블록(200)으로부터 올바른 값을 가진 상태로 출력될 수 있도록 컨트롤 로직(110)은 제어 신호(CS)를 다시 PUF 블록(200)에 제공할 수 있다. 키 생성기(130)는 다시 리드된 제n 셀 데이터 쌍을 기준 데이터 쌍들과 비교하여 제n 요소 키를 생성할 수 있다. 일부 실시예에 있어서, 요소 키 생성의 재시도 횟수는 미리 설정될 수 있으며, 재시도 횟수를 초과한 때에 컨트롤 로직(110)은 해당 PUF 셀 데이터 쌍에 대응하는 PUF 셀들(이하, 이용 불가 PUF 셀들로 지칭)은 인증 키(KEY)를 생성하는데에 이용되지 못하도록 어드레스 테이블(TB_1)을 업데이트할 수 있다. 더 나아가, 컨트롤 로직(110)은 이용 불가 PUF 셀들을 알리는 알림 신호를 생성하여 외부 호스트에 제공할 수 있다.
예시적 실시예로, 컨트롤러(100)는 재시도 횟수를 설정 단계에서 결정할 수 있으며, 재시도 횟수는 PUF 셀들 또는 PUF 셀 그룹들 별로 동일 또는 상이할 수 있다. 컨트롤러(100)의 재시도 횟수 결정 방법에 대해서는 도 14a 및 도 14b에서 후술한다. 집적 회로(10)는 서술된 방법으로 생성된 인증 키(KEY)를 외부 호스트에 제공할 수 있다.
본 개시의 예시적 실시예에 따른 집적 회로(10)는 PUF 셀 그룹들 간의 맵핑 관계를 나타내는 어드레스 테이블(TB_1)을 참조하여 PUF 셀 데이터 쌍들(PUF_DP)을 리드하고, 리드된 PUF 셀 데이터 쌍들을 이용하여 개선된 비트 에러율 및 신뢰성이 보장된 인증 키를 생성할 수 있는 효과가 있다.
또한, 집적 회로(10)는 인증 키를 생성함에 있어서 별도의 ADC(Analog- Digital Converter) 등을 필요로하지 않기 때문에 설계의 소형화, 생산 비용을 절감할 수 있는 효과가 있다.
도 5는 도 1의 집적 회로(10)의 동작 방법을 설명하기 위한 순서도이다.
도 1 및 도 5를 참조하면, 단계 S100에서 컨트롤러(100)는 PUF 블록(200)으로부터 복수의 PUF 셀 데이터 쌍들(PUF_DP)을 수신할 수 있다. PUF 셀 데이터 쌍들(PUF_DP)은 PUF 셀 특성과 관련된 소정의 부정합 거리를 갖도록 상호 맵핑된 PUF 셀 그룹들에 속한 PUF 셀들로부터 출력될 수 있다. 단계 S120에서 컨트롤러(100)는 PUF 데이터 쌍들(PUF_DP) 각각을 기준 데이터 쌍들과 비교할 수 있다. 기준 데이터 쌍들은 PUF 데이터 쌍들(PUF_DP) 각각이 올바른 값을 갖는지를 판별할 수 있는 값들을 가질 수 있으며, 도 2에서의 각 PUF 셀 그룹들(Group_1~Group_4)을 대표하는 값들에 따라 결정될 수 있다. 단계 S140에서 컨트롤러(100)는 단계 S120의 비교 결과를 기반으로 PUF 데이터 쌍들(PUF_DP)에 대응하는 요소 키들로 구성된 인증 키를 생성할 수 있다.
도 6은 도 5의 단계 S120 및 단계 S140의 구체적인 실시예를 설명하기 위한 순서도이다.
도 1 및 도 6을 참조하면, 단계 S100(도 5)에 후속하여, 단계 S122a에서 컨트롤러(100)는 제n PUF 셀 데이터 쌍을 기준 데이터 쌍들과 비교할 수 있다. 단계 S141a에서 컨트롤러(100)는 제n PUF 셀 데이터 쌍이 기준 데이터 쌍들 중 어느 하나와 매칭되는지 여부를 판별할 수 있다. 단계 S141a가 'YES'인 때에, 단계 S142a에서 컨트롤러(100)는 제n PUF 셀 데이터 쌍과 매칭된 기준 데이터 쌍에 대응하는 값을 갖는 제n PUF 셀 데이터 쌍의 요소 키를 생성할 수 있다. 단계 S143a에서 컨트롤러(100)는 'n'이 리드된 PUF 셀 데이터 쌍들의 총 개수인 'm'에 도달하였는지 여부를 판별할 수 있다. 단계 S143a가 'YES'인 때에, 단계 S144a에서 'n'을 카운트 업한 후에 단계 S122a가 후속될 수 있다. 단계 S141a가 'NO'인 때에, 단계 S145a에서 컨트롤러(100)는 제n PUF 셀 데이터 쌍을 PUF 블록(200)으로부터 다시 수신할 수 있다. 이후, 단계 S122a가 후속될 수 있다.
도 7은 도 1의 집적 회로(10)의 구체적인 요소 키 생성 방법을 설명하기 위한 순서도이다. 이하, 이해를 돕기 위해 도 2에서 서술된 내용을 전제한다.
도 1 및 도 7을 참조하면, 단계 S300a에서 컨트롤러(100)는 제n PUF 셀 데이터 쌍의 리드를 위한 제어 신호를 PUF 블록(200)에 제공할 수 있다. 단계 S310a에서 컨트롤러(100)는 PUF 블록(200)으로부터 제n PUF 셀 데이터 쌍을 수신할 수 있다. 단계 S320a에서 제n PUF 셀 데이터 쌍과 '00/10'(또는, '10/00'), '01/11'(또는, '11/01')을 각각 비교할 수 있다. '00/10'(또는, '10/00')의 기준 데이터 쌍은, 제n PUF 셀 데이터 쌍이 맵핑된 제1 및 제3 PUF 셀 그룹(Group_1, Group_3)에 대응하는지 여부를 판별하기 위한 것이고, '01/11'(또는, '11/01')의 기준 데이터 쌍은, 제n PUF 셀 데이터 쌍이 맵핑된 제2 및 제4 PUF 셀 그룹(Group_2, Group_4)에 대응하는지 여부를 판별하기 위한 것일 수 있다.
단계 S330a에서 제n PUF 셀 데이터 쌍이 '00/10'(또는, '10/00')과 매칭될 때, 컨트롤러(100)는 '0'값을 갖는 제n 요소 키를 생성할 수 있다. 단계 S340a에서 제n PUF 셀 데이터 쌍이 '01/11'(또는, '11/01')과 매칭될 때, 컨트롤러(100)는 '1'값을 갖는 제n 요소 키를 생성할 수 있다. 한편, 제n PUF 셀 데이터 쌍이 '00/10'(또는, '10/00') 및 '01/11'(또는, '11/01')과 모두 매칭되지 않을 때에는, 컨트롤러(100)는 제n 요소 키를 생성하지 않을 수 있다. 단계 S350a에서 컨트롤러(100)는 제n 요소 키가 생성되었는지 여부를 확인하고, 단계 S350a가 'YES'인 때에, 단계 S360a를 후속하여 제n 요소 키를 포함하는 인증 키를 호스트에 제공할 수 있다. 단계 S350a가 'NO'인 때에, 단계 S300a를 후속하여 제n PUF 셀 데이터 쌍을 PUF 블록(200)으로부터 다시 리드할 수 있다.
도 8a 및 도 8b는 맵핑된 PUF 셀 그룹들의 PUF 셀들이 모두 올바르지 않은 PUF 셀 데이터들을 출력하였을 때를 설명하기 위한 그래프이고, 도 9 내지 도 11은 도 8a 및 도 8b의 경우에서 도 1의 집적 회로(10)의 인증 키를 생성하는 방법을 설명하기 위한 순서도이다.
도 8a를 참조하면, 제x PUF 셀 데이터 쌍(xth PUF_DP)은 상호 맵핑된 제1 및 제3 PUF 셀 그룹(Group_1, Group_3) 각각에 포함된 PUF 셀들로부터 출력되는 것으로, 고유하게 '00/10'(또는, '10/00')의 값을 가져야되나, 다양한 요인으로 인해 해당 PUF 셀들의 특성이 모두 변동되어 '01/01'의 값을 가질 수 있다.
도 8b를 더 참조하면, 제y PUF 셀 데이터 쌍(yth PUF_DP)은 상호 맵핑된 제2 및 제4 PUF 셀 그룹(Group_2, Group_4) 각각에 포함된 PUF 셀들로부터 출력되는 것으로, 고유하게 '01/11'(또는, '11/01')의 값을 가져야되나, 다양한 요인으로 인해 해당 PUF 셀들의 특성이 모두 변동되어 '10/10'의 값을 가질 수 있다.
제x 및 제y PUF 셀 데이터 쌍(xth PUF_DP, yth PUF_DP)은 각각 '01/01', '10/10'의 값을 갖는 때에, 기준 데이터 쌍들과 모두 매칭되지 않는 경우, 도 7 등에서 서술한 바와 같이, 컨트롤러는 제x 및 제y PUF 셀 데이터 쌍(xth PUF_DP, yth PUF_DP)에 대응하는 요소 키들의 생성을 재시도해야될 수 있다.
본 개시의 예시적 실시예에 따른 집적 회로는, 도 8a 및 도 8b에 도시된 경우에서도 제1 내지 제4 PUF 셀 그룹(Group_1~Group_4)의 맵핑 관계를 이용하여 요소 키들을 한번에 생성할 수 있다.
도 9는 도 5의 단계 S120 및 단계 S140의 구체적인 실시예를 설명하기 위한 순서도이다.
도 9에서 단계 S100, 단계 S122b, 단계 S141b 내지 단계 S144b는 도 6에 서술된 내용과 중복되는 바, 구체적인 서술은 생략한다.
도 1 및 도 9를 더 참조하면, 단계 S141b가 'NO'인 때에, 단계 S145b를 후속하여 컨트롤러(100)는 제n PUF 셀 데이터 쌍의 특정 비트의 값이 동일한지 여부를 판별할 수 있다. 예시적 실시 예로, 특정 비트는 제n PUF 셀 데이터 쌍의 해당 PUF 셀들이 각각 상위 50% 또는 하위 50%의 문턱 전압을 갖는지 여부를 나타내는 비트일 수 있다. 이 때에, 도 2를 살펴보면, 특정 비트는 상위 비트에 해당할 수 있다. 일부 실시 예에서, 특정 비트는 하위 비트에 해당할 수도 있다. 한편, 제x 및 제y PUF 셀 데이터 쌍(xth PUF_DP, yth PUF_DP)의 특정 비트(또는, 상위 비트)가 각각 '0', '1'로 동일하기 때문에 단계 S146b가 후속될 수 있다. 단계 S145b가 'YES'인 때에, 후속되는 단계 S146b에서 컨트롤러(100)는 특정 비트 값에 부합하는 값을 갖는 제n PUF 셀 데이터 쌍의 요소 키를 생성할 수 있다.
예를 들어, 컨트롤러(100)는 제x PUF 셀 데이터 쌍(xth PUF_DP)의 특정 비트(또는, 상위 비트)의 값을 고려하여 '0'값을 갖는 제x PUF 셀 데이터 쌍(xth PUF_DP)의 요소 키를 생성할 수 있다. 또한, 컨트롤러(100)는 제y PUF 셀 데이터 쌍(yth PUF_DP)의 특정 비트(또는, 상위 비트)의 값을 고려하여 '1'값을 갖는 제y PUF 셀 데이터 쌍(yth PUF_DP)의 요소 키를 생성할 수 있다. 결과적으로, 도 7의 단계 S330a와 비교해보면, 제x PUF 셀 데이터 쌍(xth PUF_DP)에 대응하는 '0' 값을 갖는 요소 키를 적절하게 생성할 수 있으며, 도 7의 단계 S340a와 비교해보면, 제y PUF 셀 데이터 쌍(yth PUF_DP)에 대응하는 '1' 값을 갖는 요소 키를 적절하게 생성할 수 있다.
단계 S145b가 'NO'인 때에, 후속되는 단계 S147b에서 컨트롤러(100)는 제n PUF 셀 데이터 쌍을 PUF 블록(200)으로부터 다시 수신할 수 있다. 이후, 단계 S122b가 후속될 수 있다.
도 10은 도 1의 집적 회로(10)의 구체적인 요소 키 생성 방법을 설명하기 위한 순서도이다. 이하, 이해를 돕기 위해 도 8a 및 도 8b에서 서술된 내용을 전제한다. 또한, 단계 S300b 내지 단계 S340b, 단계 S370b 및 단계 S380b는 도 7에 서술된 내용과 중복되는 바, 구체적인 서술은 생략한다.
도 10을 참조하면, 단계 S340b에 후속하여 단계 S350b에서 컨트롤러(100)는 제n PUF 셀 데이터 쌍의 상위 비트 값이 '0'으로 동일할 때, '0' 값을 갖는 제n 요소 키를 생성할 수 있다. 단계 S360b에서 컨트롤러(100)는 제n PUF 셀 데이터 쌍의 상위 비트 값이 '1'로 동일할 때, '1'값을 갖는 제n 요소 키를 생성할 수 있다. 이와 같이, 컨트롤러(100)는 제n PUF 셀 데이터 쌍이 기준 데이터 쌍들에 매칭되지 않는 경우에도 상호 맵핑된 PUF 셀 그룹들간의 관계에 기초하여 제n 요소 키를 생성할 수 있다.
도 11은 본 개시의 예시적 실시예에 따라 요소 키 재시도 횟수 제한을 두어 인증 키 생성하는 방법을 설명하기 위한 순서도이다.
도 1 및 도 11을 참조하면, 단계 S141a(도 5)가 'NO'일 때, 이에 후속하여, 단계 S410에서 컨트롤러(100)는 제n PUF 셀 데이터 쌍의 매칭 실패 횟수가 재시도 횟수에 도달하였는지 판별할 수 있다. 단계 S410이 'NO'일 때, 단계 S145a(도 6)가 후속될 수 있다. 예시적 실시예로, 컨트롤러(100)는 설정 단계에서 재시도 횟수를 미리 결정할 수 있다. 재시도 횟수는 PUF 블록(120)의 PUF 셀들에 대해 모두 동일할 수 있으며, 일부 실시예에서는 PUF 셀 그룹별, 또는 PUF 셀 서브 그룹별로 상이할 수 있다. 복수의 PUF 셀 서브 그룹들은 하나의 PUF 셀 그룹을 구성할 수 있다. 재시도 횟수 결정에 대한 구체적인 실시예는 도 14a 및 도 14b에서 서술한다. 단계 S410이 'YES'일 때, 컨트롤러(100)는 제n PUF 셀 데이터 쌍의 제n 요소 키의 생성 실패를 결정할 수 있다. 예시적 실시예로, 컨트롤러(100)는 제n PUF 셀 데이터 쌍은 인증 키를 생성하는데에 이용 불가함을 확인하였기 때문에, 제n PUF 셀 데이터 쌍에 대응하는 PUF 셀들에 불필요한 접근을 피하기 위해 어드레스 테이블에서 해당 PUF 셀들에 대한 어드레스 정보를 삭제하는 업데이트 동작을 수행할 수 있다. 단계 S430에서 컨트롤러(100)는 제n PUF 셀 데이터 쌍의 제n 요소 키 생성 불가를 나타내는 알림 신호를 외부 호스트에 제공할 수 있다. 외부 호스트는 알림 신호를 확인하여 인증 키를 요청할 때에, 위와 같은 상황을 고려할 수 있다.
위와 같이, PUF를 지원하는 집적 회로는 재시도 횟수 제한을 둠으로써 인증 키를 생성을 방해하는 PUF 셀들을 배제하여 신뢰성 및 인증 키 생성 속도를 향상시킬 수 있는 효과가 있다.
도 12는 본 개시의 예시적 실시예에 따라 재시도 횟수를 관리하기 위한 어드레스 테이블(TB_2)을 나타내는 도면이다.
도 12를 참조하면, 어드레스 테이블(TB_2)은 도 4의 어드레스 테이블(TB_1)과 비교하여 재시도 횟수에 관한 정보를 더 포함할 수 있다. 예를 들어, 상호 맵핑된 제1 PUF 셀의 어드레스(C1_ADD) 및 제79 PUF 셀의 어드레스(C79_ADD)에 대응하는 PUF 셀 데이터 쌍의 요소 키 생성의 재시도 횟수는 제1 횟수(RC1)에 해당될 수 있다. 상호 맵핑된 제256 PUF 셀의 어드레스(C256_ADD) 및 제67 PUF 셀의 어드레스(C67_ADD)에 대응하는 PUF 셀 데이터 쌍의 요소 키 생성의 재시도 횟수는 제2 횟수(RC2)에 해당될 수 있다. 컨트롤러는 소정의 PUF 셀 데이터 쌍이 기준 데이터 쌍들과 매칭되지 않는 때에, 어드레스 테이블(TB_2)로부터 해당 PUF 셀 데이터 쌍에 대응하는 재시도 횟수를 확인하고, 재시도 횟수만큼 해당 PUF 셀 데이터 쌍을 다시 리드하고, 기준 데이터 쌍들과 다시 매칭하는 동작을 수행할 수 있다. 한편, 어드레스 테이블(TB_2)을 통해 재시도 횟수를 관리하는 것을 중심으로 서술하고 있으나, 이는 예시적 실시예에 해당하는 바, 이에 국한되지 않고, 다양하게 방법으로 재시도 횟수를 관리할 수 있다.
도 13은 도 1의 집적 회로(10)의 설정 단계(또는, 업데이트 단계)에서의 동작을 설명하기 위한 순서도이다. 이하, 이해를 돕기 위해 도 2에서 서술된 내용을 전제한다.
도 1 및 도 13을 참조하면, 단계 S500에서 컨트롤러(100)는 설정 단계(또는, 업데이트 단계)에서 PUF 블록(200)으로부터 복수의 PUF 셀들의 고유 신호들을 적어도 일회 수신할 수 있다. 컨트롤러(100)는 수신된 PUF 셀들의 고유 신호들을 이용하여 인증 단계 전에 미리 인증 키를 생성하는데에 필요한 어드레스 테이블을 생성하거나, 업데이트할 수 있다. 단계 S510에서 컨트롤러(100)는 PUF 블록(200)의 복수의 PUF 셀들에 대한 그룹핑을 수행할 수 있다. 예를 들어, 컨트롤러(100)는 복수의 PUF 셀들의 고유 신호들의 값을 분석하여 도 2와 같은 문턱 전압 산포를 생성할 수 있다. 컨트롤러(100)는 복수의 PUF 셀들의 고유 신호들의 값을 고려하여 복수의 PUF 셀들을 제1 내지 제4 PUF 셀 그룹(Group_1~Group_4)으로 나눌 수 있다. 또한, 컨트롤러(100)는 복수의 PUF 셀들로부터의 고유 신호들을 2비트 데이터로 나타내기 위해 필요한 제2 내지 제4 기준 포인트(p2~p4)를 결정할 수 있다. 단계 S520에서 컨트롤러(100)는 PUF 셀 그룹들로부터 상호 소정의 부정합 거리를 갖는 PUF 셀 그룹들끼리 맵핑하고, PUF 셀 그룹들간의 맵핑 관계를 나타내는 어드레스 테이블을 생성할 수 있다. 어드레스 테이블에 관한 내용은 도 4 및 도 12에 구체적으로 서술된 바, 이하 생략한다. 컨트롤러(100)는 생성된 어드레스 테이블을 비휘발성 메모리(300)에 저장할 수 있다. 또한, 컨트롤러(100)는 어드레스 테이블 생성을 위해 소정의 레지스터에 저장된 복수의 PUF 셀들의 고유 신호들을 보안을 위해 삭제할 수 있다.
한편, 컨트롤러(100)는 PUF 블록(200)의 PUF 셀들의 고유한 특성이 다양한 요인에 의해 비가역적으로 변동될 수 있는 것을 고려하여, 주기적 또는 비주기적으로 어드레스 테이블에 대한 업데이트 동작을 수행할 수 있다. 이 때, 컨트롤러(100)는 PUF 블록(200)의 PUF 셀들을 다시 그룹핑하고, PUF 셀 그룹들을 다시 맵핑함으로써 어드레스 테이블을 업데이트할 수 있다.
도 14a 및 도 14b는 도 1의 집적 회로(10)의 설정 단계(또는, 업데이트 단계)에서의 동작을 설명하기 위한 도면이다.
도 1 및 도 14a를 참조하면, 단계 S600에서 컨트롤러(100)는 설정 단계(또는, 업데이트 단계)에서 PUF 블록(200)의 복수의 PUF 셀들로부터 PUF 셀 데이터들을 복수 회 수신할 수 있다. 단계 S610에서 컨트롤러(100)는 PUF 셀 데이터들을 이용하여 PUF 셀들의 경향성을 판단할 수 있다. 예를 들어, 컨트롤러(100)는 PUF 셀의 PUF 셀 데이터 값이 어느 정도로 변동되는지 여부를 확인할 수 있다. 예를 들어, 컨트롤러(100)는 PUF 셀의 PUF 셀 데이터 값이 임계치를 초과하는 횟수로 변동되는 경우, 해당 PUF 셀의 PUF 셀 데이터 값이 변동될 가능성이 높은 것으로 판단하고, 이러한 경향성은 해당 PUF 셀에 대응하는 재시도 횟수를 설정하는 데에 고려될 수 있다. 단계 S620에서 컨트롤러(100)는 단계 S610의 판단 결과를 기반으로 재시도 횟수를 설정하고, 이를 어드레스 테이블로서 정리하여 비휘발성 메모리(300)에 저장할 수 있다.
도 14b를 더 참조하면, 제2 PUF 셀 그룹(Group_2)에 포함된 제1 및 제2 PUF 셀 서브 그룹(Sub_G21, Sub_G22)에는 PUF 셀 데이터 값이 변동될 가능성이 높은 경향성을 갖는 PUF 셀들을 포함하고, 제3 PUF 셀 그룹(Group_3)에 포함된 제3 및 제4 PUF 셀 서브 그룹(Sub_G31, Sub_G32)에는 PUF 셀 데이터 값이 변동될 가능성이 높은 경향성을 갖는 PUF 셀들을 포함할 수 있다. 컨트롤러(100)는 제1 내지 제4 PUF 서브 그룹(Sub_G21, Sub_G22, Sub_G31, Sub_G32)에 포함된 PUF 셀들에 대한 재시도 횟수를 다른 PUF 셀들의 재시도 횟수보다 크게 설정할 수 있다. 다만, 이는 예시적인 실시예에 불과한 바, 다른 PUF 셀들의 재시도 횟수보다 작게 또는 동일하게도 설정할 수 있다.
도 15는 본 개시의 예시적 실시예에 따른 전자 장치(1000)를 나타내는 블록도이다.
전자 장치(1000)는 애플리케이션 프로세서, 스마트 카드 IC, 모바일 기기, 데이터 저장 매체(SSD, 메모리 스틱, UFS 장치), 메모리 카드(SD, MMC, eMMC 등), 보안 장치 등 데이터의 암호화 또는 보안 인증이 수행되는 다양한 종류의 전자 장치 중 하나일 수 있다.
도 15를 참조하면, 전자 장치(1000)는 적어도 하나의 프로세서(1100), PUF 시스템(1200), 암호화 모듈(1300), 비휘발성 메모리 컨트롤러(1400), 비휘발성 메모리(1410), RAM(1500) 및 인터페이스(1600)를 포함할 수 있다. 전자 장치(1000)는 통신 모듈, 입출력 장치 등 다른 구성들을 더 포함할 수 있다.
프로세서(1100)는 전자 장치(1000)에 대한 전반적인 동작을 제어할 수 있다. 프로세서(1100)는 CPU(Central Processing Unit), 마이크로 프로세서 등으로 구현될 수 있으며, 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다.
RAM(1500)은 전자 장치(1000)의 내부 시스템의 워킹 메모리로서 동작할 수 있다. RAM(1500)은 휘발성 메모리(volatile memory) 또는 비휘발성 메모리(NOnvolatile memory) 중 적어도 하나를 포함할 수 있다. 전자 장치(1000)를 관리/운영하기 위한 코드(code) 및/혹은 애플리케이션이 RAM(1500)에 로딩되고, 프로세서(1100)는 RAM(1500)에 로딩된 코드 및/혹은 애플리케이션을 실행할 수 있다. 이때, 코드(code) 및/혹은 애플리케이션은 불휘발성 메모리(1410) 또는 별도의 저장소에 저장될 수 있다.
인터페이스(1600)는 RGB 인터페이스, CPU 인터페이스, 시리얼 인터페이스(serial interface), MDDI(Mobile display digital interface), I2C(inter integrated circuit) 인터페이스, SPI(serial pheripheral interface), MCU(micro controller unit) 인터페이스, MIPI(Mobile industry processor interface), eDP(embedded displayport) 인터페이스, D-sub(D-subminiature), 광 인터페이스(optical interface), D-sub(D-subminiature), HDMI(highdefinition multimedia interface), MHL(mobile high-definition link) 인터페이스, SD(secure Digital) 카드/MMC(multi-media card) 인터페이스 또는 IrDA(infrared data association) 규격 인터페이스 등을 통해 입출력 장치(미도시)와 연결될 수 있다.
비휘발성 메모리 컨트롤러(1400)는 비휘발성 메모리(1410)와 전자 장치(1000)의 다른 구성들(예컨대 프로세서(1100), PUF 시스템(1200), 암호화 모듈(1300) 등) 사이에 인터페이스를 제공할 수 있다. 비휘발성 메모리(1410)에 저장될 데이터나 비휘발성 메모리(1410)로부터 독출될 데이터는 비휘발성 메모리 컨트롤러(1400)의 제어하에 비휘발성 메모리(1410)에 수신되거나, 비휘발성 메모리(1410)로부터 독출될 수 있다.
비휘발성 메모리(1410)는 OTP(One Time Programmable) 메모리, ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), Flash 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM) 및 FRAM (Ferroelectric RAM) 중 하나를 포함할 수 있다.
비휘발성 메모리(1410)에는 전자 장치(1000)를 관리/운영하기 위한 코드(code) 및/혹은 애플리케이션이 저장될 수 있으며, 사용자 데이터가 저장될 수 있다. 또한, 본 개시의 예시적 실시예들에 따른 인증 키를 생성하기 위해 PUF 시스템(1200)로부터 생성되는 어드레스 테이블, 기준 포인트들, 기준 데이터 쌍들 등이 비휘발성 메모리(1410)에 저장될 수 있다.
암호화 모듈(1300)은 PUF 시스템(1200)으로부터 제공되는 인증 키를 이용하여 입출력 데이터에 대한 암호 및 복호 동작을 수행할 수 있다.
PUF 시스템(1200)은 보안에 필요한 인증 키를 발생할 수 있다. PUF 시스템(1200)은 프로세서(1100) 또는 암호화 모듈(1300)으로부터 제공되는 인증 키 요청 신호에 응답하여, 인증 키를 생성하고, 이를 암호화 모듈(1300)에 제공할 수 있다.
도 1 내지 도 14b을 참조하여 설명한 집적 회로의 구성 및 동작 방법이 PUF 시스템(1200)에 적용될 수 있다. PUF 시스템(1200)은 하드웨어, 하드웨어와 소프트웨어의 조합 또는 하드웨어와 펌웨어의 조합으로 구현될 수 있다.
예시적 실시예에 따른 PUF 시스템(1200)은 인증 단계에서 어드레스 테이블을 참조하여 PUF 셀 데이터 쌍들을 수신하고, PUF 셀 데이터 쌍들을 기준 데이터 쌍들과 비교하여 복수의 요소 키들로 구성된 인증 키를 생성할 수 있다.
예시적 실시예에 따른 어드레스 테이블은, PUF 셀 그룹들이 소정의 부정합 거리를 갖도록 맵핑된 관계를 나타내도록 구성되었으며, PUF 시스템(1200)은 설정 단계에서 어드레스 테이블을 미리 생성할 수 있다
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 물리적 복제방지 기능(Physically Unclonable Function; PUF)을 위한 집적 회로로서,
    PUF 셀 특성과 관련하여 각각 상호 소정의 부정합(mismatch) 거리를 갖는 제1 PUF 셀 그룹과 제2 PUF 셀 그룹간 제1 맵핑 관계 및 제3 PUF 셀 그룹과 제4 PUF 셀 그룹간 제2 맵핑 관계를 나타내는 어드레스 테이블을 참조하여 제어 신호를 생성하도록 구성된 컨트롤러; 및
    상기 제어 신호에 응답하여 복수의 PUF 셀 데이터 쌍들을 상기 컨트롤러에 제공하도록 구성된 PUF 블록을 포함하고,
    상기 컨트롤러는, 상기 복수의 PUF 셀 데이터 쌍들 각각을 기준 데이터 쌍들과 비교하여 인증 키(authentication key)를 생성하는 것을 특징으로 하는 집적 회로.
  2. 제1항에 있어서,
    상기 PUF 블록은,
    문턱 전압 산포를 형성하고, 문턱 전압 크기에 따라 그룹핑된 상기 제1 내지 제4 PUF 셀 그룹으로 나뉜 복수의 PUF 셀들을 포함하도록 구성되는 것을 특징으로 하는 집적 회로.
  3. 제2항에 있어서,
    상기 제1 PUF 셀 그룹은, 상기 문턱 전압 산포 중 가장 낮은 제1 영역에 대응하고, 상기 제2 PUF 셀 그룹은, 상기 문턱 전압 산포 중 두번째로 높은 제2 영역에 대응하고, 상기 제3 PUF 셀 그룹은, 상기 문턱 전압 산포 중 두번째로 낮은 제3 영역에 대응하며, 상기 제4 PUF 셀 그룹은, 상기 문턱 전압 산포 중 가장 높은 제4 영역에 대응하는 것을 특징으로 하는 집적 회로.
  4. 제2항에 있어서,
    상기 어드레스 테이블은,
    상기 제1 PUF 셀 그룹에 속한 PUF 셀들의 어드레스들과 상기 제2 PUF 셀 그룹에 속한 PUF 셀들의 어드레스들이 맵핑된 정보; 및
    상기 제3 PUF 셀 그룹에 속한 PUF 셀들의 어드레스들과 상기 제4 PUF 셀 그룹에 속한 PUF 셀들의 어드레스들이 맵핑된 정보를 포함하는 것을 특징으로 하는 집적 회로.
  5. 제1항에 있어서,
    상기 컨트롤러는,
    상기 복수의 PUF 셀 데이터 쌍들 중 제n PUF 셀 데이터 쌍에 있어서, 상기 기준 데이터 쌍들 중 상기 제n PUF 셀 데이터 쌍과 매칭된 기준 데이터 쌍에 부합하는 값을 갖는 제n 요소 키(element key)를 생성하는 것을 특징으로 하는 집적 회로.
  6. 제1항에 있어서,
    상기 컨트롤러는,
    상기 복수의 PUF 셀 데이터 쌍들 중 제n PUF 셀 데이터 쌍이 상기 기준 데이터 쌍들에 매칭되지 않는 때에, 상기 제n PUF 셀 데이터 쌍에 대응하는 제n 요소 키의 생성을 재시도하도록 구성된 것을 특징으로 하는 집적 회로.
  7. 제6항에 있어서,
    상기 컨트롤러는,
    상기 제n 요소 키의 생성의 재시도 횟수를 초과하는 때에, 상기 제n PUF 셀 데이터 쌍은 상기 인증 키를 생성하는데에 이용되지 못하도록 상기 어드레스 테이블을 업데이트하는 것을 특징으로 하는 집적 회로.
  8. 제7항에 있어서,
    상기 컨트롤러는,
    상기 제n PUF 셀 데이터 쌍의 상기 제n 요소 키의 생성 불가를 나타내는 알림 신호를 생성하여 외부 호스트에 제공하도록 구성된 것을 특징으로 하는 집적 회로.
  9. 제1항에 있어서,
    상기 컨트롤러는,
    상기 복수의 PUF 셀 데이터 쌍들 중 제n PUF 셀 데이터 쌍이 상기 기준 데이터 쌍들과 매칭되지 않는 때에, 상기 제n PUF 셀 데이터 쌍의 특정 비트의 값이 동일한지 여부를 판별하고, 판별 결과를 기반으로 상기 제n PUF 셀 데이터 쌍에 대응하는 제n 요소 키를 생성하도록 구성된 것을 특징으로 하는 집적 회로.
  10. 제9항에 있어서,
    상기 특정 비트는, 상기 제n PUF 셀 데이터 쌍의 해당 PUF 셀들이 각각 상위 50% 또는 하위 50%의 문턱 전압을 갖는지 여부를 나타내는 비트이고,
    상기 컨트롤러는,
    상기 제n PUF 셀 데이터 쌍의 상기 특정 비트가 동일한 때에, 상기 특정 비트의 값에 부합하는 값을 갖는 상기 제n 요소 키를 생성하도록 구성된 것을 특징으로 하는 집적 회로.
  11. 제1항에 있어서,
    상기 컨트롤러는,
    설정 단계에서, 상기 PUF 블록의 복수의 PUF 셀들로부터 적어도 일회 수신된 복수의 고유 신호들을 기반으로 상기 복수의 PUF 셀들을 상기 제1 내지 제4 PUF 셀 그룹으로 나누고, 상기 복수의 PUF들의 어드레스들을 상기 제1 및 제2 맵핑 관계에 부합하도록 맵핑함으로써 상기 어드레스 테이블을 생성하도록 구성된 것을 특징으로 하는 집적 회로.
  12. 제11항에 있어서,
    상기 컨트롤러는,
    상기 어드레스 테이블을 주기적 또는 비주기적으로 업데이트하도록 구성된 것을 특징으로 하는 집적 회로.
  13. 물리적 복제방지(Physically Unclonable Function; PUF) 기능을 위한 집적 회로로서,
    복수의 PUF 셀들을 포함하도록 구성된 PUF 블록; 및
    PUF 셀 특성과 관련하여 상호 소정의 부정합 거리를 갖는 제1 PUF 셀 그룹과 제2 PUF 셀 그룹간 제1 맵핑 관계 또는 제3 PUF 셀 그룹과 제4 PUF 셀 그룹간 제2 맵핑 관계에 따른 복수의 PUF 셀 데이터 쌍들을 상기 PUF 블록으로부터 수신하는 컨트롤러를 포함하고,
    상기 컨트롤러는, 상기 복수의 PUF 셀 데이터 쌍들 각각을 기준 데이터 쌍들과 비교하여 인증 키를 구성하는 복수의 요소 키들을 생성하는 것을 특징으로 하는 집적 회로.
  14. 제13항에 있어서,
    상기 컨트롤러는,
    상기 복수의 PUF 셀 데이터 쌍들과 상기 기준 데이터 쌍들과의 매칭 결과를 기반으로 상기 복수의 PUF 셀 데이터 쌍들에 대응하는 상기 복수의 요소 키들을 생성하여 인증 키로서 외부 호스트로 출력하도록 구성된 것을 특징으로 하는 집적 회로.
  15. 제13항에 있어서,
    상기 컨트롤러는,
    상기 복수의 PUF 셀 데이터 쌍들 중 상기 기준 데이터 쌍들과 매칭되지 않는 적어도 하나의 PUF 셀 데이터 쌍을 상기 PUF 블록으로부터 다시 리드하여 상기 적어도 하나의 PUF 셀 데이터 쌍에 대응하는 요소 키를 생성하도록 구성된 것을 특징으로 하는 집적 회로.
  16. 제13항에 있어서,
    상기 컨트롤러는,
    상기 복수의 PUF 셀 데이터 쌍들 중 상기 기준 데이터 쌍들과 매칭되지 않는 적어도 하나의 PUF 셀 데이터 쌍의 특정 비트가 동일한지 여부를 판별하여 상기 적어도 하나의 PUF 셀 데이터 쌍에 대응하는 요소 키를 생성하도록 구성된 것을 특징으로 하는 집적 회로.
  17. 제16항에 있어서,
    상기 특정 비트는, 상기 적어도 하나의 PUF 셀 데이터 쌍의 해당 PUF 셀들이 각각 상위 50% 또는 하위 50%의 문턱 전압을 갖는지 여부를 나타내는 비트이고,
    상기 컨트롤러는,
    상기 적어도 하나의 PUF 셀 데이터 쌍의 상기 특정 비트가 동일한 때에, 상기 특정 비트의 값에 부합하는 값을 갖는, 상기 적어도 하나의 PUF 셀 데이터 쌍에 대응하는, 상기 요소 키를 생성하도록 구성된 것을 특징으로 하는 집적 회로.
  18. 제13항에 있어서,
    상기 컨트롤러는,
    외부 호스트로부터 수신된 인증 키 요청 신호에 응답하여 상기 제1 및 제2 맵핑 관계를 나타내는 어드레스 테이블을 기반으로 상기 복수의 PUF 셀 데이터 쌍들을 요청하기 위한 제어 신호를 상기 PUF 블록에 제공하도록 구성된 것을 특징으로 하는 집적 회로.
  19. 제21항에 있어서,
    상기 컨트롤러는,
    설정 단계에서, 상기 복수의 PUF 셀들로부터 적어도 일회 수신된 복수의 고유 신호들을 기반으로 상기 복수의 PUF 셀들을 상기 제1 내지 제4 PUF 셀 그룹으로 나누고, 상기 복수의 PUF 셀들의 어드레스들을 상기 제1 및 제2 맵핑 관계에 부합하도록 맵핑함으로써 상기 어드레스 테이블을 생성하도록 구성된 것을 특징으로 하는 집적 회로.
  20. 물리적 복제방지 기능(Physically Unclonable Function; PUF)을 지원하기 위해 컨트롤러 및 PUF 블록이 구비된 집적 회로의 동작 방법에 있어서,
    상기 컨트롤러에 인증 키 요청을 제공하는 단계;
    상기 컨트롤러는, 상기 인증 키 요청에 응답하여 복수의 제1 PUF 셀들 및 이와 쌍을 이루는 복수의 제2 PUF 셀들에 대응하는 복수의 PUF 셀 데이터 쌍들을 리드하기 위한 제어 신호를 상기 PUF 블록에 제공하는 단계;
    상기 PUF 블록은, 상기 제어 신호에 응답하여 상기 복수의 PUF 셀 데이터 쌍들을 상기 컨트롤러에 제공하는 단계;
    상기 컨트롤러는, 상기 복수의 PUF 셀 데이터 쌍들 각각을 기준 데이터 쌍들과 비교하는 단계; 및
    상기 컨트롤러는, 상기 비교 결과를 기반으로 상기 복수의 PUF 셀 데이터 쌍들에 대응하는 복수의 요소 키들로 구성된 인증 키를 생성하는 단계를 포함하는 집적 회로의 동작 방법.
KR1020200076760A 2020-06-23 2020-06-23 물리적 복제방지 기능을 위한 집적 회로 및 이의 동작 방법 KR20210158256A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020200076760A KR20210158256A (ko) 2020-06-23 2020-06-23 물리적 복제방지 기능을 위한 집적 회로 및 이의 동작 방법
DE102021105189.4A DE102021105189A1 (de) 2020-06-23 2021-03-04 Integrierte Schaltung für eine Physically Unclonable Function und Verfahren zu deren Betrieb
US17/199,944 US11849054B2 (en) 2020-06-23 2021-03-12 Integrated circuit for physically unclonable function and method of operating the same
CN202110685505.6A CN113836599A (zh) 2020-06-23 2021-06-21 用于物理不可克隆函数的集成电路及其操作方法
US18/512,212 US20240089125A1 (en) 2020-06-23 2023-11-17 Integrated circuit for physically unclonable function and method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200076760A KR20210158256A (ko) 2020-06-23 2020-06-23 물리적 복제방지 기능을 위한 집적 회로 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20210158256A true KR20210158256A (ko) 2021-12-30

Family

ID=78823199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200076760A KR20210158256A (ko) 2020-06-23 2020-06-23 물리적 복제방지 기능을 위한 집적 회로 및 이의 동작 방법

Country Status (4)

Country Link
US (2) US11849054B2 (ko)
KR (1) KR20210158256A (ko)
CN (1) CN113836599A (ko)
DE (1) DE102021105189A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11343108B2 (en) * 2019-06-12 2022-05-24 Arizona Board Of Regents On Behalf Of Northern Arizona University Generation of composite private keys
US20230139712A1 (en) * 2021-11-04 2023-05-04 National Yang Ming Chiao Tung University Circuit apparatus and methods for puf source and generating random digital sequence

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8176106B2 (en) 2005-12-14 2012-05-08 Nxp B.V. On-chip estimation of key-extraction parameters for physical tokens
KR101575807B1 (ko) 2014-11-28 2015-12-08 고려대학교 산학협력단 물리적 복제 방지 기능을 갖는 플래시 메모리 장치 및 그 구현 방법
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
US10439827B2 (en) * 2016-10-07 2019-10-08 Taiwan Semiconductor Manufacturing Co., Ltd. SRAM-based authentication circuit
EP3340216B1 (en) 2016-12-23 2020-01-29 Secure-IC SAS Secret key generation using a high reliability physically unclonable function
US10243749B2 (en) 2017-05-16 2019-03-26 Samsung Electronics Co., Ltd. Physically unclonable function circuit, and system and integrated circuit including the same
CN109522753B (zh) * 2017-09-18 2020-11-06 清华大学 电路结构及其驱动方法、芯片及其认证方法、电子设备
US10424356B2 (en) 2017-11-22 2019-09-24 Micron Technology, Inc. Methods for on-die memory termination and memory devices and systems employing the same
KR101989149B1 (ko) * 2018-02-09 2019-06-13 성균관대학교산학협력단 PUF(Physically Unclonable Function) 셀 재조합 방법 및 장치와, PUF 회로
US10560095B2 (en) * 2018-05-23 2020-02-11 Analog Devices, Inc. Impedance-based physical unclonable function
KR102113633B1 (ko) 2018-05-28 2020-05-20 한국과학기술연구원 사용자 인증 시스템에 사용되는 puf 장치 및 그것의 동작 방법
KR102124064B1 (ko) * 2018-07-17 2020-06-17 한국과학기술연구원 플래시 메모리 시스템 및 그것의 양자화 신호 생성 방법
US10361700B1 (en) 2018-12-24 2019-07-23 Taiwan Semiconductor Manufacturing Co., Ltd. Testing method to quantify process variation distribution in physically unclonable function device, computer readable medium thereof
DE102020103891A1 (de) 2019-06-12 2020-12-17 Samsung Electronics Co., Ltd. Sicherheitsvorrichtung, Physical Unclonable Function-Zellen enthaltend, und Betriebsverfahren derselben

Also Published As

Publication number Publication date
US20210399905A1 (en) 2021-12-23
US20240089125A1 (en) 2024-03-14
DE102021105189A1 (de) 2021-12-23
CN113836599A (zh) 2021-12-24
US11849054B2 (en) 2023-12-19
DE102021105189A9 (de) 2022-04-14

Similar Documents

Publication Publication Date Title
US10749695B2 (en) Physical unclonable function for non-volatile memory
US11601269B2 (en) Unchangeable physical unclonable function in non-volatile memory
US20200014544A1 (en) Non-volatile memory with replay protected memory block having dual key
US20240089125A1 (en) Integrated circuit for physically unclonable function and method of operating the same
US10521617B2 (en) Non-volatile memory device with secure read
US11070384B2 (en) Semiconductor device and security system
TW201734879A (zh) 以sram為基礎的認證電路
EP3407336B1 (en) Unchangeable phyisical unclonable function in non-volatile memory
US20200042241A1 (en) Memory system
US9852791B1 (en) Semiconductor memory device, chip ID generation method thereof and manufacturing method thereof
US11736285B2 (en) Method for controlling device activation and associated electronic device
CN108241807B (zh) 半导体存储器装置,芯片标识符产生方法与制造方法
CN113515784A (zh) 集成电路以及授权访问由集成电路存储的内容的方法
TWI625733B (zh) 產生積體電路固有資訊的裝置及方法
CN111914266A (zh) 包括物理不可克隆函数单元的安全装置及其操作方法
KR101575807B1 (ko) 물리적 복제 방지 기능을 갖는 플래시 메모리 장치 및 그 구현 방법
US11404119B1 (en) Non-volatile memory device and challenge response method
US20230274002A1 (en) Firmware authenticity check
CN108537068B (zh) 产生集成电路固有信息的装置及方法
KR20220143450A (ko) 시스템 버퍼를 포함하는 메모리 시스템 및 이의 동작 방법
KR20230131750A (ko) 스토리지 장치 및 이의 동작 방법
KR20220010408A (ko) 보호 영역에 데이터를 기입하기 위한 시스템, 장치 및 방법