KR20210097537A - 물리적 복제 방지 기능에 기초하여 마스킹 데이터를 생성하는 보안 장치 및 이의 동작 방법 - Google Patents

물리적 복제 방지 기능에 기초하여 마스킹 데이터를 생성하는 보안 장치 및 이의 동작 방법 Download PDF

Info

Publication number
KR20210097537A
KR20210097537A KR1020200011354A KR20200011354A KR20210097537A KR 20210097537 A KR20210097537 A KR 20210097537A KR 1020200011354 A KR1020200011354 A KR 1020200011354A KR 20200011354 A KR20200011354 A KR 20200011354A KR 20210097537 A KR20210097537 A KR 20210097537A
Authority
KR
South Korea
Prior art keywords
puf
key
masking
data
cells
Prior art date
Application number
KR1020200011354A
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 KR1020200011354A priority Critical patent/KR20210097537A/ko
Priority to US17/020,287 priority patent/US11689376B2/en
Priority to CN202110073538.5A priority patent/CN113204768A/zh
Publication of KR20210097537A publication Critical patent/KR20210097537A/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/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/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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • 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/04Masking or blinding
    • 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 Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

물리적 복제 방지 기능에 기초하여 키를 마스킹하기 위한 마스킹 데이터를 생성하는 보안 장치 및 이의 동작 방법이 개시된다. 본 개시의 예시적 실시예에 따른 보안 장치는 복수의 물리적 복제 방지 기능(Physically Unclonable Function; PUF) 셀들을 포함하고, 상기 복수의 PUF 셀들로부터 랜덤 데이터 및 마스킹 데이터를 출력하는 PUF 블록, 상기 랜덤 데이터에 대한 후처리를 통해 키를 생성하는 키 생성기 및 상기 마스킹 데이터를 이용하여 상기 키를 마스킹 후 저장하는 마스킹 모듈;을 포함하고, 상기 랜덤 데이터 및 상기 마스킹 데이터는 서로 다른 PUF 셀로부터 생성되는 것을 특징으로 할 수 있다.

Description

물리적 복제 방지 기능에 기초하여 마스킹 데이터를 생성하는 보안 장치 및 이의 동작 방법{SECURITY DEVICE GENERATING MASKING DATA BASED ON PHYSICALLY UNCLONABLE FUNCTION AND OPERATING METHOD OF THE SAME}
본 개시의 기술적 사상은 물리적 복제 방지 기능(physically unclonable function)을 이용하여 키를 생성하는 보안 장치 및 이를 사용하는 방법에 관한 것이다.
최근 유무선 통신 기술 및 스마트 디바이스 관련 기술이 급속도로 발전함에 따라, 이를 안전하게 이용할 수 있는 보안 시스템에 대한 구축 요구 역시 증가하고 있는 실정이다. 통신 시스템 및 스마트 디바이스 보안을 위한 근원적인 방법은 메모리가 아닌 하드웨어 로직으로 구현된 보안 장치를 시스템/디바이스에 내장하는 것이다. 먼저 보안 칩이 구동되고, 그 후 OS 등 소프트웨어가 구동될 때 악성코드의 여부를 검사하거나 인증을 수행하는 방식이다. 최근에는 물리적 복제 방지 기능(physically unclonable function, 이하 'PUF'로 지칭함)을 갖는 보안 기술이 주목을 받고 있는데, PUF를 이용할 경우 보안 장치에 저장되는 인증 키와 같은 중요 키의 복제를 원천적으로 방지할 수 있다.
본 개시의 기술적 사상에 따라 해결하고자 하는 과제는 PUF를 이용하여 키를 생성할 때 마스킹 데이터를 이용하여 키를 마스킹하는 보안 장치 및 이의 동작 방법을 제공하는 것이다. 본 개시의 기술적 사상에 따라 해결하고자 하는 또 다른 과제는 키를 마스킹 하기 위한 마스킹 데이터를 PUF 블록을 이용하여 생성하는 보안 장치 및 이의 동작 방법을 제공하는 것이다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 보안 장치는 복수의 물리적 복제 방지 기능(Physically Unclonable Function; PUF) 셀들을 포함하고, 상기 복수의 PUF 셀들로부터 랜덤 데이터 및 마스킹 데이터를 출력하는 PUF 블록, 상기 랜덤 데이터에 대한 후처리를 통해 키를 생성하는 키 생성기 및 상기 마스킹 데이터를 이용하여 상기 키를 마스킹 후 저장하는 마스킹 모듈;을 포함하고, 상기 랜덤 데이터 및 상기 마스킹 데이터는 서로 다른 PUF 셀로부터 생성되는 것을 특징으로 할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 복수의 물리적 복제 방지 기능(Physically Unclonable Function; PUF) 셀들을 포함하는 PUF 블록을 이용하여 키를 생성하는 방법은 상기 PUF 블록에 포함된 적어도 하나의 제1 PUF 셀을 이용하여 랜덤 데이터를 생성하는 단계, 상기 랜덤 데이터에 대한 후처리를 통해 키를 생성하는 단계, 상기 PUF 블록에 포함된 적어도 하나의 제2 PUF 셀을 이용하여 마스킹 데이터를 생성하는 단계, 상기 마스킹 데이터를 이용하여 상기 키를 마스킹하는 단계 및 상기 마스킹된 키를 키 버퍼에 저장하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 보안 장치는 복수의 물리적 복제 방지 기능(Physically Unclonable Function; PUF) 셀들을 포함하고, 상기 복수의 PUF 셀로부터 랜덤 데이터 및 마스킹 데이터를 출력하는 PUF 블록, 상기 복수의 PUF 셀에 대한 유효성 여부를 판단하고, 판단 결과에 기초하여 유효성 맵을 생성하는 유효성 검출기, 상기 랜덤 데이터에 대한 후처리를 통해 키를 생성하는 키 생성기 및 상기 마스킹 데이터를 이용하여 상기 키를 마스킹 후 저장하는 마스킹 모듈;을 포함하고, 상기 PUF블록은 상기 유효성 맵에 기초하여 상기 마스킹 데이터를 생성하는 것을 특징으로 할 수 있다.
본 개시의 예시적 실시예에 따른 보안 장치 및 이의 동작 방법에 따르면, 키를 생성할 때 마스킹 데이터를 이용하여 키를 마스킹함으로써 공격자로부터 키가 유출되는 것을 방지할 수 있다. 또한, 마스킹 데이터를 PUF 블록으로부터 생성함으로써 별도의 마스킹 데이터를 생성하기 위한 리소스가 불필요하고, 마스킹 데이터가 생성시 마다 랜덤하게 변경되므로 공격자가 마스킹 데이터를 파악하여 키를 알아내는 것이 힘들어 질 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 보안 장치를 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 보안 장치를 나타내는 블록도이다.
도 3은 본 개시의 예시적 실시예에 따른 보안 장치의 동작 방법을 나타내는 순서도이다.
도 4는 본 개시의 예시적 실시예에 따른 마스킹 모듈을 나타내는 도면이다.
도 5는 본 개시의 예시적 실시예에 따른 보안 장치를 나타내는 블록도이다.
도 6은 본 개시의 예시적 실시예에 따른 보안 장치를 나타내는 블록도이다.
도 7은 본 개시의 예시적 실시예에 따른 보안 장치를 나타내는 블록도이다.
도 8은 본 개시의 예시적 실시예에 따른 보안 장치를 나타내는 블록도이다.
도 9는 본 개시의 예시적 실시예에 따른 유효성 맵을 나타내는 도면이다.
도 10은 본 개시의 예시적 실시예에 따른 보안 장치를 나타내는 블록도이다.
도 11은 본 개시의 예시적 실시예에 따른 보안 장치를 나타내는 블록도이다.
도 12는 본 개시의 예시적 실시예에 따른 마스킹 모듈을 나타내는 도면이다.
도 13a는 본 개시의 예시적 실시예에 따른 마스킹 모듈을 나타내는 도면이다.
도 13b는 본 개시의 예시적 실시예에 따른 마스킹 모듈을 나타내는 도면이다.
도 14는 본 개시의 예시적 실시예에 따른 집적 회로를 나타내는 블록도이다.
도 15a 및 도 15b는 본 개시의 예시적 실시예에 따른 보안 장치를 사용하는 환경을 나타내는 블록도이다.
도 16은 본 개시의 예시적 실시예에 따른 컴퓨팅 장치를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시예에 따른 보안 장치를 나타내는 블록도이다.
도 1을 참조하면, 보안 장치(10)는 보안을 위해 고유의 키(KEY)를 생성하고, 생성된 키(KEY)를 이용하여 암호화/복호화 등과 같은 보안 동작을 수행할 수 있다. 보안 장치(10)는 물리적 복제 방지 기능(Physically Unclonable Function; PUF) 회로(100) 및 포스트 프로세서(200)를 포함할 수 있다.
보안 장치(10)는 등록 모드 또는 사용 모드 중 어느 하나로 동작할 수 있다. 등록 모드에서 보안 장치(10)는 PUF 회로(100)로부터 생성되는 랜덤 데이터(RD) 중 유효한 랜덤 데이터를 선별하고, 선별된 랜덤 데이터를 이용하여 생성한 키를 등록할 수 있다. 사용 모드에서 보안 장치(10)는 호스트의 요청에 기인하여 PUF 회로(100)로부터 생성되는 랜덤 데이터(RD)를 이용하여 키를 생성하고, 생성된 키를 호스트에 출력할 수 있다. 일 실시예에서, 등록 모드는 보안 장치(10)의 제작하는 시점에서 한번 수행되고, 사용 모드는 보안 장치(10)를 이용하여 키를 생성하고자 하는 복수의 시점에서 수행될 수 있다.
PUF 회로(100)는 PUF 블록(110)을 포함할 수 있다. PUF 블록(110)은, 랜덤 데이터들(RD)을 생성할 수 있다. 이를 위해, PUF 블록(110)은 복수의 PUF 소스 회로들을 포함할 수 있다. PUF 소스 회로는 물리적 복제방지 기능(PUF)에 따라 고유한 값의 신호를 생성할 수 있고, 본 명세서에서 PUF 셀로서 지칭될 수도 있다. 물리적 복제방지 기능(PUF)은 하드웨어의 본질적인(intrinsic) 특성에 기초하여 하드웨어에 대응하는 고유한(unique) 값을 제공하는 것을 지칭할 수 있다. 예를 들면, 반도체 칩들과 같은 복수의 하드웨어들이 동일한 공정에 의해서 제조될지라도, 복수의 하드웨어들 각각은 물리적으로 완전히 일치하지 아니할 수 있고, 복수의 하드웨어들에서 미약한 변동(variation)들이 발생할 수 있다. 이러한 변동들에 기초하여, 하드웨어의 고유한 값이 추출될 수 있고, 추출된 값은 보안이 필요한 어플리케이션, 예컨대 보안 통신, 보안 데이터 처리, 사용자 식별, 펌웨어(firmware) 업데이트 등에 사용될 수 있다. 본 명세서에서 랜덤 데이터 또는 마스킹 데이터는 상술한 변동들에 기초하여 생성된 고유의 값 또는 고유의 값들의 집합을 의미할 수 있다.
일부 실시예들에서, PUF 블록(110)에 포함되는 PUF 소스 회로는 고유한 값의 비트 신호를 생성하는 임의의 구조를 가질 수 있다. PUF 소스 회로는 비제한적인 예시로서, SRAM(Static Random Access Memory) 셀에 저장된 값에 기초한 SRAM 유형 PUF 구조를 가질 수도 있고, 주파수 변동에 기초한 링 오실레이터 구조를 가질 수도 있고, 누설 전류 등에 기초한 누설 기반 PUF 구조를 가질 수도 있으며, 신호의 경로가 임의로 결정되는 아비터(arbiter) PUF 구조를 가질 수도 있다. 또한, PUF 소스 회로는 로직 게이트들의 문턱 레벨들의 차이에 기초하여 고유한 값의 비트 신호를 생성할 수도 있다.
일 예시에서, PUF 블록(110)은 트랜지스터 문턱전압에 기초하는 PUF 셀, 중개기(arbiter)에 기초하는 PUF 셀(예를 들어, 피드-포워드(feed-forward) PUF 셀, 중개기 PUF 셀들을 병렬로 배치한 XOR PUF 셀, 라이트웨이트(lightweight) PUF 셀, 등), 링 오실레이터(ring oscillator) 기반 PUF 셀, 메모리 기반 PUF 셀(예를 들어, SRAM(static random access memory) PUF 셀, 래치(latch) PUF 셀, 플래시 메모리 PUF 셀, 메미스터(memistor) PUF 셀), 레이저 빔 또는 열 변화에 따른 재구성 가능한(reconfigurable) PUF 셀 등 중 적어도 하나를 포함할 수 있다.
PUF 블록(110)은 복수의 PUF 소스 회로들이 생성하는 신호들에 기초하여 랜덤 데이터(RD)를 생성할 수 있고, 이에 따라 랜덤 데이터(RD)은, 동일한 구조의 다른 보안 장치에 포함된 PUF 블록이 생성하는 랜덤 데이터와 상이할 수 있다. 일부 실시예들에서, PUF 블록(110)은 n-비트의 랜덤 데이터(RD)를 생성할 수 있다(n은 1보다 큰 정수). 예를 들면, PUF 블록(110)은 n개의 PUF 소스 회로들을 포함할 수 있고, 하나의 PUF 소스 회로는 1-비트에 대응하는 랜덤 데이터(RD)를 생성할 수 있다.
본 개시의 일 실시예에 따르면, PUF 블록(110)은 PUF 블록(110)에 포함되는 복수의 PUF 셀들을 이용하여 마스킹 데이터(MD)를 생성하고, 생성된 마스킹 데이터(MD)를 포스트 프로세서(200)에 출력할 수 있다. 마스킹 데이터(MD)는 후술될 바와 같이 키(KEY)를 마스킹할 때 사용될 수 있다.
포스트 프로세서(200)는 키 생성기(210) 및 마스킹 모듈(220)를 포함할 수 있다. 키 생성기(210)는 랜덤 데이터(RD)를 수신하고, 복수의 랜덤 데이터들(RD)에 대한 후 처리를 통해 키(KEY)를 생성할 수 있다. 키(KEY)는 보안을 위해 보안 장치(10)가 고유로 생성하는 암호 키로써 키의 무결성(integrity)이 보장됨에 따라서 암호화 및 복호화의 키 또는 인증 코드와 같은 키로서 사용될 수 있다.
키 생성기(210)는 랜덤 데이터(RD)에 대한 유효성 여부를 판단하고, 유효한 랜덤 데이터만을 이용하여 키(KEY)를 생성할 수 있다. 일 실시예에서, 포스트 프로세서(200)는 키(KEY)에 대한 에러 정정 동작을 수행할 수 있다.
마스킹 모듈(220)은 마스킹 데이터(MD)를 PUF 회로(100)로부터 수신하고, 마스킹 데이터(MD)를 이용하여 키(KEY)를 마스킹할 수 있다. 키(KEY)는 외부(예를 들면, 호스트)에 출력하기 위해 포스트 프로세서(200)에 포함되는 버퍼에 저장될 수 있다. 그런데 버퍼는 분해(Decapsulation) 등을 통해서 공격자에게 노출될 수 있고, 이에 따라서 공격자에게 키가 노출되는 부작용이 발생할 수 있다. 본 개시의 일 실시예에 따르면, 마스킹 모듈(220)은 버퍼에 키(KEY)를 저장하기 전에 마스킹 데이터(MD)를 이용하여 마스킹을 한 후 마스킹된 키를 버퍼에 저장할 수 있다.
본 개시의 기술적 사상에 따르면, 마스킹된 키는 마스킹 데이터(MD)를 확인하지 않으면 키(KEY)로 복원할 수 없으므로 공격자로부터 키(KEY)를 안전하게 보호할 수 있다. 또한, 본 개시의 기술적 사상에 따르면, 마스킹 데이터(MD)는 PUF 블록(110)으로부터 랜덤하게 생성된 데이터를 이용할 수 있고, 이에 따라서 키(KEY)를 생성할 때마다 랜덤하게 변경되는 마스킹 데이터(MD)를 활용함으로써 공격자로부터 키(KEY)를 더욱 안전하게 보호할 수 있다.
도시되지는 않았지만, 포스트 프로세서(200)는 키(KEY)에 대한 에러 정정을 수행하는 에러 정정 모듈을 더 포함할 수 있다. 일 예시에서, 에러 정정 모듈은 에러 정정 코드를 이용하여 키(KEY)에 대한 에러 정정을 수행할 수 있다. 에러 정정 코드는 LDPC(low density parity check) 코드, BCH(Bose, Chaudhuri, Hocquenghem) 코드, 터보 코드(turbo code), 리드-솔로몬 코드(Reed-Solomon code), 콘볼루션 코드(convolution code), RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation), Majority Voting 등의 코디드 모듈레이션(coded modulation)들 중 적어도 하나를 포함할 수 있다.
도 1에서 PUF 회로(100)와 포스트 프로세서(200)는 별도의 구성으로 도시되어 있으나, 이는 일 예시이고, PUF 회로(100)와 포스트 프로세서(200)는 하나의 구성으로 구현될 수 있다. 일 예시에서, PUF 회로(100)는 PUF 블록(110)을 포함하는 하드웨어 구성으로 구현되고, 포스트 프로세서(200)는 PUF 블록(110)을 제어하는 컨트롤러에 의해 수행되는 소프트웨어 또는 하드웨어로서 구현될 수 있다.
도 2는 본 개시의 예시적 실시예에 따른 보안 장치를 나타내는 블록도이다. 도 1과 중복되는 내용은 생략한다.
도 2를 참조하면, PUF 블록(110)은 복수의 PUF 셀들 중 적어도 일부를 이용하여 랜덤 데이터(RD)를 생성하고, 생성된 랜덤 데이터(RD)를 키 생성기(210)에 출력할 수 있다. PUF 블록(110)은 복수의 PUF 셀들 중 적어도 일부를 이용하여 마스킹 데이터(MD)를 생성하고, 생성된 마스킹 데이터(MD)를 마스킹 모듈(220)에 출력할 수 있다.
키 생성기(210)는 랜덤 데이터(RD)에 대한 후처리를 통해 키(KEY)를 생성할 수 있다. 일 예시에서, 키 생성기(210)는 랜덤 데이터(RD) 중 유효한 데이터를 선별하고, 유효한 데이터만을 이용하여 로우 키를 생성할 수 있다. 또한, 키 생성기(210)는 로우 키에 대한 에러 정정을 통해 키(KEY)를 생성할 수 있다. 키 생성기(210)는 생성된 키(KEY)를 마스킹 모듈(220)에 출력할 수 있다.
마스킹 모듈(220)은 마스킹 데이터(MD)를 이용하여 키(KEY)를 마스킹함으로써 마스킹된 키를 생성할 수 있다. 일 실시예에서, 마스킹 모듈(220)은 마스킹 데이터(MD)와 키(KEY)에 대한 로직 연산을 통해서 마스킹된 키를 생성할 수 있고, 일 예시에서, 마스킹 모듈(220)은 마스킹 데이터(MD)와 키(KEY)에 대한 XOR 연산을 통해서 마스킹된 키를 생성할 수 있다.
마스킹 모듈(220)은 키 버퍼(222)를 포함할 수 있다. 키 버퍼(222)는 래치(latch), 레지스터(register), 정적 랜덤 억세스 메모리(Static Random Access Memory;SRAM), 동적 랜덤 억세스 메모리(Dynamic Random Access Memory;DRAM)와 같은 휘발성 메모리를 포함할 수 있다.
마스킹 모듈(220)은 마스킹된 키를 키 버퍼(222)에 저장할 수 있다. 마스킹된 키는 키(KEY)와는 다른 데이터 배열을 갖고 있으므로, 공격자가 키 버퍼(222)를 확인한다고 하더라도 마스킹 데이터(MD) 없이 마스킹 된 키로부터 키(KEY)를 복원할 수 없다. 이에 따라서, 키(KEY)에 대한 보안성이 증가할 수 있다.
마스킹 모듈(220)은 키 버퍼(222)에 저장된 마스킹된 키를 마스킹 데이터(MD)를 이용하여 키(KEY)로 복원할 수 있고, 복원된 키(KEY)를 보안 장치(10)의 외부로 출력할 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 보안 장치의 동작 방법을 나타내는 순서도이다.
도 2 및 도 3을 참조하면, 보안 장치(10)는 PUF 블록(110)에 포함된 적어도 하나의 제1 PUF 셀을 이용하여 랜덤 데이터(RD)를 생성하고(S110), 보안 장치(10)는 랜덤 데이터(RD)에 대한 후처리를 통해 키(KEY)를 생성할 수 있다(S120). 일 예시에서, 보안 장치(10)는 랜덤 데이터(RD) 중 유효한 데이터를 선별하고, 에러 정정을 수행함으로써 키(KEY)를 생성할 수 있다.
보안 장치(10)는 PUF 블록(110)에 포함된 적어도 하나의 제2 PUF 셀을 이용하여 마스킹 데이터(MD)를 생성할 수 있다(S130). 일 실시예에서, 적어도 하나의 제2 PUF 셀은 적어도 하나의 제1 PUF 셀과 상이할 수 있다. 보안 장치(10)는 생성한 마스킹 데이터(MD)를 이용하여 키(KEY)를 마스킹할 수 있다. 일 실시예에서, 보안 장치(10)는 마스킹 데이터(MD)와 키(KEY)에 대한 XOR 연산을 통해 마스킹된 키를 생성할 수 있다.
보안 장치(10)는 마스킹된 키를 키 버퍼(222)에 저장할 수 있다(S150). 보안 장치(10)는 키 버퍼(222)에 저장된 마스킹된 키를 마스킹 데이터(MD)를 이용하여 키(KEY)로 복원하고, 복원된 키(KEY)를 출력할 수 있다(S160). 일 실시예에서, 보안 장치(10)는 마스킹된 키와 마스킹 데이터(MD)에 대한 XOR 연산을 통해 키(KEY)를 복원할 수 있다.
도 4는 본 개시의 예시적 실시예에 따른 마스킹 모듈을 나타내는 도면이다. 도 2와 중복되는 내용은 생략한다.
도 4를 참조하면, 마스킹 모듈(220)은 마스킹 소자(ML), 키 버퍼(222) 및 복원 소자(RL)를 포함할 수 있다. 도 4에서는 마스킹 소자(ML) 및 복원 소자(RL)로서 XOR 로직이 사용되는 실시예가 도시되어 있으나, 본 개시의 기술적 사상은 이에 제한되지 않고, 키(KEY)를 마스킹하고 복원하기 위한 다른 소자가 포함되는 실시예에도 본 개시의 기술적 사상이 적용될 수 있음은 당연하다.
마스킹 모듈(220)은 키(KEY)로서 '1101'을 수신하고, 마스킹 데이터(MD)로서 '0100'을 수신할 수 있다. 마스킹 소자(ML)는 키(KEY)와 마스킹 데이터(MD) 에 대한 XOR 연산을 수행함으로써 '1001'의 마스킹된 키(MK)를 생성할 수 있다. 마스킹 소자(ML)는 마스킹된 키(MK)를 키 버퍼(222)에 저장할 수 있다.
본 개시의 기술적 사상에 따르면, 마스킹 모듈(220)이 PUF 셀로부터 수신한 마스킹 데이터(MD)를 이용하여 키(KEY)를 마스킹함으로써 공격자가 키 버퍼(222)를 공격함으로써 마스킹된 키(MK)를 획득하더라도, 키(KEY)를 안전하게 보호할 수 있고, 이에 따라서 보안 장치(10)의 보안성이 증가할 수 있다.
복원 소자(RL)는 마스킹된 키(MK)를 키 버퍼(222)로부터 수신하고, 마스킹 데이터(MD)를 PUF 블록으로부터 수신할 수 있다. 복원 소자(RL)는 마스킹된 키(MK)와 마스킹 데이터(MD)에 대한 XOR 연산을 통해 '1101'인 키(KEY)를 복원하고, 복원된 키를 보안 장치(10)의 외부로 출력할 수 있다.
도 4에서는 키(KEY)와 마스킹 데이터(MD)가 모두 4비트를 갖는 데이터로 구성되는 예시가 도시되어 있으나, 이는 설명의 편의를 위함이고, 키(KEY)와 마스킹 데이터(MD)는 4비트보다 큰 데이터로 구성될 수 있다. 또한, 도 4에서는 키(KEY)와 마스킹 데이터(MD)가 같은 비트로 구성되어 있는 예시가 도시되어 있으나, 이는 일 예시이고, 또 다른 실시예에서, 마스킹 데이터(MD)의 비트 수는 키(KEY)보다 크거나 적을 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 보안 장치를 나타내는 블록도이다. 도 2와 중복되는 내용은 생략한다.
도 5를 참조하면, 보안 장치(10a)는 PUF 블록(110a), 키 생성기(210a) 및 마스킹 모듈(220a)을 포함하고, PUF 블록(110a)은 제1 PUF 셀들을 포함하는 제1 영역(AR1) 및 제2 PUF 셀들을 포함하는 제2 영역(AR2)을 포함할 수 있다. 도 5에서는 편의상 제1 영역(AR1)과 제2 영역(AR2)이 행 단위로 나누어져 있지만, 이는 일 실시예이고, PUF 블록(110a)을 임의로 나눈 특정 영역과 나머지 영역에도 본 실시예가 적용될 수 있음은 당연하다.
PUF 블록(110a)은 제1 영역(AR1)에 포함된 제1 PUF 셀들을 이용하여 랜덤 데이터(RD)를 생성할 수 있다. 또한, PUF 블록(110a)은 제2 영역(AR2)에 포함된 제2 PUF 셀들을 이용하여 마스킹 데이터(MD)를 생성할 수 있다. 일 예시에서, 제1 영역(AR1)에 포함되는 제1 PUF 셀들은 여러 번 사용해도 출력 데이터가 변하지 않는 스트롱 셀(Strong cell)이고, 제2 영역(AR2)에 포함되는 제2 PUF 셀들은 출력 데이터가 변하는 위크 셀(Weak Cell)일 수 있다. 제1 영역(AR1)에 포함되는 제1 PUF 셀들을 메인 셀(Main cell), 제2 영역(AR2)에 포함되는 제2 PUF 셀들을 리던던트 셀(Redundant Cell)이라고 칭할 수 있다.
상술한 바와 같이, 키 생성기(210a)는 제1 영역(AR1)에서 생성된 랜덤 데이터(RD)를 이용하여 키(KEY)를 생성하고, 마스킹 모듈(220a)은 제2 영역(AR2)에서 생성된 마스킹 데이터(MD)를 이용하여 키(KEY)를 마스킹하고, 이후 상기 마스킹 데이터(MD)를 이용하여 키(KEY)를 복원하여 출력할 수 있다.
본 개시의 일 실시예에 따른 보안 장치(10a)는 하나의 PUF 블록(110a)에 포함된 복수의 PUF 셀들을 영역별로 구분하여 서로 다른 영역에서 랜덤 데이터(RD)와 마스킹 데이터(MD)를 생성할 수 있다. 또한, 보안 장치(10a)는 출력 데이터가 변하는 위크 셀을 이용하여 마스킹 데이터(MD)를 생성할 수 있다. 랜덤 데이터(RD)는 키(KEY)의 고유성 때문에 변하지 않을 필요성이 있으나, 마스킹 데이터(MD)는 키의 생성 시점에만 사용되므로, 마스킹 데이터(MD)를 생성하는 PUF 셀은 시점에 따라서 서로 다른 데이터를 생성하여도 무방할 수 있다. 본 개시의 일 실시예에 따른 보안 장치(10b)는 랜덤 데이터(RD)의 사용에 부적합한 PUF 셀을 마스킹 데이터(MD)를 생성하는데 사용함으로써 별도 리소스 없이 마스킹 동작을 수행할 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 보안 장치를 나타내는 블록도이다. 도 2와 중복되는 내용은 생략한다.
도 6을 참조하면, 보안 장치(10b)는 PUF 블록(110b), 키 생성기(210b) 및 마스킹 모듈(220b)을 포함하고, PUF 블록(110b)은 임의의 제1 영역(AR1)을 포함할 수 있다. PUF 블록(110b)은 복수의 PUF 셀들 중 제1 영역(AR1)에 포함된 제1 PUF 셀들을 이용하여 랜덤 데이터(RD)를 생성할 수 있다. 일 예시에서, 제1 PUF 셀들은 여러 번 사용해도 데이터가 변하지 않는 스트롱 셀일 수 있다.
PUF 블록(110b)은 제1 영역(AR1)을 포함하는 PUF 블록(110b)의 모든 영역(EAR)에 포함된 복수의 PUF 셀들을 이용하여 마스킹 데이터(MD)를 생성할 수 있다.
상술한 바와 같이, 키 생성기(210b)는 제1 영역(AR1)에서 생성된 랜덤 데이터(RD)를 이용하여 키(KEY)를 생성하고, 마스킹 모듈(220b)은 모든 영역(EAR)에서 생성된 마스킹 데이터(MD)를 이용하여 키(KEY)를 마스킹하고, 이후 상기 마스킹 데이터(MD)를 이용하여 키(KEY)를 복원하여 출력할 수 있다.
상술한 바와 같이 마스킹 데이터(MD)를 생성하는 PUF 셀은 시점에 따라서 서로 다른 데이터를 생성하여도 무방할 수 있으므로, 본 개시의 일 실시예에 따른 보안 장치(10b)는 스트롱 셀과 위크 셀을 구분하지 않고 PUF 블록(110b)에 포함된 임의의 PUF 셀로부터 마스킹 데이터(MD)를 생성할 수 있다.
도 7은 본 개시의 예시적 실시예에 따른 보안 장치를 나타내는 블록도이다. 도 2와 중복되는 내용은 생략한다.
도 7을 참조하면, 보안 장치(10c)는 PUF 블록(110c), 키 생성기(210c) 및 마스킹 모듈(220c)을 포함할 수 있다. PUF 블록(110c)은 외부(예를 들면, 호스트)로부터 영역 선택 신호(ASS)를 수신할 수 있다. PUF 블록(110c)은 영역 선택 신호(ASS)에 기초하여 선택된 영역(SAR)에 포함된 PUF 셀들을 이용하여 마스킹 데이터(MD)를 생성할 수 있다.
상술한 바와 같이, 키 생성기(210c)는 PUF 블록(110c)의 특정 영역에서 생성된 랜덤 데이터(RD)를 이용하여 키(KEY)를 생성하고, 마스킹 모듈(220c)은 선택 영역(SAR)에서 생성된 마스킹 데이터(MD)를 이용하여 키(KEY)를 마스킹하고, 이후 상기 마스킹 데이터(MD)를 이용하여 키(KEY)를 복원하여 출력할 수 있다.
호스트의 영역 선택 신호(ASS)에 의해 PUF 블록(110c)이 선택 영역(SAR)을 변경함에 따라서 마스킹 데이터(MD)를 생성하는 PUF 셀들이 임의적으로 변경될 수 있다. 본 개시의 일 실시예에 따르면, 마스킹 데이터(MD)를 생성하는 PUF 셀들이 임의적으로 변경됨에 따라서 마스킹 데이터(MD)의 랜덤성이 강화될 수 있다.
도 8은 본 개시의 예시적 실시예에 따른 보안 장치를 나타내는 블록도이다. 도 2와 중복되는 내용은 생략한다.
도 8을 참조하면, 보안 장치(10d)는 PUF 블록(110d), 유효성 검출기(120d), 키 생성기(210d) 및 마스킹 모듈(220d)을 포함할 수 있다. 유효성 검출기(120d)는 PUF 블록(110d)으로부터 랜덤 데이터(RD)를 수신하고, 랜덤 데이터에 대한 유효성을 검출함으로써 복수의 PUF 셀들 각각에 대응하는 유효성 신호(VS)를 생성할 수 있다. 랜덤 데이터는 인증 키로 사용될 수 있는 패스워드를 생성하기 위해 사용될 수 있는데, 이 경우 패스워드는 그 값이 주변 환경에 따라 변경되지 않는 시불변(time-invariant) 특성을 가져야 한다. 유효성 검출기(120d)는 이러한 디지털 랜덤 데이터의 시불변 특성을 판단할 수 있고, 판단 결과에 기초하여 복수의 유효성 신호들을 생성할 수 있다.
일 예시에서, 유효성 검출기(120d)는 서로 다른 시점에서 PUF 블록(110d)에 포함된 PUF 셀로부터 출력되는 랜덤 데이터(RD)가 동일한지 여부를 기초로 유효성 신호(VS)를 생성할 수 있다. 또 다른 예시에서, 유효성 검출기(120d)는 서로 다른 외부 조건(예를 들면, 온도, 압력, 습도 등)에서 PUF 블록(110d)에 포함된 PUF 셀로부터 출력되는 랜덤 데이터(RD)가 동일한지 여부를 기초로 유효성 신호(VS)를 생성할 수 있다.
유효성 신호(VS)가 유효함을 나타내는 제1 값(예를 들면, '1')인 경우, 대응되는 PUF 셀은 항상 일정한 값을 출력함을 의미할 수 있고, 본 명세서에서는 이와 같이 일정한 값을 출력하는 것을 '안정되다(stable)'로 칭한다. 유효성 신호(VS)가 유효하지 않음을 나타내는 제2 값(예를 들면, '0')인 경우, 대응되는 PUF 셀은 항상 일정한 값을 출력하지 않음을 의미할 수 있고, 본 명세서에서는 이와 같이 일정하지 않은 값을 출력하는 것을 '안정되지 않다(unstable)'로 칭한다.
PUF 블록(110d)은 유효성 신호(VS)를 기초로 유효성 맵(VM)을 생성할 수 있다. 유효성 맵(VM)은 각 PUF 셀로부터 생성되는 신호가 안정된지 여부에 대한 정보를 포함할 수 있다. PUF 블록(110d)은 유효성 맵(VM)을 기초로 랜덤 데이터(RD) 및 마스킹 데이터(MD)를 생성할 수 있다.
일 실시예에서, PUF 블록(110d)은 안정된 PUF 셀(즉, 유효성 신호(VS)가 '1'인 PUF 셀)로부터 랜덤 데이터(RD)를 생성하고, 안정되지 않은 PUF 셀(즉, 유효성 신호(VS)가 '0'인 PUF 셀)로부터 마스킹 데이터(MD)를 생성할 수 있다. 일 실시예에서, PUF 블록(110d)은 안정된 PUF 셀로부터 랜덤 데이터(RD)를 생성하고, 안정되거나 안정되지 않은 PUF 셀로부터 마스킹 데이터(MD)를 생성할 수 있다.
일 실시예에서, PUF 블록(110d)은 유효성 맵(VM)을 등록 과정에서 생성할 수 있고, 이후 유효성 검출기(120d)는 비활성화될 수 있다. PUF 블록(110d)은 유효성 맵(VM)을 저장하고, 저장된 유효성 맵(VM)을 이용하여 키(KEY) 생성 동작을 수행할 수 있다. 도 8에서는 유효성 맵(VM)이 PUF 블록(110d)에 저장되는 것으로 도시되었으나, 이는 일 실시예이고, 또 다른 실시예에서 유효성 맵(VM)은 보안 장치(10d) 내부 또는 외부의 저장 장치에 저장될 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 유효성 맵을 나타내는 도면이다.
도 8 및 도 9를 참조하면, 유효성 맵(VM)은 PUF 셀과 PUF 셀의 유효성에 대한 정보를 포함할 수 있다. 일 예시에서, 제1 PUF 셀(C1)에 대한 유효성 비트는 '1'이므로, 제1 PUF 셀(C1)은 안정될 수 있다. 또한, 제2 PUF 셀(C2) 및 제5 PUF 셀(C5)에 대한 유효성 비트는 '0'이므로, 제2 PUF 셀(C2) 및 제5 PUF 셀(C5)은 안정되지 않을 수 있고, 제3 PUF 셀(C3) 및 제 4 PUF 셀(C4)에 대한 유효성 비트는 '1'이므로, 제3 PUF 셀(C3) 및 제4 PUF 셀(C4)은 안정될 수 있다.
일 실시예에서, PUF 블록(110d)은 안정된 PUF 셀로부터 랜덤 데이터(RD)를 생성하고, 안정되지 않은 PUF 셀로부터 마스킹 데이터(MD)를 생성할 수 있다. 즉, PUF 블록(110d)은 제1 PUF 셀(C1), 제3 PUF 셀(C3) 및 제4 PUF 셀(C4) 중 적어도 일부를 이용하여 랜덤 데이터(RD)를 생성하고, 제2 PUF 셀(C2) 및 제5 PUF 셀(C5) 중 적어도 일부를 이용하여 마스킹 데이터(MD)를 생성할 수 있다.
공격자가 마스킹 데이터(MD)를 예측하게 되면, 이후 공격자는 마스킹 데이터(MD)를 이용하여 마스킹된 데이터를 복원함으로써 키(KEY)를 획득할 수 있다. 본 개시의 일 실시예에 따르면, 마스킹 데이터(MD)가 안정되지 않은 PUF 셀로부터 생성될 수 있고, 키(KEY)를 생성할 때마다 마스킹 데이터(MD)가 변할 수 있다. 이에 따라서, 공격자가 마스킹 데이터(MD)를 예측하는 것이 어려워질 수 있고, 키(KEY)에 대한 보안성이 높아질 수 있다.
도 10은 본 개시의 예시적 실시예에 따른 보안 장치를 나타내는 블록도이다. 도 8와 중복되는 내용은 생략한다.
도 10을 참조하면, 보안 장치(10d)는 PUF 블록(110d), 키 생성기(210d) 및 마스킹 모듈(220d)을 포함할 수 있다. PUF 블록(110d)은 유효성 맵(VM)을 이용하여 안정한 셀(SC)과 불안정한 셀(UC)을 구분할 수 있다.
일 실시예에서, PUF 블록(110d)은 안정 셀(SC) 중 어느 일부를 이용하여 랜덤 데이터(RD)를 생성할 수 있고, 불안정 셀(UC) 중 어느 일부를 이용하여 마스킹 데이터(MD)를 생성할 수 있다.
또 다른 실시예에서, PUF 블록(110d)은 안정 셀(SC) 중 어느 일부를 이용하여 랜덤 데이터(RD)를 생성할 수 있고, 안정 셀(SC) 및 불안정 셀(UC) 중 어느 일부를 이용하여 마스킹 데이터(MD)를 생성할 수 있다.
상술한 바와 같이, 키 생성기(210d)는 안정 셀(SC)에서 생성된 랜덤 데이터(RD)를 이용하여 키(KEY)를 생성하고, 마스킹 모듈(220d)은 불안정 셀(UC)에서 생성된 마스킹 데이터(MD)를 이용하여 키(KEY)를 마스킹하고, 이후 상기 마스킹 데이터(MD)를 이용하여 키(KEY)를 복원하여 출력할 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 보안 장치를 나타내는 블록도이다. 도 2와 중복되는 내용은 생략한다.
도 11을 참조하면, 보안 장치(10e)는 PUF 블록(110e), 추가 PUF 블록(130e), 키 생성기(210e) 및 마스킹 모듈(220e)을 포함할 수 있다. 추가 PUF 블록(130e)은 복수의 PUF 셀들을 포함할 수 있고, PUF 블록(110e)과는 물리적으로 분리될 수 있다. 추가 PUF 블록(130e)은 추가 PUF 블록(130e)에 포함되는 복수의 PUF 셀들로부터 마스킹 데이터(MD)를 생성할 수 있고, 생성된 마스킹 데이터(MD)를 마스킹 모듈(220e)에 출력할 수 있다. 즉, 추가 PUF 블록(130e)은 마스킹 데이터(MD)를 생성하기 위한 전용 PUF 블록일 수 있다.
상술한 바와 같이, 키 생성기(210e)는 PUF 블록(110e)에서 생성된 랜덤 데이터(RD)를 이용하여 키(KEY)를 생성하고, 마스킹 모듈(220e)은 PUF 블록(110e)에서 생성된 마스킹 데이터(MD)를 이용하여 키(KEY)를 마스킹하고, 이후 상기 마스킹 데이터(MD)를 이용하여 키(KEY)를 복원하여 출력할 수 있다.
본 개시의 일 실시예에 따른 보안 장치(10e)는 랜덤 데이터(RD)를 생성하는 PUF 블록(110e)과는 별도로 마스킹 데이터(MD)를 전용하여 생성하는 추가 PUF 블록(130e)을 포함할 수 있고, 이에 따라서, 보안 장치(10e)는 랜덤 데이터(RD) 생성에 영향을 받지 않고도 마스킹 데이터(MD)를 생성할 수 있다.
도 12는 본 개시의 예시적 실시예에 따른 마스킹 모듈을 나타내는 도면이다. 도 4와 중복되는 내용은 생략한다.
도 12를 참조하면, 마스킹 모듈(220f)은 마스킹 소자(ML), 키 버퍼(222f), 복원 소자(RL) 및 마스킹 버퍼(224f)를 포함할 수 있다. 마스킹 모듈(220f)은 키(KEY)로서 '1101'을 수신하고, 마스킹 데이터(MD)로서 '0100'을 수신할 수 있다. 마스킹 모듈(220f)은 수신한 마스킹 데이터(MD)를 마스킹 버퍼(224f)에 저장할 수 있다. 일 실시예에서, 마스킹 버퍼(224f)는 각종 보안 요소에 의해 공격자로부터 보호될 수 있다.
마스킹 소자(ML)는 키(KEY)와 마스킹 버퍼(224f)에 저장된 마스킹 데이터(MD) 에 대한 XOR 연산을 수행함으로써 '1001'의 마스킹된 키(MK)를 생성할 수 있다. 마스킹 소자(ML)는 마스킹된 키(MK)를 키 버퍼(222f)에 저장할 수 있다.
복원 소자(RL)는 마스킹된 키(MK)를 키 버퍼(222f)로부터 수신하고, 마스킹 데이터(ML)를 마스킹 버퍼(224f)로부터 수신할 수 있다. 복원 소자(RL)는 마스킹된 키(MK)와 마스킹 데이터(MD)에 대한 XOR 연산을 통해 '1101'인 키(KEY)를 복원하고, 복원된 키를 보안 장치(10f)의 외부로 출력할 수 있다.
본 개시의 일 실시예에 따르면, 마스킹 버퍼(224f)에 저장된 마스킹 데이터(MD)를 마스킹을 수행할 때 및 복원을 수행할 때 모두 활용될 수 있어서, PUF 블록으로부터 두 번 마스킹 데이터(MD)를 수신하지 않고도 마스킹 동작을 수행할 수 있다.
도 13a는 본 개시의 예시적 실시예에 따른 마스킹 모듈을 나타내는 도면이다. 도 4와 중복되는 내용은 생략한다.
도 13a를 참조하면, 마스킹 모듈(220g)은 마스킹 소자(ML), 키 버퍼(222g) 및 복원 소자(RL)를 포함할 수 있다. 마스킹 모듈(220g)은 키(KEY)로서 '1101'을 수신하고, 마스킹 데이터(MD)로서 '01'을 수신할 수 있다. 마스킹 모듈(220g)은 마스킹 데이터(MD)에 프리셋 비트(PB)를 결합함으로써 키(KEY)와 동일한 비트 수의 새로운 마스킹 데이터(MD')를 생성할 수 있다.
일 실시예에서, 마스킹 모듈(220g)은 프리셋 비트(PB)를 미리 결정할 수 있다. 또 다른 실시예에서, 마스킹 모듈(220g)은 외부(예를 들면, 호스트)로부터 프리셋 비트(PB)를 수신할 수 있다.
마스킹 소자(ML)는 키(KEY)와 새로운 마스킹 데이터(MD')에 대한 XOR 연산을 수행함으로써 '1001'의 마스킹된 키(MK)를 생성할 수 있다. 마스킹 소자(ML)는 마스킹된 키(MK)를 키 버퍼(222g)에 저장할 수 있다.
복원 소자(RL)는 마스킹된 키(MK)를 키 버퍼(222g)로부터 수신하고, 마스킹된 키(MK)와 새로운 마스킹 데이터(ML')에 대한 XOR 연산을 통해 '1101'인 키(KEY)를 복원하고, 복원된 키를 보안 장치(10g)의 외부로 출력할 수 있다.
본 개시의 일 실시예에 따르면, 마스킹 모듈(220g)은 PUF 블록으로부터 키(KEY)보다 적은 비트 수의 마스킹 데이터(MD)를 수신하고, 이를 이용하여 마스킹을 수행할 수 있고, 마스킹 데이터(MD)의 비트 수와 관련 없이 마스킹 동작을 수행할 수 있다.
도 13b는 본 개시의 예시적 실시예에 따른 마스킹 모듈을 나타내는 도면이다. 도 4와 중복되는 내용은 생략한다.
도 13b를 참조하면, 마스킹 모듈(220h)은 마스킹 소자(ML), 키 버퍼(222f) 및 복원 소자(RL)를 포함할 수 있다. 마스킹 모듈(220h)은 키(KEY)로서 '1101'을 수신하고, 마스킹 데이터(MD)로서 '010011'을 수신할 수 있다. 마스킹 모듈(220h)은 마스킹 데이터(MD)에 임의로 적어도 하나의 비트를 삭제함으로써 키(KEY)와 동일한 비트 수의 새로운 마스킹 데이터(MD')를 생성할 수 있다.
일 실시예에서, 마스킹 모듈(220h)은 새로운 마스킹 데이터(MD')를 생성하기 위해 삭제하는 비트를 임의로 결정할 수 있다. 또 다른 실시예에서, 마스킹 모듈(220h)은 새로운 마스킹 데이터(MD')를 생성하기 위해 삭제하는 비트의 순서를 미리 결정할 수 있다.
마스킹 소자(ML)는 키(KEY)와 새로운 마스킹 데이터(MD')에 대한 XOR 연산을 수행함으로써 '1001'의 마스킹된 키(MK)를 생성할 수 있다. 마스킹 소자(ML)는 마스킹된 키(MK)를 키 버퍼(222h)에 저장할 수 있다.
복원 소자(RL)는 마스킹된 키(MK)를 키 버퍼(222h)로부터 수신하고, 마스킹된 키(MK)와 새로운 마스킹 데이터(ML')에 대한 XOR 연산을 통해 '1101'인 키(KEY)를 복원하고, 복원된 키를 보안 장치(10h)의 외부로 출력할 수 있다.
본 개시의 일 실시예에 따르면, 마스킹 모듈(220h)은 PUF 블록으로부터 키(KEY)보다 많은 비트 수의 마스킹 데이터(MD)를 수신하고, 이를 이용하여 마스킹을 수행할 수 있고, 마스킹 데이터(MD)의 비트 수와 관련 없이 마스킹 동작을 수행할 수 있다.
도 14는 본 개시의 예시적 실시예에 따른 집적 회로를 나타내는 블록도이다. 도 1 내지 도 13와 중복되는 내용은 생략된다.
도 14를 참조하면, 보안 장치(10i)는 시도-인증 방식의 물리적 복제방지 기능뿐만 아니라 다른 기능을 수행하는 기능 블록을 포함할 수 있다. 예를 들면, 보안 장치(10i)는 시스템-온-칩(SoC)으로서, PUF 회로(100i) 및 포스트 프로세서(200i) 뿐만 아니라 프로세서(40i)를 더 포함할 수 있다. 프로세서(40i)는 일련의 명령어들을 실행하는 임의의 프로세싱 유닛을 포함할 수도 있고, FPGA(Field Programmable Gate Array), 하드웨어 가속기(hardware accelerator) 등을 포함할 수 있다. 일 실시예에서, 프로세서(40i)는 PUF 회로(100i), 포스트 프로세서(200i) 를 제어하기 위한 각종 제어 신호를 PUF 회로(100i), 포스트 프로세서(200i)에 출력할 수 있다.
프로세서(40i)는 통신 채널(CH)을 통해서 다른 장치와 통신할 수 있고, 키(KEY)를 전송할 수 있다. 통신 채널(CH)은 유선 채널 및/또는 무선 채널을 포함할 수 있다.
도 15a 및 도 15b는 본 개시의 예시적 실시예에 따른 보안 장치를 사용하는 환경을 나타내는 블록도이다. 구체적으로, 도 15a는 등록 단계에서 집적 회로를 사용하는 환경을 나타내고, 도 15b는 사용 단계에서 집적 회로를 사용하는 환경을 나타낸다.
도 15a를 참조하면, 호스트, 예컨대 집적 회로들(IC1 내지 ICm)의 제조자가 운영하는 컴퓨팅 시스템(20j)은 집적 회로들(IC1 내지 ICm) 각각과 통신할 수 있다(m은 1보다 큰 정수). 예를 들면, 컴퓨팅 시스템(20j)은 제1 집적 회로(IC1)를 제어함으로써 유효성 맵을 생성하고, 생성된 유효성 맵을 제1 집적 회로(IC1)에 저장할 수 있다. 일 실시예에서, 집적 회로들(IC1 내지 ICm) 각각은 도 1 내지 도 13에서 상술한 방법에 따라서 등록 모드로서 동작할 수 있다.
도 15b를 참조하면, 컴퓨팅 시스템(20k)은, 네트워크(30)를 통해서 장치들(10_1 내지 10_m)과 통신할 수 있다. 컴퓨팅 시스템(20k)은 암호화를 이용하여 네트워크(30)를 통해 장치들(10_1 내지 10_m)과 통신하고자 하는 어떤 시스템을 나타낼 수 있다. 네트워크(30)는 임의의 네트워크를 포함할 수 있고, 비제한적인 예시로서 셀룰러(cellular) 네트워크, LAN(Local Area Network), WLAN(Wireless Local Area Network) 등을 포함할 수 있다. 또한, 컴퓨팅 시스템(20k) 및 장치들(10_1 내지 10_m)은 유선 및/또는 무선 통신에 의해서 상호 통신할 수 있다.
장치들(10_1 내지 10_m)은 등록 과정에서 생성한 유효성 맵 및 핼퍼 데이터를 기초로 네트워크(30)를 통해서 컴퓨팅 시스템(20k)에 키를 제공하고, 컴퓨팅 시스템(20e)은 키를 이용하여 암호화를 수행함으로써 장치들(10_1 내지 10_m)과 통신할 수 있다. 일 실시예에서, 장치들(10_1 내지 10_m)에 포함된 집적 회로들(IC1 내지 ICm) 각각은 도 1 내지 도 13에서 상술한 방법에 따라서 사용 모드로서 동작할 수 있다.
도 16은 본 개시의 예시적 실시예에 따른 컴퓨팅 장치를 나타내는 블록도이다. 상세하게는, 도 16은 도 1 내지 도 14에서 상술한 보안 장치를 포함하는 컴퓨팅 장치를 나타낸다.
도 16을 참조하면, 컴퓨팅 장치(3000)는 프로세서(3100), 워킹 메모리(3200), PUF 장치(3300), 암호화 프로세서(3400), NVM 인터페이스(3500), NVM(3600), 및 유저 인터페이스(3700)를 포함할 수 있다.
프로세서(3100)는 컴퓨팅 장치(3000)의 전반적인 동작을 제어할 수 있다. 프로세서(3100)는 중앙 처리 유닛으로서 다양한 종류의 연산들을 수행할 수 있다. 예를 들어, 프로세서(3100)는 적어도 하나 이상의 프로세서 코어들을 포함할 수 있다.
워킹 메모리(3200)는 프로세서(3100)와 데이터를 교환할 수 있다. 워킹 메모리(3200)는 컴퓨팅 장치(3000)의 동작에 이용되는 데이터를 임시로 저장할 수 있다. 예를 들어, 워킹 메모리(3200)는 DRAM(dynamic random access memory), SRAM 등과 같은 고속의 메모리를 포함할 수 있다.
PUF 장치(3300)는 도 1 내지 도 14에서 상술한 PUF 회로(100)일 수 있다. PUF 장치(3300)는 보안에 필요한 키를 생성할 수 있다. PUF 장치(3300)는 하드웨어, 소프트웨어, 또는 펌웨어로 구현될 수 있다. 암호화 프로세서(3400)는 PUF 장치(3300)에서 출력된 키를 이용하여 암호화 및 복호화 연산을 수행할 수 있다.
NVM 인터페이스(3500)는 프로세서(3100), PUF 장치(3300), 또는 암호화 프로세서(3400)의 제어에 따라 NVM(3600)과 데이터를 교환할 수 있다. NVM(3600)은 전원 공급과 관계없이 보존이 필요한 데이터를 저장할 수 있다. 일 실시예에서, NVM(3600)에는 도 1 내지 도 14에서 전술한 유효성 맵이 저장될 수 있다.
유저 인터페이스(3700)는 프로세서(3100)의 제어에 따라 사용자와 컴퓨팅 장치(3000) 사이의 통신을 중계할 수 있다. 유저 인터페이스(3700)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서 등의 입력 인터페이스를 포함할 수 있다. 나아가, 유저 인터페이스(3700)는 LCD(Liquid Crystal Display) 장치, LED(Light Emitting Diode) 표시 장치, OLED(Organic LED) 표시 장치, AMOLED(Active Matrix OLED) 표시 장치, 스피커, 모터 등의 출력 인터페이스를 포함할 수 있다.
버스(3800)는 컴퓨팅 장치(3000)의 구성 요소들 사이에서 통신 경로를 제공할 수 있다. 컴퓨팅 장치(3000)의 구성 요소들은 버스 포맷에 따라 서로 데이터를 주고 받을 수 있다. 실시 예로서, 버스 포맷은 USB(universal serial bus), SCSI(small computer system interface), PCIe(peripheral component interconnect express), ATA(advanced technology attachment), PATA(parallel ATA), SATA(serial ATA), SAS(serial attached SCSI), IDE(integrated drive electronics) 등을 포함할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 복수의 물리적 복제 방지 기능(Physically Unclonable Function; PUF) 셀들을 포함하고, 상기 복수의 PUF 셀들로부터 랜덤 데이터 및 마스킹 데이터를 출력하는 PUF 블록;
    상기 랜덤 데이터에 대한 후처리를 통해 키를 생성하는 키 생성기; 및
    상기 마스킹 데이터를 이용하여 상기 키를 마스킹 후 저장하는 마스킹 모듈;을 포함하고,
    상기 랜덤 데이터 및 상기 마스킹 데이터는 서로 다른 PUF 셀로부터 생성되는 것을 특징으로 하는 보안 장치.
  2. 제1항에 있어서,
    상기 PUF 블록은 복수의 제1 PUF 셀들로 구성되는 제1 영역 및 복수의 제2 PUF 셀들로 구성되고, 상기 제1 영역과 상이한 제2 영역을 포함하고,
    상기 랜덤 데이터는 상기 복수의 제1 PUF 셀들 중 적어도 일부로부터 생성되고,
    상기 마스킹 데이터는 상기 복수의 제2 PUF 셀들 중 적어도 일부로부터 생성되는 것을 특징으로 하는 보안 장치.
  3. 제1항에 있어서,
    상기 PUF 블록은 복수의 제1 PUF 셀들로 구성되는 제1 영역 및 복수의 제2 PUF 셀들로 구성되고, 상기 제1 영역과 상이한 제2 영역을 포함하고,
    상기 랜덤 데이터는 상기 복수의 제1 PUF 셀들 중 적어도 일부로부터 생성되고,
    상기 마스킹 데이터는 상기 복수의 제1 PUF 셀들 및 상기 복수의 제2 PUF 셀들 중 적어도 일부로부터 생성되는 것을 특징으로 하는 보안 장치.
  4. 제1항에 있어서,
    상기 복수의 PUF 셀들의 유효성 여부를 판단하고, 판단 결과를 유효성 맵으로서 생성하는 유효성 검출기;를 더 포함하는 보안 장치.
  5. 제4항에 있어서,
    상기 PUF 블록은 상기 유효성 검출기로부터 상기 유효성 맵을 수신하고,
    상기 유효성 맵에 기초하여 안정한 PUF 셀들로부터 상기 랜덤 데이터를 생성하고, 불안정한 PUF 셀들로부터 상기 마스킹 데이터를 생성하는 것을 특징으로 하는 보안 장치.
  6. 제4항에 있어서,
    상기 PUF 블록은 상기 유효성 검출기로부터 상기 유효성 맵을 수신하고,
    상기 유효성 맵에 기초하여 안정한 PUF 셀들로부터 상기 랜덤 데이터를 생성하고, 상기 복수의 PUF 셀들 중 적어도 일부로부터 상기 마스킹 데이터를 생성하는 것을 특징으로 하는 보안 장치.
  7. 제1항에 있어서,
    상기 PUF 블록은 영역 선택 신호를 수신하고, 상기 복수의 PUF 셀들 중 상기 영역 선택 신호에 기초하여 선택된 영역에 포함된 PUF 셀들로부터 상기 마스킹 데이터를 생성하는 것을 특징으로 하는 보안 장치.
  8. 제1항에 있어서,
    복수의 추가 PUF 셀들을 포함하는 추가 PUF 블록;을 더 포함하고,
    상기 마스킹 데이터는 상기 복수의 추가 PUF 셀들로부터 생성되는 것을 특징으로 하는 보안 장치.
  9. 제1항에 있어서,
    상기 마스킹 모듈은
    상기 키 생성기로부터 키를 수신하고, 상기 키와 상기 마스킹 데이터를 이용하여 마스킹된 키를 생성하는 마스킹 소자;
    상기 마스킹된 키를 생성하는 키 버퍼;및
    상기 마스킹 데이터를 이용하여 상기 마스킹된 키를 상기 키로 복원하는 복원 소자;를 포함하는 것을 특징으로 하는 보안 장치.
  10. 제9항에 있어서,
    상기 마스킹 소자는 상기 키와 상기 마스킹 데이터에 대한 XOR 연산을 통해 상기 마스킹된 키를 생성하고,
    상기 복원 소자는 상기 마스킹된 키와 상기 마스킹 데이터에 대한 XOR 연산을 통해 상기 키를 복원하는 것을 특징으로 하는 보안 장치.
  11. 제1항에 있어서,
    상기 마스킹 모듈은,
    상기 마스킹 데이터와 미리 결정된 프리셋 비트를 결합함으로써 새로운 마스킹 데이터를 생성하고, 상기 새로운 마스킹 데이터를 이용하여 상기 키를 마스킹하는 것을 특징으로 하는 보안 장치.
  12. 제1항에 있어서,
    상기 마스킹 모듈은,
    상기 마스킹 데이터 중 적어도 일부 비트를 삭제함으로써 새로운 마스킹 데이터를 생성하고, 상기 새로운 마스킹 데이터를 이용하여 상기 키를 마스킹하는 것을 특징으로 하는 보안 장치.
  13. 복수의 물리적 복제 방지 기능(Physically Unclonable Function; PUF) 셀들을 포함하는 PUF 블록을 이용하여 키를 생성하는 방법에 있어서,
    상기 PUF 블록에 포함된 적어도 하나의 제1 PUF 셀을 이용하여 랜덤 데이터를 생성하는 단계;
    상기 랜덤 데이터에 대한 후처리를 통해 키를 생성하는 단계;
    상기 PUF 블록에 포함된 적어도 하나의 제2 PUF 셀을 이용하여 마스킹 데이터를 생성하는 단계;
    상기 마스킹 데이터를 이용하여 상기 키를 마스킹하는 단계;
    상기 마스킹된 키를 키 버퍼에 저장하는 단계;를 포함하는 보안 키 생성 방법.
  14. 제13항에 있어서,
    상기 적어도 하나의 제1 PUF 셀로 구성되는 상기 PUF 블록의 제1 영역에 포함되고, 상기 적어도 하나의 제2 PUF 셀은 상기 PUF 블록의 상기 제1 영역과 상이한 제2 영역에 포함되는 것을 특징으로 하는 보안 키 생성 방법.
  15. 제13항에 있어서,
    상기 적어도 하나의 제1 PUF 셀로 구성되는 상기 PUF 블록의 제1 영역에 포함되고, 상기 적어도 하나의 제2 PUF 셀은 상기 PUF 블록의 제3 영역에 포함되고,
    상기 제1 영역은 상기 제3 영역에 포함되는 것을 특징으로 하는 보안 키 생성 방법.
  16. 제13항에 있어서,
    상기 PUF 블록에 포함되는 복수의 PUF 셀들의 유효성 여부를 판단하는 단계;및
    판단 결과를 유효성 맵으로서 생성하는 단계;를 더 포함하는 보안 키 생성 방법.
  17. 제16항에 있어서,
    상기 적어도 하나의 제1 PUF 셀들은 상기 유효성 맵에 기초하여 안정한 셀들로 판별된 셀들을 포함하고, 상기 적어도 하나의 제2 PUF 셀들은 상기 유효성 맵에 기초하여 안정하지 않은 셀들로 판별된 셀들을 포함하는 것을 특징으로 하는 보안 키 생성 방법.
  18. 제13항에 있어서,
    상기 적어도 하나의 제2 PUF 셀들은 상기 PUF 블록과 상이한 추가 PUF 블록에 포함되는 것을 특징으로 하는 보안 키 생성 방법.
  19. 제13항에 있어서,
    상기 키와 상기 마스킹 데이터에 대한 XOR 연산을 통해 상기 마스킹된 키를 생성하는 단계;및
    상기 마스킹 데이터와 상기 마스킹된 키에 대한 XOR 연산을 통해 상기 키를 복원하는 단계;를 더 포함하는 보안 키 생성 방법.
  20. 복수의 물리적 복제 방지 기능(Physically Unclonable Function; PUF) 셀들을 포함하고, 상기 복수의 PUF 셀로부터 랜덤 데이터 및 마스킹 데이터를 출력하는 PUF 블록;
    상기 복수의 PUF 셀에 대한 유효성 여부를 판단하고, 판단 결과에 기초하여 유효성 맵을 생성하는 유효성 검출기;
    상기 랜덤 데이터에 대한 후처리를 통해 키를 생성하는 키 생성기; 및
    상기 마스킹 데이터를 이용하여 상기 키를 마스킹 후 저장하는 마스킹 모듈;을 포함하고,
    상기 PUF블록은 상기 유효성 맵에 기초하여 상기 마스킹 데이터를 생성하는 것을 특징으로 하는 보안 장치.
KR1020200011354A 2020-01-30 2020-01-30 물리적 복제 방지 기능에 기초하여 마스킹 데이터를 생성하는 보안 장치 및 이의 동작 방법 KR20210097537A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200011354A KR20210097537A (ko) 2020-01-30 2020-01-30 물리적 복제 방지 기능에 기초하여 마스킹 데이터를 생성하는 보안 장치 및 이의 동작 방법
US17/020,287 US11689376B2 (en) 2020-01-30 2020-09-14 Security device for generating masking data based on physically unclonable function and operating method thereof
CN202110073538.5A CN113204768A (zh) 2020-01-30 2021-01-20 生成掩蔽数据的安全设备及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200011354A KR20210097537A (ko) 2020-01-30 2020-01-30 물리적 복제 방지 기능에 기초하여 마스킹 데이터를 생성하는 보안 장치 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20210097537A true KR20210097537A (ko) 2021-08-09

Family

ID=77025248

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200011354A KR20210097537A (ko) 2020-01-30 2020-01-30 물리적 복제 방지 기능에 기초하여 마스킹 데이터를 생성하는 보안 장치 및 이의 동작 방법

Country Status (3)

Country Link
US (1) US11689376B2 (ko)
KR (1) KR20210097537A (ko)
CN (1) CN113204768A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11502832B2 (en) * 2020-06-04 2022-11-15 PUFsecurity Corporation Electronic device capable of protecting confidential data

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008056612A1 (fr) 2006-11-06 2008-05-15 Panasonic Corporation Appareil de sécurité d'informations
US20150188717A1 (en) 2013-12-26 2015-07-02 Wei Wu Physically unclonable function redundant bits
KR102201642B1 (ko) * 2014-11-28 2021-01-13 삼성전자주식회사 Puf 회로 및 그것의 키 등록 방법
US9703989B1 (en) * 2014-12-23 2017-07-11 Altera Corporation Secure physically unclonable function (PUF) error correction
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
US10680809B2 (en) 2016-08-04 2020-06-09 Macronix International Co., Ltd. Physical unclonable function for security key
US10547460B2 (en) 2016-11-18 2020-01-28 Qualcomm Incorporated Message-based key generation using physical unclonable function (PUF)
JP6882666B2 (ja) * 2017-03-07 2021-06-02 富士通株式会社 鍵生成装置および鍵生成方法
KR101974465B1 (ko) 2017-05-25 2019-08-23 한밭대학교 산학협력단 노이즈가 삽입된 물리적 복제 불가 함수 시스템
US10754619B2 (en) * 2018-09-27 2020-08-25 Intel Corporation Self-calibrated von-neumann extractor
US11394565B2 (en) 2019-06-18 2022-07-19 Intel Corporation Asymmetric device attestation using physically unclonable functions

Also Published As

Publication number Publication date
US20210243042A1 (en) 2021-08-05
CN113204768A (zh) 2021-08-03
US11689376B2 (en) 2023-06-27

Similar Documents

Publication Publication Date Title
US10476681B2 (en) Semiconductor device generating security key, method of generating security key, and method of enrolling security key
US11650741B2 (en) Securely booting a processor complex via a securely bootable subsystem
US20230281292A1 (en) Secure hardware signature and related methods and applications
US9916452B2 (en) Self-contained cryptographic boot policy validation
US11516026B2 (en) Security device generating key based on physically unclonable function and method of operating the same
CN106470102B (zh) 密码装置、具有密码装置的存储装置、其加密和解密方法
CN109643360B (zh) 用于储存于集成电路上的认证固件的系统和方法
CN112149146A (zh) 确定性加密密钥轮换
US11818248B2 (en) Encoder and decoder using physically unclonable functions
KR20210097537A (ko) 물리적 복제 방지 기능에 기초하여 마스킹 데이터를 생성하는 보안 장치 및 이의 동작 방법
US20200265137A1 (en) Memory device and system
KR102516190B1 (ko) 보안 키를 생성하는 반도체 장치, 보안 키 생성 방법, 및 보안 키 등록 방법
Rivera et al. Run-time hardware Trojan detection and recovery for third-party IPs in SoC FPGAs
US20200226260A1 (en) Firmware resiliency mechanism
GB2605168A (en) An integrated circuit having a secure area
TW202240412A (zh) 安全之全晶片通信