KR20200052808A - 시도 응답 방식의 물리적 복제방지 기능을 위한 집적 회로 및 이를 사용하는 방법 - Google Patents

시도 응답 방식의 물리적 복제방지 기능을 위한 집적 회로 및 이를 사용하는 방법 Download PDF

Info

Publication number
KR20200052808A
KR20200052808A KR1020190045135A KR20190045135A KR20200052808A KR 20200052808 A KR20200052808 A KR 20200052808A KR 1020190045135 A KR1020190045135 A KR 1020190045135A KR 20190045135 A KR20190045135 A KR 20190045135A KR 20200052808 A KR20200052808 A KR 20200052808A
Authority
KR
South Korea
Prior art keywords
response
internal
attempt
integrated circuit
puf
Prior art date
Application number
KR1020190045135A
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 US16/567,751 priority Critical patent/US11277272B2/en
Publication of KR20200052808A publication Critical patent/KR20200052808A/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • 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)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

시도 응답 방식의(challenge-response) 물리적 복제방지 기능(Physically Unclonable Function; PUF)을 위한 집적 회로는, 본 개시의 예시적 실시예에 따라, n이 1보다 큰 정수일 때, 응답을 요청하는 시도에 대응하는 n-비트의 내부 응답을 출력하는 PUF 블록, 및 내부 응답의 해밍 가중치(Hamming weight)를 계산하고, 해밍 가중치를 적어도 하나의 기준치와 비교함으로써 응답을 출력하는 응답 생성기를 포함할 수 있다.

Description

시도 응답 방식의 물리적 복제방지 기능을 위한 집적 회로 및 이를 사용하는 방법{INTEGRATED CIRCUIT FOR CHALLENGE-RESPONSE PHYSICALLY UNCLONABLE FUNCTION AND METHOD FOR USING THE SAME}
본 개시의 기술적 사상은 물리적 복제방지 기능(physically unclonable function)에 관한 것으로서, 자세하게는 시도 응답 방식의 물리적 복제방지 기능을 위한 집적 회로 및 이를 사용하는 방법에 관한 것이다.
시도-응답 인증(challenge-response authentication)은 인증이 요구되는 객체, 예컨대 장치에 시도를 제공하고 장치가 제공하는 응답을 확인함으로써 장치를 인증할 수 있다. 이러한 시도-응답 인증은, 장치가 포함하는 고유 정보만을 사용하는 인증 방식과 비교할 때 높은 보안성을 제공할 수 있다. 성공적인 시도-응답 인증을 위하여, 장치는 시도에 대한 정확한 응답을 생성하는 것뿐만 아니라 다수의 시도 및 응답 쌍들을 지원하는 것이 요구될 수 있다.
본 개시의 기술적 사상은 시도 응답 방식의 물리적 복제방지 기능을 위한 집적 회로 및 이를 사용하는 방법에 관한 것으로서, 물리적 복제방지 기능을 시도-응답 인증을 위해 사용하는 구조를 제공하는 집적 회로 및 이를 사용하는 방법에 관한 것이다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따라 시도 응답 방식의(challenge-response) 물리적 복제방지 기능(Physically Unclonable Function; PUF)을 위한 집적 회로는 n이 1보다 큰 정수일 때, 응답을 요청하는 시도에 대응하는 n-비트의 내부 응답을 출력하는 PUF 블록, 및 내부 응답의 해밍 가중치(Hamming weight)를 계산하고, 해밍 가중치를 적어도 하나의 기준치와 비교함으로써 응답을 출력하는 응답 생성기를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따라 시도 응답 방식의 물리적 복제방지 기능을 위한 집적 회로는, n이 1보다 큰 정수일 때, 응답을 요청하는 시도에 따라 변동하는 n-비트의 내부 응답을 출력하는 PUF 블록, 및 내부 응답에서 특정 값을 가지는 비트를 카운트하고, 카운트 결과를 적어도 하나의 기준치와 비교함으로써 응답을 출력하는 응답 생성기를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따라 물리적 복제방지 기능을 포함하는 집적 회로를 사용하는 시도 응답 인증(challenge-response authentication) 방법은, 제1 시도를 생성하는 동작, 집적 회로에 제1 시도를 제공하는 동작, 집적 회로로부터 제1 시도에 대응하는 제1 응답을 획득하는 동작, 및 제1 시도에 응답하여 집적 회로에서 생성되는 n-비트의 제1 내부 응답의 제1 해밍 가중치에 기초하여 제1 응답을 평가하는 동작을 포함할 수 있다.
본 개시의 예시적 실시예에 따른 집적 회로 및 이를 사용하는 방법은, 복제가 아니한 물리적 복제방지 기능을 사용하여, 시도-응답 인증을 구현할 수 있다.
또한, 본 개시의 예시적 실시예에 따른 집적 회로 및 이를 사용하는 방법은, 인증이 요구되는 장치에 시도-응답 인증을 위한 정보를 저장하는 대신 물리적 복제방지 기능을 사용함으로써 향상된 보안성을 달성할 수 있다.
또한, 본 개시의 예시적 실시예에 따른 집적 회로 및 이를 사용하는 방법은, 감소된 비용으로 시도 응답 방식의 물리적 복제방지 기능이 구현될 수 있다.
본 개시의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 본 개시의 예시적 실시예들에 대한 기재로부터 본 개시의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 집적 회로를 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따라 도 1의 응답 생성기의 동작의 예시를 나타내는 그래프이다.
도 3은 본 개시의 예시적 실시예에 따른 응답 생성기를 나타내는 블록도이다.
도 4는 본 개시의 예시적 실시예에 따른 응답 생성기의 동작의 예시를 나타내는 그래프이다.
도 5a 및 도 5b는 본 개시의 예시적 실시예들에 따라 집적 회로의 예시들을 나타내는 블록도들이다.
도 6은 본 개시의 예시적 실시예에 따른 PUF 블록을 나타내는 블록도이다.
도 7은 본 개시의 예시적 실시예에 따른 해밍 가중치 생성기를 나타내는 블록도이다.
도 8은 본 개시의 예시적 실시예에 따른 직렬화기를 나타내는 블록도이다.
도 9는 본 개시의 예시적 실시예에 따른 직렬화기의 동작의 예시를 나타내는 타이밍도이다.
도 10은 본 개시의 예시적 실시예에 따른 해밍 가중치 생성기를 나타내는 블록도이다.
도 11a 및 도 11b는 본 개시의 예시적 실시예들에 따른 집적 회로들을 나타내는 블록도들이다.
도 12a 및 도 12b는 본 개시의 예시적 실시예들에 따라 집적 회로를 사용하는 환경을 나타내는 블록도이다.
도 13은 본 개시의 예시적 실시예에 따라 시도 응답 방식의 물리적 복제방지 기능을 위한 집적 회로를 사용하는 방법을 시간의 흐름에 따라 나타내는 순서도이다.
도 14a, 도 14b 및 도 14c는 본 개시의 예시적 실시예들에 따라 시도 응답 방식의 물리적 복제방지 기능을 위한 집적 회로를 사용하는 방법의 예시들을 시간의 흐름에 따라 나타내는 순서도들이다.
도 15a 및 도 15b는 본 개시의 예시적 실시예들에 따른 집적 회로의 예시들을 나타내는 블록도이다.
도 1은 본 개시의 예시적 실시예에 따른 집적 회로(1)를 나타내는 블록도이고, 도 2는 본 개시의 예시적 실시예에 따라 도 1의 응답 생성기(20)의 동작의 예시를 나타내는 그래프이다. 집적 회로(1)는 시도-응답 인증(challenge-response authentication)을 위한 집적 회로 또는 장치로서 지칭될 수 있다. 도 1에 도시된 바와 같이, 집적 회로(1)는 시도(CHA)에 대응하는 응답(RES)을 생성할 수 있다. 일부 실시예들에서, 집적 회로(1)는 반도체 공정을 통해서 제조될 수 있고, 집적 회로(1)의 구성요소들은, 단일 패키지에 패키징될 수도 있고, 2이상의 패키지들에 각각 패키징될 수도 있다.
도 1을 참조하면, 집적 회로(1)는 PUF 블록(10) 및 응답 생성기(20)를 포함할 수 있다. PUF 블록(10)은, 일부 실시예들에서 집적 회로(1)의 외부로부터 시도(CHA)를 수신할 수도 있고, 일부 실시예들에서 집적 회로(1)에 포함된 다른 구성요소로부터 시도(CHA)를 수신할 수도 있으며, 일부 실시예들에서 시도(CHA)로부터 가공된 신호(예컨대, 도 5a 및 도 5b의 I_CHA)를 수신할 수도 있다. 또한, 응답 생성기(20)가 생성한 응답(RES)은, 일부 실시예들에서 집적 회로(1)의 외부로 출력될 수도 있고, 일부 실시예들에서 집적 회로(1)에 포함된 다른 구성요소에 제공될 수도 있다.
PUF 블록(10)은 시도(CHA)에 대응하는 내부 응답(I_RES)을 생성할 수 있다. PUF 블록(10)은 복수의 PUF 소스 회로들(예컨대, 도 5a의 54a_1 등)을 포함할 수 있다. PUF 소스 회로는 물리적 복제방지 기능(Physically Unclonable Function; PUF)에 따라 고유한 값의 신호를 생성할 수 있고, 본 명세서에서 PUF 셀로서 지칭될 수도 있다. 물리적 복제방지 기능(PUF)은 하드웨어의 본질적인(intrinsic) 특성에 기초하여 하드웨어에 대응하는 고유한(unique) 값을 제공하는 것을 지칭할 수 있다. 예를 들면, 반도체 칩들과 같은 복수의 하드웨어들이 동일한 공정에 의해서 제조될지라도, 복수의 하드웨어들 각각은 물리적으로 완전히 일치하지 아니할 수 있고, 복수의 하드웨어들에서 미약한 변동(variation)들이 발생할 수 있다. 이러한 변동들에 기초하여, 하드웨어의 고유한 값이 추출될 수 있고, 추출된 값은 보안이 필요한 어플리케이션, 예컨대 보안 통신, 보안 데이터 처리, 사용자 식별, 펌웨어(firmware) 업데이트 등에 사용될 수 있다.
일부 실시예들에서, PUF 블록(10)에 포함되는 PUF 소스 회로는 고유한 값의 비트 신호를 생성하는 임의의 구조를 가질 수 있다. PUF 소스 회로는 비제한적인 예시로서, SRAM(Static Random Access Memory) 셀에 저장된 값에 기초한 SRAM 유형 PUF 구조를 가질 수도 있고, 주파수 변동에 기초한 링 오실레이터 구조를 가질 수도 있고, 누설 전류 등에 기초한 누설 기반 PUF 구조를 가질 수도 있으며, 신호의 경로가 임의로 결정되는 아비터(arbiter) PUF 구조를 가질 수도 있다. 또한, 도 5a를 참조하여 후술되는 바와 같이, PUF 소스 회로는 로직 게이트들, 예컨대 NAND 게이트, NOR 게이트, 인버터(INV) 등의 문턱 레벨들의 차이에 기초하여 고유한 값의 비트 신호를 생성할 수도 있다.
PUF 블록(10)은 복수의 PUF 소스 회로들이 생성하는 신호들 및 시도(CHA)에 기초하여 내부 응답(I_RES)을 생성할 수 있고, 이에 따라 내부 응답(I_RES)은, 동일한 구조의 다른 집적 회로에 포함된 PUF 블록이 동일한 시도(CHA)로부터 생성하는 내부 응답과 상이할 수 있다. 일부 실시예들에서, PUF 블록(10)은 n-비트의 내부 응답(I_RES)을 생성할 수 있다(n은 1보다 큰 정수). 예를 들면, PUF 블록(10)은 n개의 PUF 소스 회로들을 포함할 수 있고, 하나의 PUF 소스 회로는 1-비트에 대응하는 비트 신호를 생성할 수 있다. PUF 블록(10)의 예시들은 도 5a, 도 5b 및 도 6을 참조하여 후술될 것이다.
응답 생성기(20)는 내부 응답(I_RES)을 수신할 수 있고, 내부 응답(I_RES)으로부터 응답(RES)을 생성할 수 있다. 일부 실시예들에서, 응답 생성기(20)는 n-비트의 내부 응답(I_RES)의 해밍 가중치(Hamming weight)에 기초하여 응답(RES)을 생성할 수 있다. 해밍 가중치(Hamming weight)는 제로(zero) 심볼로부터 상이한 심볼들의 개수를 지칭할 수 있고, 예컨대 멀티-비트 신호에서는 '1'의 개수를 지칭할 수 있다. 이에 따라, n-비트의 내부 응답(I_RES)의 해밍 가중치(HW)는 0 내지 n의 값을 가질 수 있다. 전술된 바와 같이, PUF 블록(10)이 생성하는 내부 응답(I_RES)은 다른 집적 회로에서 생성되는 내부 응답과 상이할 수 있고, 이에 따라 집적 회로들에서 생성되는 내부 응답들의 해밍 가중치들은 0 내지 n사이에서 산포를 가질 수 있다. 예를 들면, 도 2에 도시된 바와 같이, 근사적으로 n/2인 해밍 가중치(HW)를 가지는 내부 응답(I_RES)을 생성하는 집적 회로들의 수가 상대적으로 많은 한편, 근사적으로 0 또는 n인 해밍 가중치(HW)를 가지는 내부 응답(I_RES)을 생성하는 집적 회로들의 수가 상대적으로 적을 수 있다.
시도-응답 인증의 성공을 위하여, 동일한 시도에 대응하는 일정한 응답이 생성될 것이 요구될 수 있다. 응답 생성기(20)는, 전술된 바와 같이 내부 응답(I_RES)의 해밍 가중치(HW)에 기초하여 응답(RES)을 생성할 수 있고, 이에 따라 PUF 블록(10)에서 발생할 수 있는 오류가 누적되는 것을 방지할 수 있다. 예를 들면, PUF 블록(10)에 포함된 복수의 PUF 소스 회로들 중 적어도 일부는 일정한 값의 비트 신호를 생성할 수 있는 한편, 다른 적어도 일부는 조건(예컨대, 시간, 온도, 전압 등)에 따라 변동하는 비트 신호를 생성할 수 있다. 본 명세서에서, 전자는 안정(stable) PUF 소스 회로로서 지칭될 수 있는 한편, 후자는 불안정(unstable) PUF 소스 회로로서 지칭될 수 있다. 만약 응답(RES)을 생성하기 위하여 복수의 PUF 소스 회로들이 출력하는 복수의 비트 신호들을 논리 연산(예컨대, AND, OR 등)함으로써 병합하는 경우, 불안정 PUF 소스 회로들에 기인하여 오류가 발생할 수 있다. 즉, 불안정 PUF 소스 회로들의 오류들이 응답에 누적될 수 있다. 그러나, 후술되는 바와 같이, 응답 생성기(20)에 의해서 해밍 가중치(HW)가 응답(RES)의 생성에 사용됨으로써 불안정 PUF 소스 회로들에 기인하는 오류들의 누적이 방지될 수 있고, 결과적으로 동일한 시도(CHA)에 대응하는 일정한 응답(RES)이 생성될 수 있다.
시도-응답 인증의 보안을 위하여, 다수의 시도 및 응답 쌍들이 요구될 수 있다. 즉, 시도 및 응답 쌍들의 개수가 몇몇 개수로 제한되는 경우, 시도-응답 인증은 공격으로부터 쉽게 분석될 수 있다. 응답 생성기(20)는 내부 응답(I_RES)의 해밍 가중치(HW)에 기초하여 응답(RES)을 생성할 수 있고, 이에 따라 시도 및 응답 쌍들의 수는 지수함수적으로(exponentially)(예컨대, 2n에 비례하여) 증가될 수 있으므로 다수의 시도 및 응답 쌍들의 수가 확보될 수 있다.
도 1을 참조하면, 응답 생성기(20)는 해밍 가중치 생성기(22) 및 비교기(24)를 포함할 수 있다. 해밍 가중치 생성기(22)는 내부 응답(I_RES)을 수신할 수 있고, 내부 응답(I_RES)의 해밍 가중치(HW)를 생성하여 비교기(24)에 제공할 수 있다. 일부 실시예들에서, 해밍 가중치 생성기(22)는 내부 응답(I_RES)의 비트들을 가산함으로써 해밍 가중치(HW)를 생성할 수 있다. 해밍 가중치 생성기(22)의 예시는 도 7 내지 도 10을 참조하여 후술될 것이다.
비교기(24)는 해밍 가중치 생성기(22)로부터 해밍 가중치(HW)를 수신할 수 있고, 적어도 하나의 기준치(STD)를 수신할 수 있다. 비교기(24)는 해밍 가중치(HW) 및 적어도 하나의 기준치(STD)를 비교할 수 있고, 비교 결과에 기초하여 응답(RES)을 생성할 수 있다. 예를 들면, 도 2에 도시된 바와 같이, 적어도 하나의 기준치(STD)는 n/2의 값을 가질 수 있고, 비교기(24)는, 해밍 가중치(HW)가 n/2 미만(또는 이하)인 경우 제1 값, 예컨대 '0'인 응답(RES)을 생성할 수 있는 한편, 해밍 가중치(HW)가 n/2 이상(또는 초과)인 경우 제2 값, 예컨대 '1'인 응답(RES)을 생성할 수 있다. 일부 실시예들에서, 도 2에 도시된 바와 상이하게, PUF 블록(10)에 포함된 PUF 소스 회로들의 특성에 따라 해밍 가중치(HW)의 산포는 n/2와 상이한 값에서 피크를 가질 수도 있다. 이 경우, 비교기(24)는 피크에 대응하는 값을 가지는 적어도 하나의 기준치(STD)와 해밍 가중치(HW)를 비교할 수 있다. 비교기(24)의 다른 예시들은 도 3 및 도 4를 참조하여 후술될 것이다.
일부 실시예들에서, 응답 생성기(20)는 내부 응답(I_RES)에서 멀티-비트의 특정 값을 가지는 비트 스트링(bit string)의 개수를 카운트할 수 있고, 카운트 결과를 상기 특정 값이 가지는 확률적 기대값과 비교함으로써 응답(RES)을 생성할 수 있다. 예를 들면, 응답 생성기(20)는 내부 응답(I_RES)에서 '01'의 값을 가지는 2-비트의 비트 스트링의 개수를 카운트할 수 있다. 내부 응답(I_RES)이 n-비트일 때, 내부 응답(I_RES)에서 2-비트의 비트 스트링은 n/2개 일수 있고, 이에 따라 '01'의 확률적 기대값은 n/8일 수 있다. 응답 생성기(20)는 카운트 결과와 n/8을 비교함으로써 응답(RES)을 생성할 수 있다. 또한, 일부 실시예들에서, 카운트 대상이 되는 비트 스트링들은, 내부 응답(I_RES)에서 공통의 적어도 하나의 비트를 포함할 수도 있다. 유사하게, 응답 생성기(20)가 3-비트 이상의 비트 스트링을 카운트하고 카운트 결과를 확률적 기대값과 비교할 수 있는 점은 이해될 것이다. 본 명세서에서, 2이상의 비트를 포함하는 비트 스트링 및 1-비트는 비트 단위로서 총괄적으로 지칭될 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 응답 생성기를 나타내는 블록도이고, 도 4는 본 개시의 예시적 실시예에 따른 응답 생성기의 동작의 예시를 나타내는 그래프이다. 도 1을 참조하여 전술된 바와 같이, 도 3의 응답 생성기(30)는 내부 응답(I_RES)의 해밍 가중치(HW)에 기초하여 응답(RES)을 생성할 수 있다. 도 3에 도시된 바와 같이, 응답 생성기(30)는 해밍 가중치 생성기(32) 및 비교기(34)를 포함할 수 있다. 이하에서 도 3은 도 1을 참조하여 설명될 것이며, 도 3에 대한 설명 중 도 1에 대한 설명과 중복되는 내용은 생략될 것이다.
비교기(34)는 해밍 가중치 생성기(32)로부터 내부 응답(I_RES)의 해밍 가중치(HW)를 수신할 수 있다. 또한, 비교기(34)는 제1 기준치(STD1) 및 제2 기준치(STD2)를 수신할 수 있고, 해밍 가중치(HW)를 제1 기준치(STD1) 및 제2 기준치(STD2)와 비교할 수 있다. 예를 들면, 도 4에 도시된 바와 같이, 제1 기준치(STD1)는 n/2 보다 작을 수 있고, 제2 기준치(STD2)는 n/2 보다 클 수 있으며, 일부 실시예들에서 제1 기준치(STD1) 및 제2 기준치(STD2)의 합은 n일 수 있다. 도 4에 도시된 바와 같이, 비교기(34)는 해밍 가중치(HW)가 제1 기준치(STD1) 이하(또는 미만)인 경우 제1 값, 예컨대 '0'인 응답(RES)을 생성할 수 있는 한편, 해밍 가중치(HW)가 제2 기준치(STD2) 이상(또는 초과)인 경우 제2 값, 예컨대 '1'인 응답(RES)을 생성할 수 있다. 다른 한편으로, 비교기(34)는 해밍 가중치(HW)가 제1 기준치(STD1) 초과(또는 이상) 혹은 제2 기준치(STD2) 미만(또는 이하)인 경우 해밍 가중치(HW)를 무시할 수 있고, 예컨대 응답(RES)을 생성하지 아니하거나 해밍 가중치(HW)에 독립적인 응답(RES)을 생성할 수 있다.
도 1을 참조하여 전술된 바와 같이, PUF 블록(10)은 불안정 PUF 소스 회로를 포함할 수 있고, 이에 따라 내부 응답(I_RES)의 값이 변동할 수 있다. 이에 따라, 도 4에 도시된 바와 같이, 응답(RES)의 값을 2이상의 기준치들, 예컨대 제1 기준치(STD1) 및 제2 기준치(STD2)에 기초하여 결정함으로써 불안정 PUF 소스 회로에 기인하는 오류를 방지할 수 있다. 예를 들면, 해밍 가중치(HW)를 n/2인 단일 기준치와 비교하는 경우, 불안정 PUF 소스 회로들의 비트 신호들이 변동함에 따라 응답(RES)의 값이 '0' 및 '1' 사이에서 변동할 수 있다. 다른 한편으로, 도 4에 도시된 바와 같이, 해밍 가중치(HW)를 상이한 제1 기준치(STD1) 및 제2 기준치(STD2)와 비교하는 경우, 불안정 PUF 소스 회로들이 응답(RES)의 값에 영향을 미치는 해밍 가중치(HW)는 무시될 수 있고, 불안정 PUF 소스 회로들의 비트 신호들이 변동할지라도 응답(RES)의 값은 일정하게 유지될 수 있다. 일부 실시예들에서, 제1 기준치(STD1) 및 제2 기준치(STD2)는 집적 회로(1)를 생산하면서 누적된 데이터, 예컨대 불안정 PUF 소스 회로들의 비율에 기초하여 결정될 수 있다.
도 5a 및 도 5b는 본 개시의 예시적 실시예들에 따라 집적 회로의 예시들을 나타내는 블록도들이다. 구체적으로, 도 5a 및 도 5b는 내부 시도 생성기들(52a, 52b)을 각각 포함하는 집적 회로들(50a, 50b)을 나타내고, 도 1의 PUF 블록(10)의 예시들을 나타낸다. 이하에서 도 5a 및 도 5b는 도 1을 참조하여 설명될 것이고, 도 5a 및 도 5b에 대한 설명 중 중복되는 내용은 생략될 것이다.
도 5a를 참조하면, 집적 회로(50a)는 내부 시도 생성기(52a) 및 PUF 블록(54a)을 포함할 수 있다. 내부 시도 생성기(52a)는 시도(CHA)를 수신할 수 있고, 시도(CHA)로부터 내부 시도(I_CHA)를 생성하여 PUF 블록(54a)에 제공할 수 있다. 일부 실시예들에서, 내부 시도 생성기(52a)는 비선형(non-linear) 함수에 기초하여 시도(CHA)로부터 내부 시도(I_CHA)를 생성할 수 있다. 예를 들면, 내부 시도 생성기(52a)는 시도(CHA)에 해시(hash) 함수를 적용함으로써 내부 시도(I_CHA)를 생성할 수 있다. 또한 일부 실시예들에서, 내부 시도 생성기(52a)는 시도(CHA)로부터 확장된 내부 시도(I_CHA)를 생성할 수 있다. 예를 들면, 내부 시도 생성기(52a)는 n보다 작은 k-비트의 시도(CHA)로부터 n-비트의 내부 시도(I_CHA)를 생성할 수 있다(k < n).
시도(CHA)에 비선형 함수를 적용한 내부 시도(I_CHA)가 PUF 블록(54a)에 제공됨으로써 집적 회로(50a)에 대한 공격, 예컨대 부채널 공격(side-channel attack; SCA)에 대한 방어책(countermeasure)이 강화될 수 있다. 예를 들면, 내부 시도 생성기(52a)에 의해서 시도(CHA), 및 내부 응답(I_RES)의 생성에 사용되는 내부 시도(I_CHA) 사이 감소된 연관성이 감소할 수 있고, 이에 따라 선형성에 기초한 공격, 예컨대 모델링 공격이 효과적으로 방어될 수 있다. 또한, 내부 응답(I_RES)의 생성에 사용되는 내부 시도(I_CHA)를 공격자가 임의로 제어할 수 없으므로, 시도(CHA)의 제공 횟수를 늘리거나 응답(RES)의 예측 가능성을 감소시키는 것과 같이 집적 회로(50a)의 분석 난이도를 가중시킬 수 있다.
PUF 블록(54a)은 제1 내지 제n PUF 소스 회로들(54a_1,..., 54a_n)을 포함할 수 있다. 제1 내지 제n PUF 소스 회로들(54a_1,..., 54a_n) 각각은, 내부 시도(I_CHA)의 한 비트를 수신할 수 있고, 내부 응답(I_RES)의 한 비트를 출력할 수 있다. 예를 들면, 제1 PUF 소스 회로(54a_1)는 내부 시도(I_CHA)의 첫 번째 비트(I_CHA[1])를 수신할 수 있고, 내부 응답(I_RES)의 첫 번째 비트(I_RES[1])를 출력할 수 있다. 또한, 제n PUF 소스 회로(54a_n)는 내부 시도(I_CHA)의 n번째 비트(I_CHA[n])를 수신할 수 있고, 내부 응답(I_RES)의 n번째 비트(I_RES[n])를 출력할 수 있다. 본 명세서에서, 다중 비트 신호 중 한 비트는 비트 신호로서 지칭될 수 있다.
제1 내지 제n PUF 소스 회로들(54a_1,..., 54a_n) 각각은 로직 게이트들의 문턱 레벨들, 즉 '0' 및 '1'을 구별하는 레벨들에 기초하여 고유한 값의 비트 신호를 생성할 수 있다. 예를 들면, 도 5a에 도시된 바와 같이, 제1 PUF 소스 회로(54a_1)는 복수의 NAND 게이트들을 포함할 수 있고, NAND 게이트들의 문턱 레벨들의 차이에 기초하여 비트 신호(I_RES[1])를 생성할 수 있다. 또한, 제1 PUF 소스 회로(54a_1)는 내부 시도(I_CHA)의 한 비트(I_CHA[1])에 기초하여 비트 신호(I_RES[1])를 생성할 수 있다. 예를 들면, 도 5a에 도시된 바와 같이, 내부 시도(I_CHA)의 한 비트(I_CHA[1])가 '1'인 경우 NAND 게이트들의 문턱 레벨들의 차이에 따른 값을 가지는 비트 신호(I_RES[1])가 생성될 수 있는 한편, 내부 시도(I_CHA)의 한 비트(I_CHA[1])가 '0'인 경우 비트 신호(I_RES[1])는 '1'의 값을 일정하게 가질 수 있다. 이에 따라, 비트 신호(I_RES[1])의 값은 고유한 값, 즉 NAND 게이트들의 문턱 레벨들의 차이뿐만 아니라 내부 시도(I_CHA)의 한 비트(I_CHA[1])에 따라 변동할 수 있다. 일부 실시예들에서, 도 5a에 도시된 바와 상이하게, PUF 소스 회로는 반전 기능을 수행할 수 있는 로직 게이트, 예컨대 NOR 게이트, 인버터(INV) 등을 포함할 수도 있다.
도 5b를 참조하면, 집적 회로(50b)는 내부 시도 생성기(52b) 및 PUF 블록(54b)을 포함할 수 있다. 내부 시도 생성기(52b)는, 도 5a의 내부 시도 생성기(52a)와 유사하게, 시도(CHA)로부터 내부 시도(I_CHA)를 생성할 수 있고, n-비트의 내부 시도(I_CHA)를 PUF 블록에 제공할 수 있다. PUF 블록(54b)은 제1 내지 제n PUF 소스 회로들(54b_11,..., 54b_1n) 및 제1 내지 제n 후처리 회로들(54b_21,..., 54b_2n)을 포함할 수 있다. 제1 내지 제n PUF 소스 회로들(54b_11,..., 54b_1n)은, 도 5a의 제1 내지 제n PUF 소스 회로들(54a_1,..., 54a_n)과 상이하게, 내부 시도(I_CHA)에 독립적으로 고유한 값들의 비트 신호들(I_PUF[1],..., I_PUF[n])을 생성할 수 있다.
제1 내지 제n 후처리 회로들(54b_21,..., 54b_2n)은 제1 내지 제n PUF 소스 회로들(54b_11,..., 54b_1n)이 생성하는 고유한 값들의 비트 신호들(I_PUF[1],..., I_PUF[n]) 및 내부 시도(I_CHA)를 처리함으로써 내부 응답(I_RES)을 생성할 수 있다. 예를 들면, 제1 후처리 회로(54b_21)는 제1 PUF 소스 회로(54b_11)가 생성한 비트 신호(I_PUF[1]) 및 내부 시도(I_CHA)의 첫 번째 비트(I_CHA[1])를 임의의 방식으로 처리함으로써 내부 응답(I_RES)의 첫 번째 비트(I_RES[1])를 생성할 수 있다. 또한, 제n 후처리 회로(54b_2n)는 제n PUF 소스 회로(54b_1n)가 생성한 비트 신호(I_PUF[n]) 및 내부 시도(I_CHA)의 n번째 비트(I_CHA[n])를 임의의 방식으로 처리함으로써 내부 응답(I_RES)의 n번째 비트(I_RES[n])를 생성할 수 있다. 이에 따라, 내부 응답(I_RES)은 제1 내지 제n PUF 소스 회로들(54b_11,..., 54b_1n)이 생성하는 고유한 값들의 비트 신호들(I_PUF[1],..., I_PUF[n])뿐만 아니라 내부 시도(I_CHA)에 의존할 수 있다.
일부 실시예들에서, 제1 내지 제n 후처리 회로들(54b_21,..., 54b_2n) 각각은 적어도 하나의 로직 게이트를 포함할 수 있다. 예를 들면, 제1 후처리 회로(54b_21)는 XOR 게이트를 포함할 수 있고, 제1 PUF 소스 회로(54b_11)가 생성한 비트 신호(I_PUF[1]) 및 내부 시도(I_CHA)의 첫 번째 비트(I_CHA[1])를 XOR 연산함으로써 내부 응답(I_RES)의 첫 번째 비트(I_RES[1])를 생성할 수 있다. 제n 후처리 회로(54b_2n) 역시 XOR 게이트를 포함할 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 PUF 블록을 나타내는 블록도이다. 도 1을 참조하여 전술된 바와 같이, 도 6의 PUF 블록(60)은 시도(CHA)로부터 생성된 내부 시도(I_CHA)를 수신할 수 있고, 내부 응답(I_RES)을 출력할 수 있다. 도 6에 도시된 바와 같이, PUF 블록(60)은 n개의 PUF 소스 회로들(62_1, 62_2, 62_3, 62_4 등), 비반전 회로(64) 및 반전 회로(66)를 포함할 수 있다. 이하에서, 도 6은 도 1을 참조하여 설명될 것이다.
PUF 블록(60)은 시도(CHA)의 해밍 가중치 및 내부 응답(I_RES)의 해밍 가중치 사이 연관성을 감소시키기 위하여, n개의 PUF 소스 회로들(62_1, 62_2, 62_3, 62_4 등)이 출력하는 고유한 값들의 비트 신호들(I_PUF[1:n]) 중 절반을 반전시킬 수 있다. 예를 들면, PUF 블록(60)에 포함된 PUF 소스 회로가 바이어스 'B'를 가질 때, PUF 소스 회로가 '0'의 값을 가지는 비트 신호를 생성할 확률 'P(0)' 및 PUF 소스 회로가 '1'의 값을 가지는 비트 신호를 생성할 확률 'P(1)'은 아래 [수학식 1]과 같이 각각 계산될 수 있다.
Figure pat00001
n개의 PUF 소스 회로들(62_1, 62_2, 62_3, 62_4 등)이 출력하는 비트 신호들(I_PUF[1:n]) 중 절반을 반전시킴으로써 내부 응답(I_RES)을 생성하는 경우, 내부 응답(I_RES)에서 '0'이 발생할 확률 'Pnew(0)' 및 내부 응답(I_RES)에서 '1'이 발생할 확률 'Pnew(1)'은 아래 [수학식 2]와 같이 각각 계산될 수 있다.
Figure pat00002
[수학식 2]에 따라, 바이어스 'B'가 제거될 수 있고, 결과적으로 시도(CHA)의 해밍 가중치 및 내부 응답(I_RES)의 해밍 가중치 사이 연관성이 감소되거나 제거될 수 있다.
도 6을 참조하면, 비반전 회로(64)는 n/2개의 PUF 소스 회로들(62_1, 62_2 등)이 출력하는 n/2 비트의 비트 신호들(I_PUF[1:n/2])을 비반전시킴으로써 내부 응답(I_RES)의 n/2 비트(I_RES[1:n/2])를 생성할 수 있는 한편, 반전 회로(66)는 n/2개의 PUF 소스 회로들(62_3, 62_4 등)이 출력하는 n/2 비트의 비트 신호들(I_PUF[n/2+1:n])을 반전시킴으로써 내부 응답(I_RES)의 나머지 n/2 비트(I_RES[n/2+1:n])를 생성할 수 있다.
일부 실시예들에서, 비반전 회로(64) 및 반전 회로(66)는 동일한 구조를 가질 수 있다. 공격은 집적 회로(1)가 소비하는 전력을 분석할 수 있으므로, n/2 비트의 비트 신호들(I_PUF[1:n/2])을 그대로 내부 응답(I_RES)의 n/2 비트(I_RES[1:n/2])로 출력하는 대신, 반전 회로(66)와 동일한 구조의 비반전 회로(64)를 사용함으로써 n개의 PUF 소스 회로들(62_1, 62_2, 62_3, 62_4 등)이 생성하는 n비트의 비트 신호들(I_PUF[1:n])의 값에 독립적으로 실질적으로 일정한 전력이 소비될 수 있다. 예를 들면, 비반전 회로(64)는 '0'이 인가된 입력을 각각 가지는 n/2개의 XOR 게이트들을 포함할 수 있고, 반전 회로(66)는 '1'이 인가된 입력을 각각 가지는 n/2개의 XOR 게이트들을 포함할 수 있다.
비록 도 6에서 n개의 PUF 소스 회로들(62_1, 62_2, 62_3, 62_4 등)이 시도(CHA)를 수신하는 것으로 도시되었으나, 일부 실시예들에서, 도 5a를 참조하여 전술된 바와 같이, n개의 PUF 소스 회로들(62_1, 62_2, 62_3, 62_4 등)은 시도(CHA)에 비선형 함수를 적용함으로써 생성된 내부 시도(I_CHA)를 수신할 수도 있다. 또한, 일부 실시예들에서, 도 5b를 참조하여 전술된 바와 같이, PUF 블록(60)은 n개의 후처리 회로들을 더 포함할 수 있고, n개의 후처리 회로들은 n개의 PUF 소스 회로들(62_1, 62_2, 62_3, 62_4 등)이 시도(CHA)와 무관하게 생성한 n개의 비트 신호들(I_PUF[1:n]) 및 시도(CHA)를 처리함으로써 n개의 비트 신호들을 생성할 수 있다. 이에 따라, 비반전 회로(64)는 n개의 후처리 회로들 중 n/2개의 후처리 회로들이 생성한 n/2개의 비트 신호들 비반전시킴으로써 내부 응답(I_RES)의 n/2 비트(I_RES[1:n/2])를 생성할 수 있는 한편, 반전 회로(66)는 나머지 n/2개의 후처리 회로들이 생성한 n/2개의 비트 신호들을 반전시킴으로써 내부 응답(I_RES)의 나머지 n/2 비트(I_RES[n/2+1:n])를 생성할 수 있다.
도 7은 본 개시의 예시적 실시예에 따른 해밍 가중치 생성기를 나타내는 블록도이다. 도 1을 참조하여 전술된 바와 같이, 도 7의 해밍 가중치 생성기(70)는 n비트의 내부 응답(I_RES)을 수신할 수 있고, 내부 응답(I_RES)의 해밍 가중치(HW)를 생성할 수 있다. 도 7에 도시된 바와 같이, 해밍 가중치 생성기(70)는 직렬화기(72) 및 카운터(74)를 포함할 수 있고, 이하에서 도 7은 도 1을 참조하여 설명될 것이다.
내부 응답(I_RES)의 해밍 가중치(HW)를 생성하기 위하여 감소된 전력 및 크기를 가지는 해밍 가중치 생성기(70)가 사용될 수 있다. 예를 들면, 사물인터넷(Internet of Things; IoT)를 위한 장치들 중 매우 작은 전력 및 크기가 요구되는 장치에 도 1의 집적 회로(1)가 포함될 수 있다. 이에 따라, 해밍 가중치 생성기(70)는 내부 응답(I_RES)의 각 비트들을 가산하는 대신, 후술되는 바와 같이 내부 응답(I_RES)을 직렬화하고 직렬화된 신호를 카운트함으로써 해밍 가중치(HW)를 생성할 수 있다.
도 7을 참조하면, 직렬화기(72)는 n비트의 내부 응답(I_RES)을 직렬화함으로써 펄스 시퀀스(SEQ)를 생성할 수 있다. 이에 따라, 도 9를 참조하여 후술되는 바와 같이, 펄스 시퀀스(SEQ)는 내부 응답(I_RES)의 비트에 따라 일련의 펄스들을 포함할 수 있다. 직렬화기(72)는 내부 응답(I_RES)을 직렬화하기 위한 임의의 구조를 가질 수 있으며, 도 8을 참조하여 직렬화기(72)의 일예가 후술될 것이다. 카운터(74)는 직렬화기(72)로부터 펄스 시퀀스(SEQ)를 수신할 수 있고, 펄스 시퀀스(SEQ)의 펄스들을 카운트함으로써 해밍 가중치(HW)를 출력할 수 있다. 카운터(74)는 펄스 시퀀스(SEQ)의 펄스들을 카운트하기 위한 임의의 구조를 가질 수 있고, 일부 실시예들에서, 비동기식(asynchronous) 카운터를 포함할 수 있다. 내부 응답(I_RES)을 직렬화하고 비동기식(asynchronous) 카운터, 예컨대 리플(ripple) 카운터를 사용함으로써, 클럭(clock)이 생략될 수 있고, 풀 가산기(full adder)를 사용하는 것보다 면적이 감소할 수 있으며, PUF 블록(10)으로부터 불안정한 내부 응답(I_RES)이 출력되는 경우에도 안정된 카운트 값이 생성될 수 있다.
도 8은 본 개시의 예시적 실시예에 따른 직렬화기를 나타내는 블록도이고, 도 9는 본 개시의 예시적 실시예에 따른 직렬화기의 동작의 예시를 나타내는 타이밍도이다. 도 7을 참조하여 전술된 바와 같이, 직렬화기(80)는 n비트의 내부 응답(I_RES)을 직렬화함으로써 펄스 시퀀스(SEQ)를 생성할 수 있다. 도 8에 도시된 바와 같이, 직렬화기(80)는 지연 회로(82), 펄스 생성기(84) 및 병합 회로(86)를 포함할 수 있다.
지연 회로(82)는 내부 응답(I_RES)의 n 비트들을 상이하게 지연시킬 수 있다. 예를 들면, 지연 회로(82)는 도 8에 도시된 바와 같이 상호 연결된 n개의 플립플롭들 및 (n-1)개의 지연 소자들을 포함할 수 있다. (n-1)개의 지연 소자들에 의해서, 제1 클락 신호(CLK1)가 순차적으로 지연된 (n-1)개의 클락 신호들(CLK2,..., CLKn)이 생성될 수 있다. 이에 따라, n개의 플립플롭들의 제1 내지 제n 출력 신호들(Q1,..., Qn)은 하나의 지연 소자에 의해서 제공되는 지연의 배수들만큼 지연된 시점들에서 내부 응답(I_RES)의 n 비트들의 값들을 각각 가질 수 있다.
도 9를 참조하면, 시간 t11에서, 지연 회로(82)에 포함된 n개의 플립플롭들은 리셋될 수 있고, 이에 따라 제1 내지 제n 출력 신호들(Q1,..., Qn)은 로우 레벨, 즉 '0'의 값들을 가질 수 있다. 시간 t12에서, PUF 블록(10)으로부터 내부 응답 신호(I_RES)가 생성될 수 있고, 도 9의 예시에서 내부 응답(I_RES)의 첫 번째 비트(I_RES[1]) 및 n 번째 비트(I_RES[n])는 하이 레벨, 즉 '1'의 값을 가질 수 있는 한편, 내부 응답(I_RES)의 두 번째 비트(I_RES[2])는 '0'의 값을 가질 수 있다.
시간 t13에서, 제1 클락 신호(CLK1)가 '0'으로부터 '1'로 천이할 수 있고, 이에 따라 내부 응답(I_RES)의 첫 번째 비트(I_RES[1])의 값 '1'에 기인하여 제1 출력 신호(Q1)는 '0'으로부터 '1'로 천이할 수 있다. 시간 t15에서, 지연 회로(82)에 포함된 지연 소자에 기인하여 제1 클락 신호(CLK1)로부터 지연된 제2 클락 신호(CLK2)는 '0'으로부터 '1'로 천이할 수 있고, 이에 따라 내부 응답(I_RES)의 두 번째 비트(I_RES[2])의 값 '0'에 기인하여 제2 출력 신호(Q2)는 '0'으로 유지될 수 있다. 유사하게, 시간 t22에서, 제n 클락 신호(CLKn)는 '0'으로부터 '1'로 천이할 수 있고, 이에 따라 내부 응답(I_RES)의 n번째 비트(I_RES[n])의 값 '1'에 기인하여 제n 출력 신호(Qn)는 '0'으로부터 '1'로 천이할 수 있다.
다시 도 8을 참조하면, 펄스 생성기(84)는 지연 회로(82)로부터 제1 내지 제n 출력 신호들(Q1,..., Qn)을 수신할 수 있고, 제1 내지 제n 펄스 신호들(P1,..., Pn)을 생성할 수 있다. 일부 실시예들에서, 펄스 생성기(84)는 출력 신호(예컨대, Q1)의 상승 에지에 응답하여 일정한 시간 동안 활성화되는 펄스를 포함하는 펄스 신호(예컨대, P1)를 생성할 수 있다. 예를 들면, 도 8에 도시된 바와 같이, 펄스 생성기(84)는, 도 8에 도시된 바와 같이 상호 연결된, n개의 지연 소자들, n개의 인버터들 및 n개의 AND 게이트들을 포함할 수 있다. 이에 따라, 출력 신호(예컨대, Q1)에서 상승 에지가 발생하는 경우, 펄스 생성기(84)의 지연 소자가 제공하는 지연에 대응하는 활성 펄스 폭을 가지는 펄스를 포함하는 펄스 신호(예컨대, P1)가 생성될 수 있다. 일부 실시예들에서, 펄스 생성기(84)에 포함된 지연 소자는, 지연 회로(82)에 포함된 지연 소자보다 감소된 지연을 제공할 수 있다. 예를 들면, 도 8에 도시된 바와 같이, 펄스 생성기(84)에 포함된 지연 소자는, 지연 회로(82)에 포함된 지연 소자가 제공하는 지연이 절반에 대응하는 지연을 제공할 수 있다.
도 9를 참조하면, 시간 t13에서, 제1 출력 신호(Q1)의 상승 에지가 발생할 수 있고, 이에 따라 제1 펄스 신호(P1)는 시간 t13부터 시간 t14까지 활성화되는 펄스를 가질 수 있다. 시간 t15에서, 제2 출력 신호(Q2)가 '0'으로 유지될 수 있고, 이에 따라 제2 펄스 신호(P2)에서 펄스가 발생하지 아니할 수 있다. 또한, 시간 t22에서 제n 출력 신호(Qn)의 상승 에지가 발생할 수 있고, 이에 따라 제n 펄스 신호(Pn)는 시간 t22부터 시간 t23까지 활성화되는 펄스를 가질 수 있다.
다시 도 8을 참조하면, 병합 회로(86)는 펄스 생성기(84)가 제공하는 제1 내지 제n 펄스 신호(P1,..., Pn)를 병합함으로써 펄스 시퀀스(SEQ)를 생성할 수 있다. 예를 들면, 도 8에 도시된 바와 같이, 병합 회로(86)는 제1 내지 제n 펄스 신호(P1,..., Pn)를 OR 연산함으로써 펄스 시퀀스(SEQ)를 생성할 수 있다. 이에 따라, 도 9에 도시된 바와 같이, 펄스 시퀀스(SEQ)는, 제1 펄스 신호(P1)에 기인하여 시간 t13부터 시간 t14까지 활성화되는 펄스를 가질 수 있고, 제n 펄스 신호(Pn)에 기인하여 시간 t22부터 시간 t23까지 활성화되는 펄스를 가질 수 있다. 도 7을 참조하여 전술된 바와 같이, 펄스 시퀀스(SEQ)는 카운터(74)에 제공될 수 있고, 카운터(74)는 펄스 시퀀스(SEQ)에 포함된 펄스들을 카운트함으로써 해밍 가중치(HW)를 출력할 수 있다.
도 10은 본 개시의 예시적 실시예에 따른 해밍 가중치 생성기를 나타내는 블록도이다. 구체적으로, 도 10은 유효한 해밍 가중치(HW)가 출력되는 시점을 나타내는 유효 신호(VAL)를 더 생성하는 해밍 가중치 생성기(100)를 나타낸다. 도 10에 도시된 바와 같이, 해밍 가중치 생성기(100)는, 도 7의 해밍 가중치 생성기(70)와 유사하게, 직렬화기(102) 및 카운터(104)를 포함할 수 있는 한편, 지연 체인(delay chain)(106) 및 플립플롭(108)을 더 포함할 수 있다. 이하에서, 도 10은 도 7 내지 도 9를 참조하여 설명될 것이며, 도 10에 대한 설명 중 도 7 내지 도 9에 대한 설명과 중복되는 내용은 생략될 것이다.
도 10을 참조하면, 직렬화기(102)는 내부 응답(I_RES)로부터 펄스 시퀀스(SEQ)를 생성할 수 있고, 카운터(104)는 펄스 시퀀스(SEQ)의 펄스들을 카운트함으로써 해밍 가중치(HW)를 생성할 수 있다. 또한, 직렬화기(102)는 펄스 시퀀스(SEQ)뿐만 아니라 지연된 클락 신호를 더 출력할 수 있다. 예를 들면, 도 10에 도시된 바와 같이, 직렬화기(102)는 지연된 클락 신호로서 제n 클락 신호(CLKn)를 더 출력할 수 있다. 도 8 및 도 9를 참조하여 전술된 바와 같이, 제n 클락 신호(CLKn)는 제1 클락 신호(CLK1)가 (n-1)개의 지연 소자들을 통과함으로써 지연된 클락 신호에 대응할 수 있고, 내부 응답(I_RES)의 n번째 비트(I_RES[n])의 펄스가 발생하는(또는 발생하지 아니하는) 시점에서 상승 에지를 가질 수 있다. 즉, 제n 클락 신호(CLKn)는 펄스 시퀀스(SEQ)에서 마지막 펄스의 타이밍을 나타낼 수 있다.
지연 체인(106)은 직렬 연결된 적어도 하나의 지연 소자를 포함할 수 있고, 제n 클락 신호(CLKn)를 지연시킨 클락 신호를 플립플롭(108)에 제공할 수 있다. 일부 실시예들에서, 지연 체인(106)이 제공하는 지연은, 카운터(104)가 펄스 시퀀스(SEQ)의 펄스를 카운트함으로써 해밍 가중치(HW)를 갱신하는데 소요되는 시간에 대응할 수 있다. 플립플롭(108)은 하이 레벨(H)이 인가되는 데이터 입력(D)을 가질 수 있고, 사전에 (예컨대, 도 9의 시간 t11에서) 리셋될 수 있다. 이에 따라, 플립플롭(108)은 카운터(104)가 유효한 해밍 가중치(HW), 즉 내부 응답(I_RES)의 해밍 가중치(HW)를 출력하는 시점에서 활성화되는, 즉 하이 레벨이 되는 유효 신호(VAL)를 생성할 수 있다.
도 11a 및 도 11b는 본 개시의 예시적 실시예들에 따른 집적 회로들을 나타내는 블록도들이다. 구체적으로, 도 11a 및 도 11b는 등록 단계(enrollment phase)에서 활성화되는 인터페이스 회로를 포함하는 집적 회로의 예시들을 나타낸다. 이하에서, 도 11a 및 도 11b에 대한 설명 중 중복되는 내용은 생략될 것이다.
도 11a를 참조하면, 집적 회로(110a)는 PUF 블록(112a), 응답 생성기(114a) 및 제1 인터페이스 회로(116a)를 포함할 수 있다. PUF 블록(112a)은 시도(CHA)(또는 도 5a의 I_CHA)에 따라 내부 응답(I_RES)을 생성할 수 있고, 응답 생성기(114a)는 내부 응답(I_RES)의 해밍 가중치(HW)에 기초하여 응답(RES)을 생성할 수 있다.
제1 인터페이스 회로(116a)는, 집적 회로(110a)의 등록 단계에서 내부 응답(I_RES)을 집적 회로(110a)의 외부로 제공할 수 있다. 일부 실시예들에서, 등록 단계는 집적 회로(110a)의 제조 과정에 포함될 수 있고, 등록 단계에서 시도(CHA)에 응답하여 집적 회로(110a)가 제공하는 정보(예컨대, I_RES)가 집적 회로(110a)를 인증하기 위한 정보로서 저장될 수 있다. 예를 들면, 제1 인터페이스 회로(116a)는 내부 응답(I_RES)을 수신할 수 있고, 내부 응답(I_RES)을 포함하는 신호(I_RES')를 외부로 출력할 수 있다. 정당한(authenticated) 엔티티, 예컨대 집적 회로(110a)의 제조자는 등록 단계에서, 집적 회로(110a)로부터 제공된 신호(I_RES')에 기초하여 내부 응답(I_RES)을 수집할 수 있고, 집적 회로(110a)에 제공한 시도들 및 수집된 내부 응답들에 기초하여 집적 회로(110a)를 인증하기 위한 정보를 안전하게 저장할 수 있다. 집적 회로(110a)를 인증하기 위한 정보는, 집적 회로(110a)의 출하 후 집적 회로(110a) 또는 집적 회로(110a)를 포함하는 장치를 인증하는데 사용될 수 있다.
내부 응답(I_RES)을 공격으로부터 보호하기 위하여, 제1 인터페이스 회로(116a)는 등록 단계에서 인에이블될 수 있는 한편, 등록 단계가 완료된 후 디스에이블될 수 있다. 인에이블된 제1 인터페이스 회로(116a)는 내부 응답(I_RES)을 포함하는 신호(I_RES')를 정상적으로 출력할 수 있는 한편, 디스에이블된 제1 인터페이스 회로(116a)는 내부 응답(I_RES)을 포함하는 신호(I_RES')의 출력이 불가능하거나 내부 응답(I_RES)와 무관한 정보를 포함하는 신호(I_RES')를 출력할 수 있다. 일부 실시예들에서 제1 인터페이스 회로(116a)는 비가역적으로 디스에이블될 수 있다. 예를 들면, 제1 인터페이스 회로(116a)는 적어도 하나의 퓨즈(fuse)를 포함할 수 있고, 등록 단계 완료 후 적어도 하나의 퓨즈가 퓨징됨으로써(fused) 제1 인터페이스 회로(116a)가 디스에이블될 수 있다.
도 11b를 참조하면, 집적 회로(110b)는 PUF 블록(112b), 응답 생성기(114b), 제1 인터페이스 회로(116b) 및 제2 인터페이스 회로(118b)를 포함할 수 있다. PUF 블록(112b)은 시도(CHA)(또는 도 5a의 내부 시도(I_CHA))에 따라 내부 응답(I_RES)을 생성할 수 있고, 응답 생성기(114b)는 내부 응답(I_RES)의 해밍 가중치(HW)에 기초하여 응답(RES)을 생성할 수 있다. 도 11a와 비교할 때, 도 11b의 응답 생성기(114b)는 해밍 가중치(HW)를 출력할 수 있다. 또한, 제1 인터페이스 회로(116b)는, 도 11a의 제1 인터페이스 회로(116a)와 유사하게, 등록 단계에서 인에이블될 수 있고, 내부 응답(I_RES)을 포함하는 신호(I_RES')를 출력할 수 있다.
제2 인터페이스 회로(118b)는, 집적 회로(110b)의 등록 단계에서 해밍 가중치(HW)를 집적 회로(110b)의 외부로 제공할 수 있다. 예를 들면, 도 11b에 도시된 바와 같이, 제2 인터페이스 회로(118b)는 응답 생성기(114b)로부터 해밍 가중치(HW)를 수신할 수 있고, 해밍 가중치(HW)를 포함하는 신호(HW')를 외부로 출력할 수 있다. 정당한 엔티티, 예컨대 집적 회로(110b)의 제조자는 등록 단계에서, 집적 회로(110b)로부터 제공된 신호들(I_RES', HW')에 기초하여 내부 응답(I_RES)뿐만 아니라 해밍 가중치(HW)를 수집할 수 있다. 도 11a를 참조하여 전술된 바와 유사하게, 제1 인터페이스 회로(116b) 및 제2 인터페이스 회로(118b)는 등록 단계에서 인에이블될 수 있는 한편, 등록 단계 완료 후 디스에이블될 수 있다. 또한, 일부 실시예들에서, 집적 회로(110b)에 포함된 제1 인터페이스 회로(116b)는 생략될 수도 있다.
도 12a 및 도 12b는 본 개시의 예시적 실시예들에 따라 집적 회로를 사용하는 환경을 나타내는 블록도이다. 구체적으로, 도 12a는 등록 단계에서 집적 회로를 사용하는 환경을 나타내고, 도 12b는 인증 단계(authentication phase)에서 집적 회로를 사용하는 환경을 나타낸다.
도 12a를 참조하면, 정당한 엔티티, 예컨대 집적 회로들(IC1 내지 ICm)의 제조자가 운영하는 컴퓨팅 시스템(122a)은 집적 회로들(IC1 내지 ICm) 각각과 통신할 수 있다(m은 1보다 큰 정수). 예를 들면, 컴퓨팅 시스템(112a)은 제1 집적 회로(IC1)에 복수의 시도들을 제공할 수 있고, 제1 집적 회로(IC1)로부터 복수의 시도들 각각에 대응하는 정보, 예컨대 내부 응답(I_RES) 및/또는 해밍 가중치(HW) 등을 획득할 수 있다. 컴퓨팅 시스템(122a)은 제1 집적 회로(IC1)에 제공한 복수의 시도들 및 제1 집적 회로(IC1)로부터 획득된 정보를 포함하는 데이터베이스(DB)를 포함할 수 있다. 예를 들면, 데이터베이스(DB)는 시도 및 내부 응답의 복수의 쌍들을 저장할 수도 있고, 시도 및 해밍 가중치의 복수의 쌍들을 저장할 수도 있다. 또한, 일부 실시예들에서, 도 14c를 참조하여 후술되는 바와 같이, 데이터베이스(DB)는 제1 집적 회로(IC1)에 제공된 복수의 시도들 및 제1 집적 회로(IC1)로부터 획득된 정보에 기초하여 학습된 모델을 포함할 수도 있다.
도 12b를 참조하면, 정당한 엔티티, 예컨대 집적 회로들(IC1 내지 ICm)의 제조자, 또는 집적 회로들(IC1 내지 ICm)의 정당한 사용자로서 집적 회로들(IC1 내지 ICm)을 각각 포함하는 장치들(124_1 내지 124_m)의 제조자 등이 운영하는 컴퓨팅 시스템(122b)은, 네트워크(126)를 통해서 장치들(124_1 내지 124_m)과 통신할 수 있다. 네트워크(126)는 임의의 네트워크를 포함할 수 있고, 비제한적인 예시로서 셀룰러(cellular) 네트워크, LAN(Local Area Network), WLAN(Wireless Local Area Network) 등을 포함할 수 있다. 또한, 컴퓨팅 시스템(122b) 및 장치들(124_1 내지 124_m)은 유선 및/또는 무선 통신에 의해서 상호 통신할 수 있다.
컴퓨팅 시스템(122b)은 데이터베이스(DB')를 포함할 수 있고, 데이터베이스(DB')는 도 12a의 데이터베이스(DB)와 동일할 수도 있고, 도 12a의 데이터베이스(DB)에 기초하여 생성된 데이터를 포함할 수도 있다. 컴퓨팅 시스템(122b)은 데이터베이스(DB')에 기초하여 장치들(124_1 내지 124_m)을 인증할 수 있다. 예를 들면, 컴퓨팅 시스템(122b)은 데이터베이스(DB')에 기초하여 시도를 생성할 수 있고, 네트워크(126)를 통해서 제1 장치(124_1)에 시도를 제공할 수 있다. 컴퓨팅 시스템(122b)은, 제1 장치(124_1)에 포함된 제1 집적 회로(IC1)가 시도에 기초하여 생성한 응답을 네트워크(126)를 통해서 수신할 수 있고, 데이터베이스(DB')에 기초하여 응답을 평가함으로써 제1 장치(124_1)를 인증할 수 있다.
도 13은 본 개시의 예시적 실시예에 따라 시도 응답 방식의 물리적 복제방지 기능을 위한 집적 회로를 사용하는 방법을 나타내는 순서도이다. 구체적으로, 도 13은 정당한 엔티티(132)가, 시도 응답 방식의 물리적 복제방지 기능을 위한 집적 회로(134)를 등록하고 인증하는 방법을 나타낸다. 일부 실시예들에서, 도 13의 정당한 엔티티(132)는 도 12a 및 도 12b의 컴퓨팅 시스템들(122a, 122b)을 운영할 수 있고, 도 13에서 정당한 엔티티(132)의 동작들(S11, S13, S14, S17)은 도 12a 및 도 12b의 컴퓨팅 시스템들(122a, 122b)에 의해서 수행될 수 있다. 이하 도 13에 대한 설명에서 집적 회로(134)는 도 1의 집적 회로(1)의 구성요소들을 포함하는 것으로 가정되고, 도 13은 도 1을 참조하여 설명될 것이다.
동작 S11에서, 정당한 엔티티(132)는 집적 회로(134)를 등록할 수 있다. 또한, 동작 S12에서, 집적 회로(134)는 등록 단계에서 동작할 수 있다. 예를 들면, 정당한 엔티티(132)는 집적 회로(134)에 시도를 제공할 수 있고, 집적 회로(134)는, 도 11a 및 도 11b를 참조하여 전술된 바와 같이, 시도에 대응하는 정보, 예컨대 내부 응답 및/또는 해밍 가중치 등을 등록 단계에서 정당한 엔티티(132)에 제공할 수 있다. 정당한 엔티티(132)는 집적 회로(134)에 제공한 시도 및 집적 회로(134)로부터 획득된 정보에 기초하여 데이터베이스(DB)를 생성할 수 있다.
동작 S13에서, 정당한 엔티티(132)는 제1 시도를 생성할 수 있다. 일부 실시예들에서, 정당한 엔티티(132)는 데이터베이스(DB)에 기초하여 응답이 추정가능한 제1 시도를 생성할 수 있다. 예를 들면, 정당한 엔티티(132)는 데이터베이스(DB)에 기초하여 제1 시도에 대응하는 내부 응답(I_RES) 및/또는 해밍 가중치(HW)의 추정이 가능한 제1 시도를 생성할 수 있다.
일부 실시예들에서, 정당한 엔티티(132)는 오류를 포함할 수 있는 응답을 유발하는 시도를 배제함으로써 제1 시도를 생성할 수 있다. 예를 들면, 도 4를 참조하여 전술된 바와 같이, 집적 회로(134)에서 생성되는 해밍 가중치는 일부 범위에서 오류를 포함할 수 있고, 이에 따라 정당한 엔티티(132)는 오류를 포함할 수 있는 해밍 가중치의 범위를 제외한 범위에 대응하는 가중치를 제1 가중치로서 생성할 수 있다. 즉, 도 4의 예시를 참조하면, 정당한 엔티티(132)는 제1 기준치(STD1) 이하의 해밍 가중치에 대응하거나 제2 기준치(STD2) 이상의 해밍 가중치에 대응하는 시도를, 제1 시도로서 생성할 수 있다. 그 다음에, 동작 S14에서 정당한 엔티티(132)는 제1 시도를 집적 회로(134)에 제공할 수 있다. 예를 들면, 정당한 엔티티(132)는 네트워크(예컨대, 도 12b의 126)를 통해서 제1 시도를 집적 회로(134)에 제공할 수 있다.
동작 S15에서, 집적 회로(134)는 제1 응답을 생성할 수 있다. 예를 들면, 집적 회로(134)는 물리적 복제방지 기능에 기초하여 제1 시도에 대응하는 내부 응답(I_RES)을 생성할 수 있고, 내부 응답(I_RES)의 해밍 가중치(HW)를 생성할 수 있다. 또한, 집적 회로(134)는 해밍 가중치(HW)를 적어도 하나의 기준치와 비교할 수 있고, 비교 결과에 따라 제1 응답을 생성할 수 있다. 그 다음에, 동작 S16에서, 집적 회로(134)는 제1 응답을 정당한 엔티티(132)에 제공할 수 있다.
동작 S17에서, 정당한 엔티티(132)는 제1 응답을 평가할 수 있다. 예를 들면, 정당한 엔티티(132)는 동작 S13에서 생성된 제1 시도에 대응하는 응답을 추정할 수 있고, 추정된 응답과 제1 응답을 비교함으로써 제1 응답을 평가할 수 있다. 구체적으로, 정당한 엔티티(132)는 제1 시도에 대응하는 해밍 가중치를 획득할 수 있고, 해밍 가중치에 따라 응답을 추정할 수 있다. 정당한 엔티티(132)는 추정된 응답과 제1 응답이 일치하는 경우 집적 회로(134)의 인증을 성공으로 판정하는 한편, 그렇지 아니한 경우 집적 회로(134)의 인증을 실패로 판정할 수 있다. 정당한 엔티티(132)가 제1 시도를 생성하거나 제1 응답을 평가하기 위하여, 해밍 가중치 및/또는 응답을 추정하는 동작의 예시들이 도 14a, 도 14b 및 도 14c를 참조하여 후술될 것이다.
도 14a, 도 14b 및 도 14c는 본 개시의 예시적 실시예들에 따라 시도 응답 방식의 물리적 복제방지 기능을 위한 집적 회로를 사용하는 방법의 예시들을 나타내는 순서도들이다. 구체적으로, 도 14a, 도 14b 및 도 14c는 집적 회로를 인증하기 위한 등록 단계 및 인증 단계의 예시들을 나타낸다. 도 13의 예시와 유사하게, 일부 실시예들에서 도 14a, 도 14b 및 도 14c의 정당한 엔티티들(142a, 142b, 142c)은 도 12a 및 도 12b의 컴퓨팅 시스템들(122a, 122b)을 운영할 수 있고, 도 14a, 도 14b 및 도 14c에서 정당한 엔티티들(142a, 142b, 142c)의 동작들은 도 12a 및 도 12b의 컴퓨팅 시스템들(122a, 122b)에 의해서 수행될 수 있다. 이하 도 14a, 도 14b 및 도 14c에 대한 설명에서 등록 단계 및 인증 단계가 동일한 엔티티에 의해서 수행되는 것으로 가정되고, 중복되는 내용은 생략될 것이다.
도 14a를 참조하면, 일부 실시예들에서, 정당한 엔티티(142a)는 등록 단계에서 집적 회로(144a)가 제공하는 내부 응답들을 저장할 수 있고, 저장된 내부 응답들에 기초하여 인증 단계에서 해밍 가중치를 계산할 수 있다. 도 14a에 도시된 바와 같이, 등록 단계에서 동작들(S21a 내지 S28a)이 수행될 수 있고, 인증 단계에서 동작들(S29a 내지 S31a)이 수행될 수 있다.
동작 S21a에서, 정당한 엔티티(142a)는 시도를 생성할 수 있다. 예를 들면, 동작 S26a에 후속하여 동작 S21a가 수행되는 경우, 정당한 엔티티(142a)는 이전에 수행된 동작 S21a에서 생성된 시도와 상이한 시도를 생성할 수 있다. 그 다음에, 동작 S22a에서, 정당한 엔티티(142a)는 동작 S21a에서 생성된 시도를 집적 회로(144a)에 제공할 수 있다.
동작 S23a에서, 집적 회로(144a)는 시도에 기초하여 내부 응답을 생성할 수 있다. 예를 들면, 집적 회로(144a)는 PUF 블록(예컨대, 도 1의 22)을 포함할 수 있고, PUF 블록은 시도 또는 시도로부터 생성된 내부 시도에 응답하여 내부 응답을 생성할 수 있다. 그 다음에, 동작 S24a에서, 집적 회로(144a)는 동작 S23a에서 생성된 내부 응답을 정당한 엔티티(142a)에 제공할 수 있다. 예를 들면, 도 11a를 참조하여 전술된 바와 같이, 집적 회로(144a)는 등록 단계에서 인에이블되는 제1 인터페이스 회로(예컨대, 도 11a의 116a)를 통해서 정당한 엔티티(142a)에 내부 응답을 제공할 수 있다.
동작 S25a에서, 정당한 엔티티(142a)는 시도 및 내부 응답의 쌍을 저장할 수 있다. 구체적으로, 정당한 엔티티(142a)는 동작 S21a에서 생성된 시도 및 동작 S24a에서 제공된 내부 응답을 상호 맵핑할 수 있고, 상호 맵핑된 시도 및 내부 응답의 쌍을 저장소에 저장할 수 있다.
동작 S26a에서, 정당한 엔티티(142a)는 등록이 완료되었는지 여부를 판정할 수 있다. 정당한 엔티티(142a)는, 일부 실시예들에서 가능한 시도들 모두를 반복적으로 생성할 수도 있고, 일부 실시예들에서 가능한 시도들 중 일부만을 반복적으로 생성할 수도 있다. 도 14a에 도시된 바와 같이, 등록이 완료되지 아니한 경우 동작 S21a가 후속하여 수행될 수 있는 한편, 등록이 완료된 경우 동작 S27a가 후속하여 수행될 수 있다.
동작 S27a에서, 정당한 엔티티(142a)는 등록 단계를 해제할 수 있다. 예를 들면, 정당한 엔티티(142a)는 등록 단계의 해제를 지시하는 신호를 집적 회로(144a)에 제공할 수 있다. 그 다음에, 동작 S28a에서, 집적 회로(144a)는, 등록 단계의 해제에 응답하여 제1 인터페이스 회로를 디스에이블시킬 수 있다. 이에 따라, 집적 회로(144a)로부터 내부 응답의 출력이 금지될 수 있다.
동작 S29a 내지 동작 S31a에서, 정당한 엔티티(142a)는 집적 회로(144a)의 인증을 위하여 집적 회로(144a)에 제공한 제1 시도에 대응하는 제1 해밍 가중치를 추정할 수 있다. 일부 실시예들에서, 정당한 엔티티(142a)는 제1 시도를 생성하기 위하여 제1 해밍 가중치를 추정할 수 있다. 예를 들면, 정당한 엔티티(142a)는 제1 시도의 제1 해밍 가중치가 도 4를 참조하여 전술된 바와 같이 오류를 포함할 수 있는 범위에 속하는지 여부를 판정하기 위하여 제1 해밍 가중치를 추정할 수 있다. 일부 실시예들에서, 정당한 엔티티(142a)는 집적 회로(144a)로부터 제공된 제1 응답을 평가하기 위하여 제1 해밍 가중치를 추정할 수도 있다.
동작 S29a에서, 정당한 엔티티(142a)는 시도 및 내부 응답의 복수의 쌍들을 참조할 수 있다. 전술된 바와 같이, 등록 단계의 동작들(S21a 내지 S26a)에서 시도 및 내부 응답의 쌍들이 수집될 수 있고, 정당한 엔티티(142a)는 수집된 시도 및 내부 응답의 쌍들을 인증 단계에서 참조할 수 있다. 동작 S30a에서, 정당한 엔티티(142a)는 제1 내부 응답을 획득할 수 있다. 정당한 엔티티(142a)는 시도 및 응답의 복수의 쌍들에 기초하여 제1 시도에 대응하는 제1 내부 응답을 획득할 수 있다. 이에 따라, 제1 내부 응답은 제1 시도에 응답하여 집접 회로(144a)에서 생성되는 내부 응답에 대응할 수 있다. 동작 S31a에서, 정당한 엔티티(142a)는 제1 해밍 가중치를 계산할 수 있다. 예를 들면, 정당한 엔티티(142a)는 제1 내부 응답에 포함된 '1'의 개수를 카운트함으로써 제1 해밍 가중치를 계산할 수 있다. 전술된 바와 같이, 제1 해밍 가중치는 제1 시도의 생성 여부 판정 및/또는 집적 회로(144a)로부터 제공된 제1 응답의 평가에 사용될 수 있다.
도 14b를 참조하면, 일부 실시예들에서, 정당한 엔티티(142b)는 등록 단계에서 집적 회로(144b)가 제공하는 해밍 가중치들을 저장할 수 있고, 저장된 해밍 가중치들에 기초하여 인증 단계에서 해밍 가중치를 사용할 수 있다. 도 14b에 도시된 바와 같이, 등록 단계에서 동작들(S21b 내지 S28b)이 수행될 수 있고, 인증 단계에서 동작들(S29b, S30b)이 수행될 수 있다.
동작 S21b에서 정당한 엔티티(142b)는 시도를 생성할 수 있고, 동작 S22b에서 정당한 엔티티(142b)는 생성된 시도를 집적 회로(144b)에 제공할 수 있다. 그 다음에, 동작 S23b에서 집적 회로(144b)는 제공된 시도에 기초하여 내부 응답의 해밍 가중치를 생성할 수 있고, 동작 S24b에서 정당한 엔티티(142b)에 해밍 가중치를 제공할 수 있다. 예를 들면, 도 11b를 참조하여 전술된 바와 같이, 집적 회로(144b)는 등록 단계에서 인에이블되는 제2 인터페이스 회로(예컨대, 도 11b의 118b)를 통해서 정당한 엔티티(142b)에 해밍 가중치를 제공할 수 있다.
동작 S25b에서, 정당한 엔티티(142b)는 시도 및 해밍 가중치의 쌍을 저장할 수 있다. 구체적으로, 정당한 엔티티(142b)는 동작 S21b에서 생성된 시도 및 동작 S24b에서 제공된 해밍 가중치를 상호 맵핑할 수 있고, 상호 맵핑된 시도 및 해밍 가중치의 쌍을 저장소에 저장할 수 있다. 동작 S26b에서, 정당한 엔티티(142b)는 등록이 완료되었는지 여부를 판정할 수 있다. 도 14b에 도시된 바와 같이, 등록이 완료되지 아니한 경우 동작 S21b가 후속하여 수행될 수 있는 한편, 등록이 완료된 경우 동작 S27b가 후속하여 수행될 수 있다. 동작 S27b에서, 정당한 엔티티(142b)는 등록 단계를 해제할 수 있고, 동작 S28b에서, 집적 회로(144b)는 등록 단계의 해제에 응답하여 제2 인터페이스 회로를 디스에이블 시킬 수 있다.
동작 S29b 및 동작 S30b에서, 정당한 엔티티(142b)는 집적 회로(144b)의 인증을 위하여 집적 회로(144b)에 제공한 제1 시도에 대응하는 제1 해밍 가중치를 추정할 수 있고, 추정된 제1 해밍 가중치는 도 14a를 참조하여 전술된 바와 같이 다양한 용도로 사용될 수 있다. 동작 S29b에서, 정당한 엔티티(142b)는 시도 및 해밍 가중치의 복수의 쌍들을 참조할 수 있다. 전술된 바와 같이, 등록 단계의 동작들(S21b 내지 S26b)에서 시도 및 해밍 가중치의 쌍들이 수집될 수 있고, 정당한 엔티티(142b)는 수집된 시도 및 해밍 가중치의 쌍들을 인증 단계에서 참조할 수 있다. 동작 S30b에서, 정당한 엔티티(142b)는 제1 해밍 가중치를 획득할 수 있고, 제1 해밍 가중치는, 도 13을 참조하여 전술된 바와 같이, 제1 시도의 생성 여부 판정 및/또는 집적 회로(144b)로부터 제공된 제1 응답의 평가에 사용될 수 있다.
도 14c를 참조하면, 일부 실시예들에서, 정당한 엔티티(142c)는 등록 단계에서 집적 회로(144c)가 제공하는 내부 응답을 획득할 수 있고, 시도 및 내부 응답을 학습시킨 모델(본 명세서에서 PUF 모델로서 지칭될 수 있다)을 생성할 수 있다. 예를 들면, PUF 모델은 도 12a 및 도 12b의 컴퓨팅 시스템들(122a, 122b)에 구현될 수도 있고, 컴퓨팅 시스템들(122a, 122b)과 통신가능하게 접속된 다른 컴퓨팅 시스템에 구현될 수도 있다. 정당한 엔티티(142c)는, 등록 단계에서 복수의 시도들 및 내부 응답들에 기초하여 학습된 PUF 모델을, 인증 단계에서 사용할 수 있다. 도 14c에 도시된 바와 같이, 등록 단계에서 동작들(S21c 내지 S28c)이 수행될 수 있고, 인증 단계에서 동작들(S29c, S30c)이 수행될 수 있다.
동작 S21c에서 정당한 엔티티(142c)는 시도를 생성할 수 있고, 동작 S22c에서 정당한 엔티티(142c)는 생성된 시도를 집적 회로(144c)에 제공할 수 있다. 그 다음에, 동작 S23c에서 집적 회로(144c)는 제공된 시도에 기초하여 내부 응답을 생성할 수 있고, 동작 S24c에서 정당한 엔티티(142c)에 내부 응답을 제공할 수 있다. 예를 들면, 도 11a를 참조하여 전술된 바와 같이, 집적 회로(144c)는 등록 단계에서 인에이블되는 제1 인터페이스 회로(예컨대, 도 11a의 116a)를 통해서 정당한 엔티티(142c)에 내부 응답을 제공할 수 있다.
동작 S25c에서, 정당한 엔티티(142c)는 시도 및 내부 응답을 학습할 수 있다. 예를 들면, 정당한 엔티티(142c)는 기계 학습에 기반하여 시도 및 내부 응답을 학습한 PUF 모델을 생성할 수 있다. 도 14a 및 도 14b의 예시들과 비교할 때, 등록 단계에서, 시도 및 내부 응답의 복수의 쌍들 및/또는 시도 및 해밍 가중치의 복수의 쌍들이 저장되는 대신, 시도 및 내부 응답의 복수의 쌍들을 학습한 PUF 모델이 생성될 수 있다. 동작 S26c에서, 정당한 엔티티(142c)는 등록이 완료되었는지 여부를 판정할 수 있다. 도 14c에 도시된 바와 같이, 등록이 완료되지 아니한 경우 동작 S21c가 후속하여 수행될 수 있는 한편, 등록이 완료된 경우 동작 S27c가 후속하여 수행될 수 있다. 동작 S27c에서, 정당한 엔티티(142c)는 등록 단계를 해제할 수 있고, 동작 S28c에서, 집적 회로(144c)는 등록 단계의 해제에 응답하여 제1 인터페이스 회로를 디스에이블 시킬 수 있다.
동작 S29c 및 동작 S30c에서, 정당한 엔티티(142c)는 집적 회로(144c)의 인증을 위하여 집적 회로(144c)에 제공한 제1 시도에 대응하는 제1 내부 응답을 PUF 모델로부터 획득할 수 있고, 제1 내부 응답의 해밍 가중치, 즉 제1 해밍 가중치를 계산하여 도 14a를 참조하여 전술된 바와 같이 다양한 용도로 사용할 수 있다. 동작 S29c에서, 정당한 엔티티(142c)는 제1 시도를 PUF 모델에 제공할 수 있고, 그 다음에 동작 S30c에서, 정당한 엔티티(142c)는 PUF 모델로부터 제1 내부 응답을 획득할 수 있다. 전술된 바와 같이, PUF 모델은 등록 단계에서 시도 및 내부 응답의 복수의 쌍들에 기초하여 학습된 상태일 수 있고, 이에 따라 제1 시도에 대응하는 제1 내부 응답이 PUF 모델로부터 획득될 수 있다. 일부 실시예들에서, 집적 회로(144c)에 포함된 PUF 블록(예컨대, 도 1의 10)이 생성하는 내부 응답의 높은 엔트로피에 기인하여 PUF 모델로부터 획득된 제1 내부 응답이 제1 시도에 기초하여 집적 회로(144c)에서 생성된 내부 응답과 정확하게 일치하지 아니하더라도, 내부 응답으로부터 계산된 해밍 가중치가 집적 회로(144c)가 제공하는 응답의 생성에 사용되므로, 동작 S30c에서 획득된 제1 내부 응답은 제1 시도를 생성하거나 그리고/또는 제1 응답을 평가하는데 사용될 수 있다.
도 15a 및 도 15b는 본 개시의 예시적 실시예들에 따른 집적 회로의 예시들을 나타내는 블록도이다. 이상에서 도면들을 참조하여 전술된 바와 같이, 집적 회로들(150a, 150b)은 시도(CHA)에 대응하는 내부 응답(I_RES)을 생성할 수 있고, 내부 응답(I_RES)에 기초하여 응답(RES)을 생성할 수 있고, 이에 따라 시도-응답 방식의 물리적 복제방지 기능을 가능하게 할 수 있다. 이하에서, 도 15a 및 도 15b에 대한 설명 중 중복되는 내용은 생략될 것이다.
도 15a를 참조하면, 일부 실시예들에서, 집적 회로(150a)는 외부로부터 제공된 시도(CHA)를 직접 수신할 수 있고, 시도(CHA)에 대응하는 응답(RES)을 외부로 직접 출력할 수 있다. 예를 들면, 집적 회로(150a)는 집적 회로(150a)를 포함하는 장치에서 인증을 위해 사용되는 전용의 부품으로서 사용될 수 있다. 도 15a에서 도시된 바와 같이, 집적 회로(150a)는 PUF 블록(152a) 및 응답 생성기(154a)를 포함할 수 있고, PUF 블록(152a)은 시도(CHA) 또는 시도(CHA)로부터 생성된 내부 시도(예컨대, 도 5a의 I_CHA)에 기초하여 내부 응답(I_RES)을 생성할 수 있다. 응답 생성기(154a)는 내부 응답(I_RES)의 해밍 가중치를 계산할 수 있고, 해밍 가중치를 적어도 하나의 기준치와 비교함으로써 응답(RES)을 집적 회로(150a)의 외부로 출력할 수 있다.
도 15b를 참조하면, 일부 실시예들에서, 집적 회로(150b)는 시도-인증 방식의 물리적 복제방지 기능뿐만 아니라 다른 기능을 수행하는 기능 블록을 포함할 수 있다. 예를 들면, 집적 회로(150b)는 시스템-온-칩(SoC)으로서, 도 15b에 도시된 바와 같이, PUF 블록(152b), 응답 생성기(154b)뿐만 아니라 프로세서(156b)를 더 포함할 수 있다. 일부 실시예들에서, 프로세서(156b)는 일련의 명령어들을 실행하는 임의의 프로세싱 유닛을 포함할 수도 있고, FPGA(Field Programmable Gate Array), 하드웨어 가속기(hardware accelerator) 등을 포함할 수 있다.
일부 실시예들에서, 프로세서(156b)는 통신 채널(158)을 통해서 다른 장치와 통신할 수 있고, 시도(CHA)를 수신하거나 응답(RES)을 전송할 수 있다. 통신 채널(158)은 유선 채널 및/또는 무선 채널을 포함할 수 있다. 예를 들면, 도 15b에 도시된 바와 같이, 프로세서(156b)는 통신 채널(158)을 통해서 수신된 신호에 기초하여 시도(CHA)를 PUF 블록(152b)에 제공할 수 있고, 응답 생성기(154b)로부터 제공된 응답(RES)을 통신 채널(158)을 통해서 전송할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 시도 응답 방식의(challenge-response) 물리적 복제방지 기능(Physically Unclonable Function; PUF)을 위한 집적 회로로서,
    n이 1보다 큰 정수일 때, 응답을 요청하는 시도에 대응하는 n-비트의 내부 응답을 출력하도록 구성된 PUF 블록; 및
    상기 내부 응답의 해밍 가중치(Hamming weight)를 계산하고, 상기 해밍 가중치를 적어도 하나의 기준치와 비교함으로써 상기 응답을 출력하도록 구성된 응답 생성기를 포함하는 집적 회로.
  2. 청구항 1에 있어서,
    상기 응답 생성기는, 상기 해밍 가중치가 n/2이상인 경우 제1 값의 상기 응답을 출력하고, 상기 해밍 가중치가 n/2미만인 경우 상기 제1 값과 상이한 제2 값의 상기 응답을 출력하도록 구성된 것을 특징으로 하는 집적 회로.
  3. 청구항 1에 있어서,
    상기 응답 생성기는, 상기 해밍 가중치가 n/2보다 작은 제1 기준치 이하인 경우 제1 값의 상기 응답을 출력하고, 상기 해밍 가중치가 n/2보다 큰 제2 기준치 이상인 경우 상기 제1 값과 상이한 제2 값의 상기 응답을 출력하도록 구성된 것을 특징으로 하는 집적 회로.
  4. 청구항 3에 있어서,
    상기 응답 생성기는, 상기 해밍 가중치가 상기 제1 기준치 및 상기 제2 기준치 사이인 경우 상기 내부 응답에 독립적으로 상기 응답을 출력하도록 구성된 것을 특징으로 하는 집적 회로.
  5. 청구항 1에 있어서,
    비선형 함수에 기초하여, 상기 시도로부터 내부 시도를 생성하도록 구성된 내부 시도 생성기를 더 포함하고,
    상기 PUF 블록은, 상기 내부 시도에 기초하여 상기 내부 응답을 출력하도록 구성된 것을 특징으로 하는 집적 회로.
  6. 청구항 5에 있어서,
    상기 PUF 블록은,
    고유한 값의 비트 신호를 생성하도록 각각 구성된 n개의 PUF 소스 회로들;
    상기 PUF 소스 회로들의 비트 신호들에 의존하는 n개의 비트 신호들 중 n/2개의 비트 신호들을 비반전시킴으로써 상기 내부 응답의 n/2 비트를 출력하도록 구성된 비반전 회로; 및
    상기 PUF 소스 회로들의 비트 신호들에 의존하는 n개의 비트 신호들 중 나머지 n/2개의 비트 신호들을 반전시킴으로써 상기 내부 응답의 나머지 n/2 비트를 출력하도록 구성된 반전 회로를 포함하는 것을 특징으로 하는 집적 회로.
  7. 청구항 1에 있어서,
    상기 PUF 블록은, 복수의 논리 게이트들을 포함하고, 상기 복수의 논리 게이트들의 문턱 레벨들에 기초하여 상기 n-비트의 내부 응답을 생성하도록 구성된 것을 특징으로 하는 집적 회로.
  8. 청구항 1에 있어서,
    상기 응답 생성기는, 상기 내부 응답을 직렬화함으로써 펄스 시퀀스를 생성하고, 상기 펄스 시퀀스를 카운트함으로써 상기 해밍 가중치를 계산하도록 구성된 것을 특징으로 하는 집적 회로.
  9. 청구항 8에 있어서,
    상기 응답 생성기는, 상기 펄스 시퀀스를 카운트하도록 구성된 비동기식(asynchronous) 카운터를 포함하는 것을 특징으로 하는 집적 회로.
  10. 청구항 1에 있어서,
    상기 내부 응답을 상기 집적 회로의 외부로 출력하도록 구성된 제1 인터페이스 회로를 더 포함하고,
    상기 제1 인터페이스 회로는, 등록 단계(enrolment phase) 완료 후 디스에이블되도록 구성된 것을 특징으로 하는 집적 회로.
  11. 청구항 1에 있어서,
    상기 해밍 가중치를 상기 집적 회로의 외부로 출력하도록 구성된 제2 인터페이스 회로를 더 포함하고,
    상기 제2 인터페이스 회로는, 등록 단계 완료 후 디스에이블되도록 구성된 것을 특징으로 하는 집적 회로.
  12. 시도 응답(challenge-response) 방식의 물리적 복제방지 기능(Physically Unclonable Function; PUF)을 위한 집적 회로로서,
    n이 1보다 큰 정수일 때, 응답을 요청하는 시도에 따라 변동하는 n-비트의 내부 응답을 출력하도록 구성된 PUF 블록; 및
    상기 내부 응답에서, 적어도 하나의 비트에 대응하는 특정 값을 가지는 비트 단위를 카운트하고, 카운트 결과를 적어도 하나의 기준치와 비교함으로써 상기 응답을 출력하도록 구성된 응답 생성기를 포함하는 집적 회로.
  13. 청구항 12에 있어서,
    상기 응답 생성기는, 상기 카운트 결과가 상기 특정 값의 확률적 기대값 이상인 경우 제1 값의 상기 응답을 출력하고, 상기 카운트 결과가 상기 확률적 기대값 미만인 경우 상기 제1 값과 상이한 제2 값의 상기 응답을 출력하도록 구성된 것을 특징으로 하는 집적 회로.
  14. 청구항 12에 있어서,
    상기 응답 생성기는, 상기 카운트 결과가 상기 특정 값의 확률적 기대값보다 작은 제1 기준치 이하인 경우 제1 값의 상기 응답을 출력하고, 상기 해밍 가중치가 상기 확률적 기대값보다 큰 제2 기준치 이상인 경우 상기 제1 값과 상이한 제2 값의 상기 응답을 출력하도록 구성된 것을 특징으로 하는 집적 회로.
  15. 청구항 14에 있어서,
    상기 응답 생성기는, 상기 카운트 결과가 상기 제1 기준치 및 상기 제2 기준치 사이인 경우 상기 내부 응답에 독립적으로 상기 응답을 출력하도록 구성된 것을 특징으로 하는 집적 회로.
  16. 청구항 12에 있어서,
    비선형 함수에 기초하여, 상기 시도로부터 내부 시도를 생성하도록 구성된 내부 시도 생성기를 더 포함하고,
    상기 PUF 블록은, 상기 내부 시도에 기초하여 상기 내부 응답을 출력하도록 구성된 것을 특징으로 하는 집적 회로.
  17. 청구항 14에 있어서,
    상기 PUF 블록은, 상기 내부 시도에 따라 변동하는 고유한 값의 비트 신호를 생성하도록 각각 구성된, n개의 PUF 소스 회로들을 포함하는 것을 특징으로 하는 집적 회로.
  18. 청구항 12에 있어서,
    상기 응답 생성기는,
    상기 내부 응답을 직렬화함으로써 펄스 시퀀스를 생성하도록 구성된 직렬화기;
    상기 펄스 시퀀스를 카운트하도록 구성된 카운터; 및
    상기 카운터의 출력 신호를 상기 적어도 하나의 기준치와 비교하도록 구성된 비교기를 포함하는 것을 특징으로 하는 집적 회로.
  19. 청구항 18에 있어서,
    상기 카운터는, 상기 펄스 시퀀스에 응답하도록 구성된 비동기식(asynchronous) 카운터인 것을 특징으로 하는 집적 회로.
  20. 물리적 복제방지 기능(Physically Unclonable Function; PUF)을 포함하는 집적 회로를 사용하는 시도 응답 인증(challenge-response authentication) 방법으로서,
    제1 시도를 생성하는 동작;
    상기 집적 회로에 상기 제1 시도를 제공하는 동작;
    상기 집적 회로로부터 상기 제1 시도에 대응하는 제1 응답을 획득하는 동작; 및
    상기 제1 시도에 응답하여 상기 집적 회로에서 생성되는 n-비트의 제1 내부 응답의 제1 해밍 가중치(Hamming weight)에 기초하여 상기 제1 응답을 평가하는 동작을 포함하는 시도 응답 인증 방법.
KR1020190045135A 2018-11-07 2019-04-17 시도 응답 방식의 물리적 복제방지 기능을 위한 집적 회로 및 이를 사용하는 방법 KR20200052808A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/567,751 US11277272B2 (en) 2018-11-07 2019-09-11 Integrated circuit and method for challenge-response physically unclonable function

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180136043 2018-11-07
KR20180136043 2018-11-07

Publications (1)

Publication Number Publication Date
KR20200052808A true KR20200052808A (ko) 2020-05-15

Family

ID=70679207

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190045135A KR20200052808A (ko) 2018-11-07 2019-04-17 시도 응답 방식의 물리적 복제방지 기능을 위한 집적 회로 및 이를 사용하는 방법

Country Status (1)

Country Link
KR (1) KR20200052808A (ko)

Similar Documents

Publication Publication Date Title
Zalivaka et al. Reliable and modeling attack resistant authentication of arbiter PUF in FPGA implementation with trinary quadruple response
US10366253B2 (en) Reliability enhancement methods for physically unclonable function bitstring generation
US11277272B2 (en) Integrated circuit and method for challenge-response physically unclonable function
US11005668B2 (en) System and method for generating secret information using a high reliability physically unclonable function
Suzuki et al. The glitch PUF: A new delay-PUF architecture exploiting glitch shapes
Rührmair et al. Efficient power and timing side channels for physical unclonable functions
CN108243008B (zh) 用于生成秘密信息的系统和方法
Majzoobi et al. Slender PUF protocol: A lightweight, robust, and secure authentication by substring matching
US9031232B2 (en) Bit sequence generation apparatus and bit sequence generation method
US9501664B1 (en) Method, apparatus and system to compensate for drift by physically unclonable function circuitry
Yan et al. Phase calibrated ring oscillator PUF design and implementation on FPGAs
Rührmair et al. Power and timing side channels for PUFs and their efficient exploitation
Zalivaka et al. FPGA implementation of modeling attack resistant arbiter PUF with enhanced reliability
Mills et al. Design and evaluation of a delay-based FPGA physically unclonable function
CN113539334A (zh) 用于物理不可克隆函数的测量机制
US11411751B2 (en) Correlation-based robust authentication technique using helper data only
US10027492B1 (en) Method of and circuit for generating a physically unclonable function
Yu et al. Leveraging balanced logic gates as strong PUFs for securing IoT against malicious attacks
KR20200052808A (ko) 시도 응답 방식의 물리적 복제방지 기능을 위한 집적 회로 및 이를 사용하는 방법
Müelich Channel coding for hardware-intrinsic security
Rahman et al. Design and security-mitigation of custom and configurable hardware cryptosystems
Tariguliyev et al. Reliability and security of arbiter‐based physical unclonable function circuits
Xu et al. Post-silicon validation and calibration of hardware security primitives
Yoshinaga et al. Physically unclonable function using RTN-induced delay fluctuation in ring oscillators
Plusquellic PUF-based authentication