KR20210095460A - 시도-응답 방식을 이용하여 인증을 수행하는 집적 회로 및 이를 사용하는 방법 - Google Patents

시도-응답 방식을 이용하여 인증을 수행하는 집적 회로 및 이를 사용하는 방법 Download PDF

Info

Publication number
KR20210095460A
KR20210095460A KR1020200009398A KR20200009398A KR20210095460A KR 20210095460 A KR20210095460 A KR 20210095460A KR 1020200009398 A KR1020200009398 A KR 1020200009398A KR 20200009398 A KR20200009398 A KR 20200009398A KR 20210095460 A KR20210095460 A KR 20210095460A
Authority
KR
South Korea
Prior art keywords
internal
response
valid
attempts
generator
Prior art date
Application number
KR1020200009398A
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 KR1020200009398A priority Critical patent/KR20210095460A/ko
Priority to US17/015,554 priority patent/US11368319B2/en
Priority to CN202110034190.9A priority patent/CN113158200A/zh
Publication of KR20210095460A publication Critical patent/KR20210095460A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • 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/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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response
    • 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)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

시도-응답(challenge-response) 방식을 이용하여 인증을 수행하는 집적 회로 및 이를 사용하는 방법이 개시된다. 본 개시의 예시적 실시예에 따른 시도-응답 방식을 이용하여 인증을 수행하는 집적 회로는 인증 모드에서, 시도(Challenge)를 수신하고, 상기 시도에 대응하는 복수의 내부 시도들을 생성하고, 스크린 정보를 이용하여 상기 복수의 내부 시도들 중 적어도 하나의 유효 내부 시도를 생성하는 내부 시도 생성기, 상기 복수의 유효 내부 시도들 각각에 따라 변동하는 복수의 유효 내부 응답들을 생성하는 물리적 복제 방지 기능(Physically Unclonable Function; PUF) 블록 및 상기 복수의 유효 내부 응답들을 이용하여 생성한 응답을 출력하는 응답 생성기를 포함할 수 있다.

Description

시도-응답 방식을 이용하여 인증을 수행하는 집적 회로 및 이를 사용하는 방법{INTEGRATED CIRCUIT PERFORMING AUTHENTICATION BY USING CHALLENGE-RESPONSE PROTOCOL AND METHOD FOR USING THE SAME}
본 개시의 기술적 사상은 시도-응답 방식을 이용하여 인증을 수행하는 집적 회로에 관한 것으로서, 자세하게는, 시도 응답 방식의 물리적 복제 방지 기능(physically unclonable function)을 이용하여 인증을 수행하기 위한 집적 회로 및 이를 사용하는 방법에 관한 것이다.
시도-응답 인증(challenge-response authentication)은 인증이 요구되는 객체, 예컨대 장치에 시도를 제공하고 장치가 제공하는 응답을 확인함으로써 장치를 인증할 수 있다. 이러한 시도-응답 인증은, 장치가 포함하는 고유 정보만을 사용하는 인증 방식과 비교할 때 높은 보안성을 제공할 수 있다. 성공적인 시도-응답 인증을 위하여, 장치는 시도에 대한 정확한 응답을 생성하는 것뿐만 아니라 다수의 시도 및 응답 페어들을 지원하는 것이 요구될 수 있다.
본 개시의 기술적 사상은 시도-응답 방식을 이용하여 인증을 수행하는 집적 회로 및 이를 사용하는 방법에 관한 것으로서, 물리적 복제 방지 기능을 시도-응답 인증을 위해 사용하는 구조를 제공하는 집적 회로 및 이를 사용하는 방법에 관한 것이다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 시도-응답 방식(Challenge-Response)을 이용하여 인증을 수행하는 집적 회로는 인증 모드에서 시도(Challenge)를 수신하고, 상기 시도에 대응하는 복수의 내부 시도들을 생성하고, 스크린 정보를 이용하여 상기 복수의 내부 시도들 중 적어도 하나의 유효 내부 시도를 생성하는 내부 시도 생성기, 상기 복수의 유효 내부 시도들 각각에 따라 변동하는 복수의 유효 내부 응답들을 생성하는 물리적 복제 방지 기능(Physically Unclonable Function; PUF) 블록 및 상기 복수의 유효 내부 응답들을 이용하여 생성한 응답을 출력하는 응답 생성기를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 시도-응답 방식을 이용하여 인증을 수행하는 집적 회로는 등록 모드에서, 복수의 시도들을 수신하고, 복수의 시도들 각각에 대한 복수의 최초 내부 시도들을 순차적으로 생성하는 내부 시도 생성기, 상기 복수의 최초 내부 시도들 각각에 따라 변동하는 복수의 최초 내부 응답들을 순차적으로 생성하는 물리적 복제 방지 기능 블록 및 상기 복수의 최초 내부 응답들 중 사용 가능한 적어도 하나의 유효 최초 내부 응답을 선별하고, 선별된 상기 적어도 하나의 유효 최초 내부 응답을 기초로 스크린 정보를 생성하는 응답 생성기를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 시도-응답 방식(Challenge-Response)을 이용하여 인증을 수행하는 집적 회로를 사용하는 방법은, 인증 모드에서, 시도(Challenge)를 수신하는 단계, 상기 시도에 대응하는 복수의 내부 시도들을 생성하는 단계, 스크린 정보를 이용하여 상기 복수의 내부 시도들 중 적어도 하나의 유효 내부 시도를 생성하는 단계, 물리적 복제 방지 기능(Physically Unclonable Function; PUF) 블록을 이용하여 상기 복수의 유효 내부 시도들 각각에 따라 변동하는 복수의 유효 내부 응답들을 생성하는 단계 및 상기 복수의 유효 내부 응답들을 이용하여 생성한 응답을 출력하는 단계를 포함할 수 있다.
본 개시의 예시적 실시예에 따른 집적 회로 및 이를 사용하는 방법은, 시도에 대응되는 내부 시도를 생성하고, 이를 이용하여 시도-응답 인증을 구현함으로써 더욱더 향상된 보안성을 달성할 수 있다. 또한, 본 개시의 예시적 실시예에 따른 집적 회로 및 이를 사용하는 방법은, 내부 시도 중 사용할 수 없는 내부 시도를 필터링함으로써 더 효율적인 인증이 수행되도록 할 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 네트워크 시스템을 나타내는 도면이다.
도 2는 본 개시의 예시적 실시예에 따른 집적 회로를 사용하는 방법을 나타내는 순서도이다.
도 3은 본 개시의 예시적 실시예에 따른 집적 회로를 나타내는 블록도이다.
도 4는 본 개시의 예시적 실시예에 따른 집적 회로를 사용하는 방법을 나타내는 순서도이다.
도 5는 본 개시의 예시적 실시예에 따른 내부 시도 생성기를 나타내는 블록도이다.
도 6은 본 개시의 예시적 실시예에 따른 응답 생성기를 나타내는 블록도이다.
도 7은 본 개시의 예시적 실시예에 따른 해밍 웨이트 생성기를 나타내는 블록도이다.
도 8은 본 개시의 예시적 실시예에 따른 해밍 웨이트의 산포를 나타내는 그래프이다.
도 9a 내지 도 9c는 본 개시의 예시적 실시예에 따른 스크린 정보 생성기의 동작을 나타내는 도면이다.
도 10는 본 개시의 예시적 실시예에 따른 집적 회로를 나타내는 블록도이다.
도 11은 본 개시의 예시적 실시예에 따른 집적 회로를 사용하는 방법을 나타내는 순서도이다.
도 12는 본 개시의 예시적 실시예에 따른 내부 시도 생성기를 나타내는 블록도이다.
도 13은 본 개시의 예시적 실시예에 따른 내부 시도 선택기의 동작을 나타내는 도면이다.
도 14는 본 개시의 예시적 실시예에 따른 응답 생성기를 나타내는 블록도이다.
도 15는 본 개시의 예시적 실시예에 따른 집적 회로를 나타내는 블록도이다.
도 16은 본 개시의 예시적 실시예에 따른 집적 회로들을 나타내는 블록도이다.
도 17은 본 개시의 예시적 실시예에 따른 집적 회로를 나타내는 블록도이다.
도 18a 및 도 18b는 본 개시의 예시적 실시예에 따른 집적 회로를 사용하는 환경을 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시예에 따른 네트워크 시스템을 나타내는 도면이다.
도 1을 참조하면, 네트워크 시스템(1)은 호스트(20) 및 집적 회로(10)를 포함하고, 호스트(20)는 인증 모듈(21)을 포함할 수 있다. 호스트(20)는 집적 회로(10)의 정당한(authenticated) 권리를 갖는 엔티티가 운영하는 네트워크 시스템으로서, 예컨데 집적 회로(10)의 제조자의 네트워크 시스템일 수 있다. 호스트(20)는 서버(Server)의 형태로 구현될 수 있고, 집적 회로(10)는 호스트(20)와 유무선 네트워크를 이용하여 연결될 수 있다.
등록 모드에서, 인증 모듈(21)은 집적 회로(10)를 등록할 수 있다. 일 실시예에서, 인증 모듈(21)은 집적 회로(10)에 복수의 시도들을 출력하고, 복수의 시도들과 복수의 시도들 각각에 대응하여 수신한 복수의 응답들의 대응 쌍인 시도-응답 페어들을 저장할 수 있다. 인증 모듈(21)은 집적 회로(10)의 생애 주기(Lifecycle) 동안 한번, 등록 모드에 따른 등록 동작을 수행할 수 있고, 일 예시에서 집적 회로(10)가 제조된 직후에 수행될 수 있다. 일 예시에서, 시도-응답 페어들의 개수는 집적 회로(10)의 생애 주기 동안 집적 회로(10)를 인증하기 위한 인증 동작을 수행하는 데 이용할 수 있는 개수 이상으로 호스트(20)에 의해 임의로 결정될 수 있다.
인증 모드에서, 인증 모듈(21)은 집적 회로(10)에 대한 인증을 수행할 수 있다. 일 실시예에서, 인증 모듈(21)은 등록 모드에서 생성한 시도-응답 페어들에 포함되는 복수의 시도들 중 어느 하나의 시도(CHA)를 임의로 결정하고, 결정한 시도(CHA)를 집적 회로(10)에 출력할 수 있다. 또한, 인증 모듈(21)은 시도(CHA)에 대응하여 집적 회로(10)로부터 수신한 응답(RES)에 기초하여 집적 회로(10)를 인증할 수 있다. 일 실시예에서, 인증 모듈(21)은 수신한 응답(RES)이 시도(CHA)에 대응된 응답과 동일한지 여부를 기초로 집적 회로(10)를 인증할 수 있다.
집적 회로(10)는 시도-응답 인증(challenge-response authentication)을 위한 집적 회로 또는 장치로서 지칭될 수 있다. 집적 회로(10)는 시도(CHA)에 대응하는 응답(RES)을 생성할 수 있다. 집적 회로(10)는 반도체 공정을 통해서 제조될 수 있고, 집적 회로(10)의 구성요소들은, 단일 패키지에 패키징될 수도 있고, 2이상의 패키지들에 각각 패키징될 수도 있다.
집적 회로(10)는 내부 시도 생성기(110)를 포함할 수 있다. 내부 시도 생성기(110)는 시도(CHA)에 대응하여 내부 시도를 생성할 수 있다. 일 실시예에서, 내부 시도 생성기(110)는 비선형 함수에 기초하여 내부 시도를 생성할 수 있다. 일 예시에서, 내부 시도 생성기(110)는 시도(CHA)를 해시(Hash) 함수(예를 들면, CRC32(Cyclical Redundancy Check 32), md5(message digest algorithm 5), SHA-1(Secure Hash Algorithm-1), SHA-256(Secure Hash Algorithm-256), RIPEMD-128(Race Integrity Primitives Evaluation Message Digest-128), Tiger)에 적용함으로써 내부 시도를 생성할 수 있다. 일 예시에서, 내부 시도 생성기(110)는 시도(CHA)를 미리 결정된 암호화 알고리즘(예를 들면, DES(Data Encryption Standard), Triple DES, AES(Advanced Encryption Standard), RSA(Rivest Shamir Adleman), ECC(Elliptic Curve Cryptosystem))에 적용함으로써 내부 시도를 생성할 수 있다. 일 예시에서, 내부 시도 생성기(110)는 시도(CHA)를 스크램블 함수에 적용시킴으로써 데이터를 스크램블함으로써 내부 시도를 생성할 수 있다. 일 실시예에서, 내부 시도 생성기(110)는 인증 모드에서, 생성한 내부 시도 중 유효한 내부 시도를 선별할 수 있다.
본 개시의 일 실시예에 따르면, 집적 회로(10)는 생성된 복수의 내부 시도들 중 유효한 내부 시도를 선별할 수 있고, 유효한 내부 시도 만을 이용하여 응답(RES)을 생성할 수 있다. 일 실시예에서, 등록 모드에서 집적 회로(10)는 복수의 시도들 각각에 대응하여 생성된 복수의 최초 내부 시도들 중 유효한 최초 내부 시도를 판별하고, 유효한 최초 내부 시도에 대한 정보를 저장할 수 있다. 인증 모드에서 집적 회로(10)는 유효한 최초 내부 시도에 대한 정보를 기초로 시도(CHA)에 대응하여 생성된 복수의 내부 시도들 중 유효한 내부 시도를 선별하고, 유효한 내부 시도만을 이용하여 응답(RES)을 생성할 수 있다.
본 명세서에서 설명의 편의상, 최초 내부 시도는 등록 모드에서 생성되는 내부 시도를 의미하고, 최초 내부 응답은 등록 모드에서 생성되는 내부 응답을 의미할 수 있다.
도 2는 본 개시의 예시적 실시예에 따른 집적 회로를 사용하는 방법을 나타내는 순서도이다. 상세하게는, 도 2는 구체적으로, 호스트(20)가 집적 회로(10)를 등록하고 인증하는 방법을 나타낸다.
도 2를 참조하면, 호스트(20)는 집적 회로(134)를 등록하고(S11), 집적 회로(10)는 이에 대응하여 등록 단계를 진행할 수 있다. 일 예시에서, 호스트(20)는 집적 회로(10)에 복수의 시도들을 제공하고, 집적 회로(10)는 복수의 시도들 각각에 대응하는 복수의 응답들을 호스트(20)에 제공할 수 있다. 호스트(20)는 복수의 시도들 및 복수의 응답들로 구성된 시도-응답 페어를 데이터 베이스(DB)로서 관리할 수 있다.
집적 회로(10)는 등록 단계에서, 복수의 시도들 각각에 대응하는 스크린 정보를 생성할 수 있다(S12). 일 실시예에서, 집적 회로(10)는 복수의 시도들 각각에 대응하는 복수의 최초 내부 시도들을 생성할 수 있고, 스크린 정보는 복수의 최초 내부 시도들 중 유효한 최초 내부 시도들에 대한 정보를 포함할 수 있다. 일 실시예에서, 집적 회로(10)는 최초 내부 시도들 각각에 대응한 최초 내부 응답들을 생성하고, 최초 내부 응답들에 대한 해밍 웨이트(Hamming weight)를 기초로 최초 내부 시도가 유효한지 여부를 판단할 수 있다. 이에 관해서는 도 6 등에서 상세하게 후술한다. 일 실시예에서, 집적 회로(10)는 생성한 스크린 정보를 내부 저장 소자에 저장할 수 있다. 일 실시예에서, 집적 회로(10)는 생성한 스크린 정보를 호스트(20)에 출력하고, 호스트(20)는 스크린 정보를 저장할 수 있다.
호스트(20)는 등록 단계가 완료된 이후 특정한 시점에서 인증 단계에 진입할 수 있다. 호스트(20)는 인증 단계에서, 집적 회로(10)를 인증하기 위해 데이터 베이스(DB)에 저장된 시도-응답 페어들 중 어느 하나의 시도-응답 페어를 선택하고, 선택된 시도-응답 페어에 포함되는 제1 시도를 생성할 수 있다(S13). 호스트(20)는 생성한 제1 시도를 집적 회로(10)에 제공할 수 있다(S14).
집적 회로(10)는 제1 시도를 수신하고, 스크린 정보를 이용하여 제1 응답을 생성할 수 있다(S15). 일 실시예에서, 집적 회로(10)는 제1 시도를 이용하여 복수의 내부 시도들을 생성하고, 스크린 정보를 통해 복수의 내부 시도들 중 유효한 내부 시도를 선별할 수 있다. 집적 회로(10)는 유효한 내부 시도를 이용하여 제1 응답을 생성할 수 있다. 집적 회로(10)는 생성한 제1 응답을 호스트(20)에 제공할 수 있다(S16).
호스트(20)는 수신한 제1 응답을 평가할 수 있다(S17). 일 예시에서, 호스트(20)는 제1 시도에 대응하는 응답을 데이터 베이스(DB)를 이용하여 추정할 수 있고, 추정된 응답과 제1 응답을 비교함으로써 제1 응답을 평가할 수 있다. 호스트(20)는 추정된 응답과 제1 응답이 일치하는 경우 집적 회로(10)의 인증을 성공으로 판정하는 한편, 그렇지 아니한 경우 집적 회로(10)의 인증을 실패로 판정할 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 집적 회로를 나타내는 블록도이다. 상세하게는, 도 3은 등록 모드에서 집적 회로의 동작을 나타낸다. 도 1과 중복되는 내용은 생략한다.
도 3을 참조하면, 집적 회로(10)는 내부 시도 생성기(110a), 물리적 복제 방지 기능(Physically Unclonable Function;PUF) 블록 및 응답 생성기(130a)를 포함할 수 있다. 내부 시도 생성기(110a)는 도 1의 내부 시도 생성기(110)의 등록 모드에서의 동작과 동일하거나 유사한 동작을 수행할 수 있다.
등록 모드에서, 내부 시도 생성기(110a)는 외부(예를 들면, 도 1의 호스트(20))로부터 복수의 시도들(CHA1~CHAn)을 수신할 수 있다. 복수의 시도들(CHA1~CHAn)는 시도-응답 페어로서 사용 가능한 시도 세트일 수 있고, 호스트(20)에 의해 임의적으로 결정될 수 있다. 복수의 시도들(CHA1~CHAn)의 개수는 집적 회로(10)의 생애 주기동안 인증될 수 있는 횟수에 대응될 수 있고, 호스트(20)에 의해 임의적으로 결정될 수 있다.
내부 시도 생성기(110a)는 변환 알고리즘을 이용하여 복수의 시도들(CHA1~CHAn) 중 각각에 대응하는 복수의 최초 내부 시도들(II_CHAk)을 순차적으로 생성할 수 있다. 일 예시에서, 하나의 시도에 대응하여 복수의 최초 내부 시도들이 생성될 수 있다. 일 실시예에서, 변환 알고리즘은 도 1에서 상술한 바와 같이 암호화 알고리즘, 해쉬 알고리즘, 스크램블 알고리즘 중 어느 하나를 포함할 수 있다.
PUF 블록(120a)은, 복수의 최초 내부 시도들(II_CHAk)을 순차적으로 수신하고, 이에 대응하는 최초 내부 응답(II_RESk)을 순차적으로 생성할 수 있다. PUF 블록(120a)은 복수의 PUF 소스 회로들을 포함할 수 있다. PUF 소스 회로는 물리적 복제방지 기능(Physically Unclonable Function; PUF)에 따라 고유한 값의 신호를 생성할 수 있고, 본 명세서에서 PUF 셀로서 지칭될 수도 있다. 물리적 복제방지 기능(PUF)은 하드웨어의 본질적인(intrinsic) 특성에 기초하여 하드웨어에 대응하는 고유한(unique) 값을 제공하는 것을 지칭할 수 있다. 예를 들면, 반도체 칩들과 같은 복수의 하드웨어들이 동일한 공정에 의해서 제조될지라도, 복수의 하드웨어들 각각은 물리적으로 완전히 일치하지 아니할 수 있고, 복수의 하드웨어들에서 미약한 변동(variation)들이 발생할 수 있다. 이러한 변동들에 기초하여, 하드웨어의 고유한 값이 추출될 수 있고, 추출된 값은 보안이 필요한 어플리케이션, 예컨대 보안 통신, 보안 데이터 처리, 사용자 식별, 펌웨어(firmware) 업데이트 등에 사용될 수 있다.
일부 실시예들에서, PUF 블록(120a)에 포함되는 PUF 소스 회로는 고유한 값의 비트 신호를 생성하는 임의의 구조를 가질 수 있다. PUF 소스 회로는 비제한적인 예시로서, SRAM(Static Random Access Memory) 셀에 저장된 값에 기초한 SRAM 유형 PUF 구조를 가질 수도 있고, 주파수 변동에 기초한 링 오실레이터 구조를 가질 수도 있고, 누설 전류 등에 기초한 누설 기반 PUF 구조를 가질 수도 있으며, 신호의 경로가 임의로 결정되는 아비터(arbiter) PUF 구조를 가질 수도 있다. 또한, PUF 소스 회로는 로직 게이트들의 문턱 레벨들의 차이에 기초하여 고유한 값의 비트 신호를 생성할 수도 있다.
PUF 블록(120a)은 복수의 PUF 소스 회로들이 생성하는 신호들 및 최초 내부 시도(II_CHAk)에 기초하여 최초 내부 응답(II_RESk)을 생성할 수 있고, 이에 따라 최초 내부 응답(II_RESk)은, 동일한 구조의 다른 집적 회로에 포함된 PUF 블록이 동일한 최초 내부 시도(II_CHAk)로부터 생성하는 최초 내부 응답과 상이할 수 있다. 일부 실시예들에서, PUF 블록(120a)은 n-비트의 최초 내부 응답(II_RESk)을 생성할 수 있다(n은 1보다 큰 정수). 예를 들면, PUF 블록(120a)은 n개의 PUF 소스 회로들을 포함할 수 있고, 하나의 PUF 소스 회로는 1-비트에 대응하는 비트 신호를 생성할 수 있다.
응답 생성기(130a)는 최초 내부 응답(II_RESk)을 수신할 수 있고, 최초 내부 응답(II_RESk)으로부터 복수의 응답들(RES1~RESn)을 순차적으로 생성할 수 있다. 또한, 응답 생성기(130a)는 최초 내부 응답(II_RESk)을 기초로 스크린 정보(Info_SCR)를 생성할 수 있다. 일 실시예에서, 응답 생성기(130a)는 n(n은 자연수)비트의 최초 내부 응답(II_RESk)의 해밍 웨이트(Hamming weight)에 기초하여 스크린 정보를 생성할 수 있다. 해밍 웨이트(Hamming weight)는 제로(zero) 심볼로부터 상이한 심볼들의 개수를 지칭할 수 있고, 예컨대 멀티-비트 신호에서는 '1'의 개수를 지칭할 수 있다. 이에 따라, n-비트의 최초 내부 응답(II_RESk)의 해밍 웨이트(HW)는 0 내지 n의 값을 가질 수 있다.
PUF 블록(120a)이 생성하는 최초 내부 응답(II_RESk)은 다른 집적 회로에서 생성되는 내부 응답과 상이할 수 있고, 이에 따라 집적 회로들에서 생성되는 내부 응답들의 해밍 웨이트들은 0 내지 n사이에서 산포를 가질 수 있다. 예를 들면, 근사적으로 n/2인 해밍 웨이트를 가지는 최초 내부 응답(II_RESk)을 생성하는 집적 회로들의 수가 상대적으로 많은 한편, 근사적으로 0 또는 n인 해밍 웨이트를 가지는 최초 내부 응답(II_RESk)을 생성하는 집적 회로들의 수가 상대적으로 적을 수 있다.
시도-응답 인증의 성공을 위하여, 동일한 시도에 대응하는 일정한 응답이 생성될 것이 요구될 수 있다. 응답 생성기(130a)는 해밍 웨이트에 기초하여 복수의 응답들(RES1~RESn)을 생성함으로써 PUF 블록(10)에서 발생할 수 있는 오류가 누적되는 것을 방지할 수 있다. 예를 들면, PUF 블록(120a)에 포함된 복수의 PUF 소스 회로들 중 적어도 일부는 일정한 값의 비트 신호를 생성할 수 있는 한편, 다른 적어도 일부는 조건(예컨대, 시간, 온도, 전압 등)에 따라 변동하는 비트 신호를 생성할 수 있다. 전자는 안정(stable) PUF 소스 회로로서 지칭될 수 있는 한편, 후자는 불안정(unstable) PUF 소스 회로로서 지칭될 수 있다. 만약 응답을 생성하기 위하여 복수의 PUF 소스 회로들이 출력하는 복수의 비트 신호들을 논리 연산(예컨대, AND, OR 등)함으로써 병합하는 경우, 불안정 PUF 소스 회로들에 기인하여 오류가 발생할 수 있다. 즉, 불안정 PUF 소스 회로들의 오류들이 응답에 누적될 수 있다. 그러나, 후술되는 바와 같이, 응답 생성기(130a)에 의해서 해밍 웨이트가 응답의 생성에 사용됨으로써 불안정 PUF 소스 회로들에 기인하는 오류들의 누적이 방지될 수 있고, 결과적으로 동일한 시도에 대응하는 일정한 응답이 생성될 수 있다.
본 개시의 일 실시예에서, 응답 생성기(130a)는, 최초 내부 응답(II_RESk)의 해밍 웨이트(HW)에 기초하여 최초 내부 응답(II_RESk)이 유효한지 여부를 판단하고, 유효한 최초 내부 응답(II_RESk)에 대응하는 최초 내부 시도(II_CHAk)에 대한 정보를 스크린 정보(Info_SCR)로서 생성할 수 있다. 또한, 도 9 등에서 후술할 바와 같이 인증 모드에서, 스크린 정보(Info_SCR)를 이용하여 유효한 내부 시도를 선별함으로써 PUF 블록(120a)에서 생성할 수 있는 오류를 사전에 차단할 수 있다.
일 실시예에서, 내부 시도 생성기(111a), PUF 블록(120a) 및 응답 생성기(130a)는 서로 독립적으로 동작할 수 있다. 즉, 내부 시도 생성기(111a)가 제1 시도에 대응한 제1 최초 내부 시도들을 생성한 이후, 제2 시도에 대응한 제2 최초 내부 시도들을 생성하는 동안 PUF 블록(120a)은 제1 최초 내부 시도들에 대응한 제1 최초 내부 응답을 생성할 수 있다. 또한, 응답 생성기(130a) 역시 내부 시도 생성기(111a) 및 PUF 블록(120a)과 독립적으로 응답을 생성할 수 있다. 상술한 바와 같이 집적 회로(10)의 각 구성이 독립적으로 동작함으로써 본 개시의 기술적 사상에 따른 집적 회로(10)는 호스트로부터의 시도에 대응한 응답 생성 동작을 빠르고 효율적으로 수행할 수 있다.
도 4는 본 개시의 예시적 실시예에 따른 집적 회로를 사용하는 방법을 나타내는 순서도이다. 상세하게는, 도 4는 등록 모드에서 집적 회로를 사용하는 방법을 나타낸다.
도 4를 참조하면, 호스트(20)는 시도 셋에 포함된 복수의 시도들을 생성하고(S21), 생성된 복수의 시도들을 집적 회로(10)에 제공할 수 있다(S22). 집적 회로(10)는 복수의 시도들 각각에 대한 최초 내부 응답들을 순차적으로 생성할 수 있다(S23). 일 실시예에서, 집적 회로(10)는 PUF 블록을 포함할 수 있다. 집적 회로(10)는 복수의 시도들 각각에 대한 복수의 최초 내부 시도들을 생성하고, PUF 블록을 이용하여 복수의 최초 내부 시도들에 따라서 변동하는 복수의 최초 내부 응답들을 순차적으로 생성할 수 있다.
집적 회로(10)는 해밍 웨이트를 기초로 복수의 최초 내부 응답들 중 유효한 최초 내부 응답을 선별할 수 있다(S24). 일 실시예에서, 집적 회로(10)는 복수의 최초 내부 응답들 각각에 대한 해밍 웨이트를 계산하고, 계산된 해밍 웨이트와 기준 값을 비교함으로써 복수의 최초 내부 응답들 각각에 대한 유효성을 판별할 수 있다.
집적 회로(10)는 유효한 최초 내부 응답을 스크린 정보를 생성할 수 있다(S25). 일 실시예에서, 스크린 정보는 유효한 최초 내부 응답에 대응하는 유효한 최초 내부 시도에 대한 정보를 포함할 수 있다. 일 실시예에서, 스크린 정보는 유효한 최초 내부 응답에 대한 정보를 포함할 수 있다.
집적 회로(10)는 유효한 최초 내부 응답을 기초로 복수의 시도들 별 응답을 생성하고(S26), 생성된 응답을 호스트(20)에 제공할 수 있다(S27). 호스트(20)는 응답을 수신하고, 응답 및 응답과 대응되는 시도를 포함하는 시도-응답 페어를 저장할 수 있다(S28). 일 실시예에서, 집적 회로(10)는 생성한 스크린 정보를 호스트(20)에 전송할 수 있다. 호스트(20)는 수신한 스크린 정보를 저장할 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 내부 시도 생성기를 나타내는 블록도이다. 상세하게는 도 5는 등록 모드에서 내부 시도 생성기의 동작을 나타낸다. 도 3과 중복되는 내용은 생략한다.
도 5를 참조하면, 내부 시도 생성기(110a)는 시도 버퍼(111a) 및 변환 모듈(112a)를 포함할 수 있다. 등록 모드에서, 시도 버퍼(111a)는 외부(예를 들면, 도 1의 호스트(20))로부터 수신한 복수의 시도들(CHA1~CHAn)을 저장하고, 변환 모듈(112a)은 시도 버퍼(111a)로부터 복수의 시도들(CHA1~CHAn)을 순차적으로 독출할 수 있다. 이를 위해 시도 버퍼(111a)는 적어도 하나의 저장 소자를 포함할 수 있고, 적어도 하나의 저장 소자는 메모리 셀은 SRAM(Static Random Memory) 셀, DRAM(Dynamic Random Access Memory) 셀, 플래시 메모리 셀, MRAM(Magnetoresistive Random Access Memory) 셀, PRAM(Phase-change Random Access Memory) 셀 등을 포함할 수 있으며, 특정 종류의 메모리 셀로 한정되지 않는다.
변환 모듈(112a)은 시도 버퍼(111a)로부터 제1 시도(CHAk)를 독출하고, 변환 알고리즘을 이용하여 제1 시도(CHAk)로부터 복수의 제1 최초 내부 시도들(II_CHAk)을 순차적으로 생성할 수 있다. 일 실시예에서, 변환 모듈(112a)은 n-비트의 제1 시도(CHAk)를 수신하고, 제1 시도(CHAk)를 변환 알고리즘에 적용함으로써 m개의 복수의 제1 최초 내부 시도들(II_CHAk)을 생성할 수 있고, m개의 복수의 제1 최초 내부 시도들(II_CHAk) 각각은 1-비트의 데이터로 구성될 수 있다.
일 실시예에서, 변환 알고리즘은 암호화 알고리즘, 해쉬 알고리즘 및 스크램블 알고리즘을 포함할 수 있고, 변환 모듈(112a)은 제1 시도(CHAk)에 변환 알고리즘을 반복적으로 적용함으로써 복수의 제1 최초 내부 시도들(II_CHAk)을 생성할 수 있다. 일 예시에서, 변환 모듈(112a)은 제1 시도(CHAk)에 변환 알고리즘을 1번 적용함으로써 첫번째 최초 내부 시도를 생성하고, 제1 시도(CHAk)에 변환 알고리즘을 m번 적용함으로써 m번째 최초 내부 시도를 생성할 수 있다.
도 5에 도시되지는 않았지만, 도 3에서 상술한 바와 같이 복수의 제1 최초 내부 시도들(II_CHAk)은 PUF 블록(120a)에 출력될 수 있고, PUF 블록(120a)에 의해 복수의 제1 최초 내부 시도들(II_CHAk) 각각에 고유하게 대응하는 복수의 제1 최초 내부 응답들(II_RESk)이 생성될 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 응답 생성기를 나타내는 블록도이다. 상세하게는 도 6은 등록 모드에서 응답 생성기의 동작을 나타낸다. 도 3과 중복되는 내용은 생략한다.
도 6을 참조하면, 응답 생성기(130a)는 내부 응답 버퍼(131a), 스크린 정보 생성기(132a), 해밍 웨이트 생성기(133a), 스크린 정보 버퍼(134a), 응답 축적기(135a) 및 복원 모듈(136a)을 포함할 수 있다.
등록 모드에서, 내부 응답 버퍼(131a)는 PUF 블록(도 3, 120a)로부터 수신한 복수의 제1 최초 내부 응답들(II_RESk)을 저장하고, 스크린 생성기(132a) 및 해밍 웨이트 생성기(133a)는 내부 응답 버퍼(131a)로부터 복수의 제1 최초 내부 응답들(II_RESk)을 순차적으로 독출할 수 있다. 이를 위해 내부 응답 버퍼(131a)는 적어도 하나의 저장 소자를 포함할 수 있고, 적어도 하나의 저장 소자는 SRAM 셀, DRAM 셀, 플래시 메모리 셀, MRAM 셀, PRAM 셀 등을 포함할 수 있으며, 특정 종류의 메모리 셀로 한정되지 않는다.
해밍 웨이트 생성기(133a)는 내부 응답 버퍼(131a)로부터 독출한 복수의 제1 최초 내부 응답들(II_RESk) 각각에 대한 해밍 웨이트(HW)를 생성할 수 있다. 해밍 웨이트 생성기(133a)이 해밍 웨이트(HW)를 생성하는 동작은 도 7 등에서 상세하게 후술한다. 해밍 웨이트 생성기(133a)는 생성한 해밍 웨이트(HW)를 스크린 정보 생성기(132a)에 출력할 수 있다.
스크린 정보 생성기(132a)는 해밍 웨이트(HW)를 기초로 복수의 제1 최초 내부 응답들(II_RESk)의 유효성 여부를 판별할 수 있다. 일 실시예에서, 스크린 정보 생성기(132a)는 비교기(CMP)를 포함할 수 있다. 비교기(CMP)는 해밍 웨이트(HW)를 적어도 하나의 기준 값(TV)을 비교하고, 스크린 정보 생성기(132a)는 비교 결과에 기초하여 복수의 제1 최초 내부 응답들(II_RESk) 각각의 유효성에 관한 유효성 비트를 생성하고, 유효성 비트를 이용하여 스크린 정보(Info_SCR)를 생성할 수 있다.
스크린 정보 생성기(132a)는 생성한 스크린 정보(Info_SCR)를 스크린 정보 버퍼(134a)에 저장할 수 있고, 스크린 정보 버퍼(134a)에 저장된 스크린 정보(Info_SCR)는 추후 인증 과정에서 사용될 수 있다. 스크린 정보 버퍼(134a)는 적어도 하나의 저장 소자로 구성될 수 있고, 적어도 하나의 저장 소자는 SRAM 셀, DRAM 셀, 플래시 메모리 셀, MRAM 셀, PRAM 셀 등을 포함할 수 있으며, 특정 종류의 메모리 셀로 한정되지 않는다. 도 6에서는 내부 응답 버퍼(131a)와 스크린 정보 버퍼(134a)가 별도의 구성으로 도시되어 있으나 이는 일 실시예이고, 내부 응답 버퍼(131a)와 스크린 정보 버퍼(134a)는 하나의 저장 소자로 구성될 수 있다.
스크린 정보 생성기(132a)는 유효성 비트에 기초하여 복수의 최초 내부 응답들(II_RESk) 중 유효한 제1 최초 내부 응답(VII_RESk)을 선별하고, 유효한 제1 최초 내부 응답(VII_RESk)을 응답 축적기(134a)에 출력할 수 있다. 응답 축적기(134a)는 유효한 제1 최초 내부 응답(VII_RESk)들을 축적함으로써 제1 오리지널 응답(RESk')을 생성할 수 있다.
복원 모듈(136a)은 제1 오리지널 응답(RESk')에 복원 알고리즘을 적용함으로써 제1 응답(RESk)을 생성하고, 생성된 제1 응답(RESk)을 외부(예를 들면, 도 1의 호스트(20))에 출력할 수 있다. 일 예시에서 제1 응답(RESk)은 제1 시도(도 4, CHAk)에 대응되는 응답일 수 있다. 일 실시예에서, 복원 알고리즘은 내부 시도 생성기(110a)에 의해 변환되는 데이터를 복원하는 알고리즘을 의미할 수 있고, 복호화 알고리즘, 해쉬 알고리즘 및 디스크램블 알고리즘 중 어느 하나를 포함할 수 있다. 일 실시예에서, 복원 알고리즘은 내부 시도 생성기(110a)에 의해 사용되는 변환 알고리즘에 대응하여 결정될 수 있다.
일 실시예에서, 스크린 정보 생성기(132a) 및 해밍 웨이트 생성기(133a)는 등록 모드에서만 사용되고, 등록 모드가 완료된 후 디스에이블 될 수 있다. 인증 모드에서는 스크린 정보(Info_SCR)을 이용하여 유효한 내부 응답을 판단할 필요 없이 응답이 생성될 수 있다. 이에 관해서는 도 12에서 상세하게 후술한다.
도 7은 본 개시의 예시적 실시예에 따른 해밍 웨이트 생성기를 나타내는 블록도이다.
도 7을 참조하면, 해밍 웨이트 생성기(133a)는 n비트의 최초 내부 응답(II_RES)을 수신할 수 있고, 최초 내부 응답(II_RES)의 해밍 웨이트(HW)를 생성할 수 있다. 이를 위해, 해밍 웨이트 생성기(133a)는 직렬화기(SER) 및 카운터(CNT)를 포함할 수 있다.
최초 내부 응답(II_RES)의 해밍 웨이트(HW)를 생성하기 위하여 감소된 전력 및 크기를 가지는 해밍 웨이트 생성기(133a)가 사용될 수 있다. 예를 들면, 사물인터넷(Internet of Things; IoT)를 위한 장치들 중 매우 작은 전력 및 크기가 요구되는 장치에 도 1의 집적 회로(10)가 포함될 수 있다. 이에 따라, 해밍 웨이트 생성기(133a)는 내부 응답(I_RES)의 각 비트들을 가산하는 대신, 후술되는 바와 같이 내부 응답(I_RES)을 직렬화하고 직렬화된 신호를 카운트함으로써 해밍 웨이트(HW)를 생성할 수 있다.
직렬화기(SER)는 내부 응답(I_RES)을 직렬화함으로써 펄스 시퀀스(SEQ)를 생성할 수 있다. 이에 따라, 펄스 시퀀스(SEQ)는 내부 응답(I_RES)의 비트에 따라 일련의 펄스들을 포함할 수 있다. 직렬화기(SER)는 내부 응답(I_RES)을 직렬화하기 위한 임의의 구조를 가질 수 있다. 카운터(CNT)는 직렬화기(SER)로부터 펄스 시퀀스(SEQ)를 수신할 수 있고, 펄스 시퀀스(SEQ)의 펄스들을 카운트함으로써 해밍 웨이트(HW)를 출력할 수 있다. 카운터(CNT)는 펄스 시퀀스(SEQ)의 펄스들을 카운트하기 위한 임의의 구조를 가질 수 있고, 일부 실시예들에서, 리플(ripple) 카운터를 포함할 수 있다.
도 8은 본 개시의 예시적 실시예에 따른 해밍 웨이트의 산포를 나타내는 그래프이다.
도 6 및 도 8를 참조하면, 비교기(CMP)는 해밍 웨이트(HW)를 2이상의 기준치들, 예컨대 제1 기준 값(TV1) 및 제2 기준 값(TV2)에 기초하여 결정함으로써 유효성 비트를 결정할 수 있다. 도 7의 예시에서, 비교기(CMP)는 제1 기준 값(TV1)보다 작은 해밍 웨이트(HW)를 갖는 최초 내부 응답에 대한 값으로서 '0'을 할당하고, 유효성 비트(VB)로서 유효함('O')을 나타내는 제1 값(예를 들면, '1')을 할당할 수 있다. 비교기(CMP)는 제2 기준 값(TV2)보다 큰 해밍 웨이트(HW)를 갖는 최초 내부 응답에 대한 값으로서 '1'을 할당하고, 유효성 비트(VB)로서 유효함('O')을 나타내는 제1 값(예를 들면, '1')을 할당할 수 있다.
비교기(CMP)는 제1 기준 값(TV1)보다 크고 제2 기준 값(TV2)보다 작은 해밍 웨이트(HW)를 갖는 최초 내부 응답에 대한 유효성 비트(VB)로서 유효하지 않음('X')을 나타내는 제2 값(예를 들면, '0')을 할당할 수 있다. 본 개시의 일 실시예에서, 스크린 정보 생성기(132a)는 복수의 최초 내부 응답들 중 유효성 비트(VB)로서 제1 값을 나타내는 최초 내부 응답을 유효한 최초 내부 응답으로 판별할 수 있고, 유효한 최초 내부 응답만을 이용하여 응답을 생성할 수 있다. 또한, 스크린 정보 생성기(132a)는 각 최초 내부 응답에 대응하는 유효성 비트(VB)를 이용하여 스크린 정보를 생성할 수 있다.
해밍 가중치(HW)를 상이한 제1 기준 값(TV1) 및 제2 기준 값(TV2)과 비교하는 경우, 불안정 PUF 소스 회로들이 최초 내부 응답의 값에 영향을 미치는 해밍 가중치(HW)는 무시될 수 있고, 불안정 PUF 소스 회로들의 비트 신호들이 변동할지라도 최초 내부 응답의 값은 일정하게 유지될 수 있다. 일부 실시예들에서, 제1 기준 값(TV1) 및 제2 기준 값(TV2)는 집적 회로를 생산하면서 누적된 데이터, 예컨대 불안정 PUF 소스 회로들의 비율에 기초하여 결정될 수 있다.
도 9a 내지 도 9c는 본 개시의 예시적 실시예에 따른 스크린 정보 생성기의 동작을 나타내는 도면이다.
도 6 및 도 9a를 참조하면, 스크린 정보 생성기(132a)는 내부 응답 버퍼(131a)로부터 복수의 최초 내부 응답들(II_RES)을 수신하고, 해밍 웨이트 생성기(133a)로부터 복수의 최초 내부 응답들(II_RES) 각각에 대한 해밍 웨이트(HW)를 수신를 수신할 수 있다. 스크린 정보 생성기(132a)는 비교기(CMP)를 포함하고, 비교기(CMP)는 기준 값(TV)과 해밍 웨이트(HW)를 비교함으로써 유효성 비트(VB)를 생성할 수 있다.
도 9a의 예시에서, 복수의 최초 내부 응답들(II_RES)은 제1 최초 내부 응답(II_RES1) 내지 제6 최초 내부 응답(II_RES6)를 포함하고, 스크린 정보 생성기(132a)는 제1 최초 내부 응답(II_RES1), 제3 최초 내부 응답(II_RES3), 제4 최초 내부 응답(II_RES4) 및 제6 최초 내부 응답(II_RES6)을 유효한 최초 내부 응답으로 판별하고, 이에 대한 유효성 비트(VB)로서 제1 값('O')을 할당할 수 있다. 또한, 스크린 정보 생성기(132a)는 제2 최초 내부 응답(II_RES2), 제5 최초 내부 응답(II_RES5)을 유효하지 않은 최초 내부 응답으로 판별하고, 이에 대한 유효성 비트(VB)로서 제2 값('X')을 할당할 수 있다. 스크린 정보 생성기(132a)는 각 최초 내부 응답 별 유효성 비트(VB)를 스크린 정보(Info_SCR)로서 저장할 수 있다. 도 8a의 예시에서, 스크린 정보 생성기(132a)는 제1 값('0')에 대응하여 '1'을 저장하고, 제2 값('X')에 대응하여 '0'을 저장함으로써 스크린 정보(Info_SCR)로서 '101101'을 생성할 수 있다.
도 6 및 도 9b를 참조하면, 스크린 정보 생성기(132b)는 유효성 비트(VB)의 제1 값('O')이 나타날 때까지의 최초 내부 응답(II_RES1~II_RES6)의 개수를 카운팅하는 카운터를 더 포함할 수 있다. 상기 카운터는 제1 최초 내부 응답(II_RES1)로부터 제1 값('O')이 나타날 때까지 최초 내부 응답은 제1 최초 내부 응답(II_RES1)의 한 개 이므로, 제1 최초 내부 응답(II_RES1)에 대응하는 유효 카운트(CNT_V)로서 '1'을 생성할 수 있다. 다음으로, 상기 카운터는 제2 최초 내부 응답(II_RES2)로부터 제1 값('O')이 나타날 때까지 최초 내부 응답은 제2 최초 내부 응답(II_RES2) 및 제3 최초 내부 응답(II_RES3)의 두 개 이므로, 제3 최초 내부 응답(II_RES3)에 대응하는 유효 카운트(CNT_V)로서 '2'을 생성할 수 있다.
마찬가지로 상기 카운터는 제4 최초 내부 응답(II_RES4)로부터 제1 값('O')이 나타날 때까지 최초 내부 응답은 제4 최초 내부 응답(II_RES4)의 한 개 이므로, 제4 최초 내부 응답(II_RES1)에 대응하는 유효 카운트(CNT_V)로서 '1'을 생성하고, 그 다음 제5 최초 내부 응답(II_RES5)로부터 제1 값('O')이 나타날 때까지 최초 내부 응답은 제5 최초 내부 응답(II_RES5) 및 제6 최초 내부 응답(II_RES6)의 두 개 이므로, 제6 최초 내부 응답(II_RES6)에 대응하는 유효 카운트(CNT_V)로서 '2'을 생성할 수 있다.
스크린 정보 생성기(132b)는 유효 카운트(CNT_V)를 스크린 정보(Info_SCR)로서 생성할 수 있다. 도 9b의 예시에서, 스크린 정보 생성기(132b)는 유효 카운트(CNT_V)로서 생성한 '1212'를 스크린 정보(Info_SCR)로서 저장할 수 있다.
도 6 및 도 9c를 참조하면, 스크린 정보 생성기(132c)는 유효성 비트(VB)의 제2 값('X')이 나타날 때까지의 최초 내부 응답(II_RES1~II_RES6)의 개수를 카운팅하는 카운터를 더 포함할 수 있다. 상기 카운터는 제1 최초 내부 응답(II_RES1)로부터 제2 값('X')이 나타날 때까지 최초 내부 응답은 제1 최초 내부 응답(II_RES1) 및 제2 최초 내부 응답(II_RES2)의 두 개 이므로, 제2 최초 내부 응답(II_RES2)에 대응하는 무효 카운트(CNT_IV)로서 '2'을 생성할 수 있다. 다음으로, 상기 카운터는 제4 최초 내부 응답(II_RES4)로부터 제2 값('X')이 나타날 때까지 최초 내부 응답은 제3 최초 내부 응답(II_RES3), 제4 최초 내부 응답(II_RES4) 및 제5 최초 내부 응답(II_RES5)의 세 개 이므로, 제5 최초 내부 응답(II_RES5)에 대응하는 무효 카운트(CNT_IV)로서 '3'을 생성할 수 있다.
스크린 정보 생성기(132c)는 무효 카운트(CNT_IV)를 스크린 정보(Info_SCR)로서 생성할 수 있다. 도 9c의 예시에서, 스크린 정보 생성기(132c)는 무효 카운트(CNT_IV)로서 생성한 '23'를 스크린 정보(Info_SCR)로서 저장할 수 있다.
도 10는 본 개시의 예시적 실시예에 따른 집적 회로를 나타내는 블록도이다. 상세하게는, 도 10은 인증 모드에서 집적 회로의 동작을 나타낸다. 도 1 및 도 3과 중복되는 내용은 생략한다.
도 10을 참조하면, 집적 회로(10)는 내부 시도 생성기(110b), PUF 블록(120b) 및 응답 생성기(130b)를 포함할 수 있다. 도 10의 내부 시도 생성기(110b), PUF 블록(120b) 및 응답 생성기(130b) 각각은 도 3의 내부 시도 생성기(110a), PUF 블록(120a) 및 응답 생성기(130a)과 동일하거나 유사하게 구성되지만, 인증 모드에서 동작하는 실시예를 나타낸다. 따라서, 내부 시도 생성기(110b), PUF 블록(120b) 및 응답 생성기(130b)에 대해 도 3에서 상술한 내용에 대한 설명은 생략한다.
인증 모드에서, 내부 시도 생성기(110b)는 외부(예를 들면, 도 1의 호스트(20))로부터 제1 시도(CHA)를 수신할 수 있다. 제1 시도(CHA)는 도 3의 등록 모드에서 사용된 복수의 시도들(CHA1~CHAn) 중 어느 하나일 수 있다. 내부 시도 생성기(110b)는 스크린 정보(Info_SCR)를 수신할 수 있다. 일 실시예에서, 내부 시도 생성기(110b)는 호스트로부터 스크린 정보(Info_SCR)를 수신할 수 있다. 일 실시예에서, 내부 시도 생성기(110b)는 집적 회로(10)에 포함된 저장 소자로부터 스크린 정보(Info_SCR)를 독출할 수 있다.
내부 시도 생성기(110b)는 변환 알고리즘을 이용하여 제1 시도(CHA)에 대응하는 복수의 내부 시도들을 순차적으로 생성할 수 있다. 본 개시의 일 실시예에 따르면, 내부 시도 생성기(110b)는 등록 모드에서 생성된 스크린 정보(Info_SCR)를 기초로 복수의 내부 시도들 중 유효 내부 시도(VI_CHA)를 선별할 수 있다.
도 9a와 같이 유효성 비트(VB)가 스크린 정보(Info_SCR)에 저장된 경우, 내부 시도 생성기(110b)는 유효성 비트(VB)로서 제1 값('O')을 갖는 최초 내부 응답에 대응하는 내부 시도를 유효 내부 시도(VI_CHA)로 선별할 수 있다.
도 9b와 같이 유효 카운트(CNT_V)가 스크린 정보(Info_SCR)에 저장된 경우, 내부 시도 생성기(110b)는 유효 카운트(CNT_V)를 기초로 유효성 비트(VB)로서 제1 값('O')을 갖는 최초 내부 응답을 카운팅함으로써 유효한 최초 내부 응답을 선별하고, 유효한 최초 내부 응답에 대응하는 내부 시도를 유효 내부 시도(VI_CHA)로 선별할 수 있다.
도 9c와 같이 무효 카운트(CNT_IV)가 스크린 정보(Info_SCR)에 저장된 경우, 내부 시도 생성기(110b)는 무효 카운트(CNT_IV)를 기초로 유효성 비트(VB)로서 제2 값('X')을 갖는 최초 내부 응답을 카운팅함으로써 유효하지 않은 최초 내부 응답을 선별하고, 유효하지 않은 최초 내부 응답을 배제함으로써 선별한 유효한 최초 내부 응답에 대응하는 내부 시도를 유효 내부 시도(VI_CHA)로 선별할 수 있다.
PUF 블록(120b)은, 유효 내부 시도(VI_CHA)을 수신하고, 이에 대응하는 유효 내부 응답(VI_RES)을 순차적으로 생성할 수 있다. 스크린 정보(Info_SCR)에 의해 유효하지 않은 내부 응답에 대한 필터링이 수행되었으므로, 유효 내부 응답(VI_RES)는 해밍 웨이트에 기초하여 '1' 또는 '0'의 값을 갖는 유효한 데이터일 수 있다.
응답 생성기(130b)는 유효 내부 응답(VI_RES)을 수신할 수 있고, 유효 내부 응답(VI_RES)을 축적하거나 나열(concatenate)함으로써 제1 응답(RES)을 생성할 수 있다. 일 실시예에서, 제1 응답(RES)은 등록 모드에서 제1 시도(CHA)에 대응하여 생성한 응답과 동일할 수 있다. 일 실시예에서, 응답 생성기(130b)는 유효 내부 응답(VI_RES)의 해밍 웨이트에 기초하여 제1 응답(RES)을 생성할 수 있다.
본 개시의 일 실시예에 따르면, 내부 시도 생성기(110b)는 등록 과정에서 생성된 스크린 정보(Info_SCR)를 이용하여 복수의 내부 시도들 중 유효 내부 시도(VI_CHA)를 선별할 수 있다. 또한, 집적 회로(10)는 유효 내부 시도(VI_CHA)만을 이용하여 제1 응답(RES)을 생성함으로써 불필요하게 유효하지 않은 내부 시도가 PUF 블록(120b)에 인가되는 것을 방지할 수 있고, 이에 따라서 인증 속도가 개선될 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 집적 회로를 사용하는 방법을 나타내는 순서도이다. 상세하게는, 도 11은 인증 모드에서 집적 회로를 사용하는 방법을 나타낸다.
도 11을 참조하면, 호스트(20)는 등록 과정에서 생성한 시도 셋에 포함된 복수의 시도들 중 제1 시도를 생성하고(S31), 생성된 제1 시도를 집적 회로(10)에 제공할 수 있다(S32). 집적 회로(10)는 제1 시도에 대한 내부 시도들을 생성할 수 있다(S33). 집적 회로(10)는 스크린 정보를 기초로 내부 시도들 중 유효 내부 시도를 선별할 수 있다(S34). 일 실시예에서, 유효 내부 시도는 등록 과정에서 유효한 것으로 판별된 최초 내부 응답에 대응하는 내부 시도일 수 있다. 이를 위해, 집적 회로(10)는 스크린 정보를 수신할 수 있다. 일 실시예에서,집적 회로(10)는 스크린 정보를 호스트(20)로부터 수신할 수 있다.
집적 회로(10)는 선별한 유효 내부 시도를 이용하여 유효 내부 응답을 생성할 수 있다(S35). 일 실시예에서, 집적 회로(10)는 PUF 블록에 의해 유효 내부 시도에 따라 변동하는 데이터를 유효 내부 응답으로서 생성할 수 있다. 집적 회로(10)는 유효 내부 응답을 기초로 제1 응답을 생성하고(S36), 생성한 제1 응답을 호스트(20)에 제공할 수 있다(S37).
호스트(20)는 수신한 제1 응답과 데이터 베이스에 저장된 시도-응답 페어를 기초로 집적 회로를 인증할 수 있다(S38). 일 실시예에서, 호스트(20)는 데이터 베이스로부터 제1 시도에 대응하는 응답을 수신하고, 데이터 베이스로부터 수신한 응답과 제1 응답을 비교함으로써 집적 회로(10)를 인증할 수 있다. 일 예시에서, 호스트(20)는 데이터 베이스로부터 수신한 응답과 제1 응답이 동일한 경우, 집적 회로(10)에 대한 인증을 성공한 것으로 판단할 수 있고, 호스트(20)는 데이터 베이스로부터 수신한 응답과 제1 응답이 동일하지 않은 경우, 집적 회로(10)에 대한 인증을 실패한 것으로 판단할 수 있다.
도 12는 본 개시의 예시적 실시예에 따른 내부 시도 생성기를 나타내는 블록도이다. 상세하게는 도 12는 인증 모드에서 내부 시도 생성기의 동작을 나타낸다. 도 5과 중복되는 내용은 생략한다.
도 12를 참조하면, 내부 시도 생성기(110b)는 시도 버퍼(111b), 변환 모듈(112b) 및 내부 시도 선택기(113b)를 포함할 수 있다. 시도 버퍼(111b), 변환 모듈(112b)는 도 5의 시도 버퍼(111a), 변환 모듈(112a)와 동일하거나 유사한 동작을 수행하는 바 중복되는 설명은 생략한다.
인증 모드에서, 시도 버퍼(111b)는 외부(예를 들면, 도 1의 호스트(20))로부터 수신한 제1 시도(CHA)를 저장하고, 변환 모듈(112b)은 시도 버퍼(111b)로부터 제1 시도(CHA)를 독출할 수 있다. 변환 모듈(112b)은 변환 알고리즘을 이용하여 제1 시도(CHA)로부터 복수의 내부 시도들(I_CHA)을 순차적으로 생성할 수 있다.
내부 시도 선택기(113b)는 인증 모드에서, 스크린 정보(Info_SCR)를 기초로 복수의 내부 시도들(I_CHA) 중 유효 내부 시도들(VI_CHA)을 선별할 수 있다. 일 실시예에서, 내부 시도 선택기(113b)는 등록 모드에서 비활성화되어 있다가 인증 모드에 진입하면 활성화될 수 있다.
내부 시도 선택기(113b)는 인증 모드에 진입하면, 스크린 정보(Info_SCR)를 스크린 정보 버퍼(예를 들면, 도 6의 134a)로부터 독출할 수 있다. 상술한 바와 같이 스크린 정보(Info_SCR)는 유효한 최초 내부 응답에 대한 정보가 포함될 수 있다. 제1 시도(CHA)에 대응하여 생성되는 복수의 내부 시도들(I_CHA)은 등록 과정에서 제1 시도(CHA)에 대응하여 생성되는 복수의 최초 내부 시도들과 일치하므로, 스크린 정보(Info_SCR)에 따른 유효한 최초 내부 응답에 대한 정보는 복수의 내부 시도들(I_CHA)에 대응하여 생성되는 내부 응답에 동일하게 적용될 수 있다. 즉, 스크린 정보(Info_SCR)에 따른 유효성 판단은 최초 내부 응답 뿐 만 아니라 내부 응답에도 동일하게 적용할 수 있다. 이에 따라서, 내부 시도 선택기(113b)는 복수의 내부 시도들(I_CHA) 중 유효한 최초 내부 응답에 대응하는 내부 시도를 유효 내부 시도(VI_CHA)로서 선별할 수 있다.
본 개시의 일 실시예에 따르면, 유효 내부 시도(VI_CHA)를 스크린 정보(Info_SCR)를 이용하여 사전에 판단함으로서 PUF 블록로부터 출력되는 내부 응답 중 유효하지 않은 내부 응답을 사전에 필터링할 수 있고, 이에 따라서 인증 시간, PUF 셀 등 유효하지 않은 내부 응답을 생성하는데 필요한 리소스가 절약될 수 있다.
도 13은 본 개시의 예시적 실시예에 따른 내부 시도 선택기의 동작을 나타내는 도면이다. 도 12과 중복되는 내용은 생략한다.
도 13을 참조하면, 내부 시도 선택기(113b)는 복수의 내부 시도들(I_CHA)을 수신할 수 있다. 도 13의 예시에서, 복수의 내부 시도들(I_CHA)은 제1 내부 시도(I_CHA1) 내지 제6 내부 시도(I_CHA6)를 포함할 수 있다.
내부 시도 선택기(113b)는 스크린 정보(Info_SCR)로부터 유효성 비트(VB)를 획득할 수 있다. 일 예시에서, 내부 시도 선택기(113b)는 스크린 정보(Info_SCR)에 포함된 유효성 비트(VB)를 독출할 수 있다. 일 예시에서, 내부 시도 선택기(113b)는 스크린 정보(Info_SCR)에 포함된 유효 카운트 또는 무효 카운트를 이용하여, 유효성 비트(VB)의 제1 값('O')을 판별하거나 제2 값('X')을 판별함으로써 유효성 비트(VB)를 획득할 수 있다.
내부 시도 선택기(113b)는 대응되는 유효성 비트(VB)가 제1 값('O')인 내부 시도를 유효 내부 시도로서 선별할 수 있다. 도 13의 예시에서, 제1 내부 시도(I_CHA1), 제3 내부 시도(I_CHA3), 제4 내부 시도(I_CHA4) 및 제6 내부 시도(I_CHA6)에 대응되는 유효성 비트(VB)가 제1 값('O')일 수 있고, 내부 시도 선택기(113b)는 제1 내부 시도(I_CHA1), 제3 내부 시도(I_CHA3), 제4 내부 시도(I_CHA4) 및 제6 내부 시도(I_CHA6)를 유효 내부 시도(VI_CHA)로서 PUF 블록에 출력할 수 있다.
도 14는 본 개시의 예시적 실시예에 따른 응답 생성기를 나타내는 블록도이다. 상세하게는 도 14는 인증 모드에서 응답 생성기의 동작을 나타낸다. 도 6과 중복되는 내용은 생략한다.
도 10 및 도 14를 참조하면, 응답 생성기(130b)는 내부 응답 버퍼(131b), 응답 축적기(135b) 및 복원 모듈(136b)을 포함할 수 있다. 인증 모드에서, 내부 응답 버퍼(131b)는 PUF 블록으로부터 출력된 유효 내부 응답(VI_RES)을 저장할 수 있다. 응답 축적기(135b)는 내부 응답 버퍼(131b)로부터 유효 내부 응답(VI_RES)을 독출하고, 유효 내부 응답(VI_RES)을 순차적으로 축적하거나 나열함으로써 제1 오리지널 응답(RES')을 생성할 수 있다. 복원 모듈(135b)은 제1 오리지널 응답(RES')에 복원 알고리즘을 적용함으로써 제1 응답(RES)을 생성할 수 있고, 생성된 제1 응답(RES)을 외부(예를 들면, 도 1의 호스트(20))에 출력할 수 있다.
도 15는 본 개시의 예시적 실시예에 따른 집적 회로를 나타내는 블록도이다. 상세하게는, 도 15는 인증 모드에서 집적 회로의 동작을 나타낸다. 도 10과 중복되는 내용은 생략한다.
도 15를 참조하면, 집적 회로(10)는 내부 시도 생성기(110c), PUF 블록(120c) 및 응답 생성기(130c)를 포함할 수 있다. 인증 모드에서, 내부 시도 생성기(110c)는 외부(예를 들면, 도 1의 호스트(20))로부터 제1 시도(CHA)를 수신할 수 있다. 내부 시도 생성기(110b)는 변환 알고리즘을 이용하여 제1 시도(CHA)에 대응하는 복수의 내부 시도들(I_CHA)을 순차적으로 생성할 수 있다.
PUF 블록(120c)은, 복수의 내부 시도들(I_CHA)을 수신하고, 이에 대응하는 복수의 내부 응답들(I_RES)을 순차적으로 생성할 수 있다. 응답 생성기(130c)는 스크린 정보(Info_SCR)를 기초로 복수의 내부 응답들(I_RES) 중 유효 내부 응답을 선별하고, 유효 내부 응답을 축적하거나 나열함으로써 제1 응답(RES)을 생성할 수 있다.
일 실시예에 따른 응답 생성기(130c)는 등록 과정에서 생성된 스크린 정보(Info_SCR)를 이용하여 복수의 내부 응답들 중 유효 내부 응답을 선별할 수 있다. 또한, 응답 생성기(130c)는 유효 내부 응답을 이용하여 제1 응답(RES)을 생성할 수 있다. 본 실시예에 따르면, 응답 생성기(130c)가 스크린 정보(Info_SCR)를 이용하여 유효 내부 응답을 선별함으로써 각종 리소스가 절약될 수 있다.
도 16은 본 개시의 예시적 실시예에 따른 집적 회로들을 나타내는 블록도이다. 상세하게는, 도 16은 등록 단계에서 활성화되는 인터페이스 회로를 포함하는 집적 회로의 예시들을 나타낸다. 도 3과 중복되는 설명은 생략한다.
도 16을 참조하면, 집적 회로(10d)는 내부 시도 생성기(110d), PUF 블록(120d), 응답 생성기(130d) 및 인터페이스 회로(140d)를 포함할 수 있다. 내부 시도 생성기(110d), PUF 블록(120d), 응답 생성기(130d)는 도 3의 내부 시도 생성기(110), PUF 블록(120), 응답 생성기(130)와 동일하거나 유사할 수 있는바 그 설명은 생략한다.
인터페이스 회로(140d)는, 집적 회로(10d)의 등록 단계에서 복수의 응답들(RES1~RESn) 을 집적 회로(10d)의 외부로 제공할 수 있다. 예를 들면, 인터페이스 회로(140d)는 복수의 응답들(RES1~RESn)을 수신할 수 있고, 복수의 응답들(RES1~RESn)을 포함하는 신호를 외부로 출력할 수 있다. 호스트, 예컨대 집적 회로(10d)의 제조자는 등록 단계에서, 집적 회로(10d)로부터 제공된 신호에 기초하여 복수의 응답들(RES1~RESn)을 수집할 수 있고, 집적 회로(10d)에 제공한 시도들 및 수집된 복수의 응답들(RES1~RESn)에 기초하여 집적 회로(10d)를 인증하기 위한 정보를 안전하게 저장할 수 있다. 집적 회로(10d)를 인증하기 위한 정보는, 집적 회로(10d)의 출하 후 집적 회로(10d) 또는 집적 회로(10d)를 포함하는 장치를 인증하는데 사용될 수 있다.
복수의 응답들(RES1~RESn)을 공격으로부터 보호하기 위하여, 인터페이스 회로(140d)는 등록 단계에서 인에이블될 수 있는 한편, 등록 단계가 완료된 후 디스에이블될 수 있다. 인에이블된 인터페이스 회로(140d)는 복수의 응답들(RES1~RESn)을 포함하는 신호를 정상적으로 출력할 수 있는 한편, 디스에이블된 인터페이스 회로(140d)는 복수의 응답들(RES1~RESn)을 포함하는 신호의 출력이 불가능하거나 복수의 응답들(RES1~RESn)와 무관한 정보를 포함하는 신호를 출력할 수 있다. 일 실시예에서 인터페이스 회로(140d)는 비가역적으로 디스에이블될 수 있다. 예를 들면, 인터페이스 회로(140d)는 적어도 하나의 퓨즈(fuse)를 포함할 수 있고, 등록 단계 완료 후 적어도 하나의 퓨즈가 퓨징됨으로써(fused) 인터페이스 회로(140d)가 디스에이블될 수 있다.
도 17은 본 개시의 예시적 실시예에 따른 집적 회로를 나타내는 블록도이다. 도 1 내지 도 16과 중복되는 내용은 생략된다.
도 17을 참조하면, 집적 회로(10e)는 시도-인증 방식의 물리적 복제방지 기능뿐만 아니라 다른 기능을 수행하는 기능 블록을 포함할 수 있다. 예를 들면, 집적 회로(10e)는 시스템-온-칩(SoC)으로서, 내부 시도 생성기(110e), PUF 블록(120e), 응답 생성기(130e)뿐만 아니라 프로세서(150e)를 더 포함할 수 있다. 프로세서(150e)는 일련의 명령어들을 실행하는 임의의 프로세싱 유닛을 포함할 수도 있고, FPGA(Field Programmable Gate Array), 하드웨어 가속기(hardware accelerator) 등을 포함할 수 있다. 일 실시예에서, 프로세서(150e)는 내부 시도 생성기(110e), PUF 블록(120e), 응답 생성기(130e)를 제어하기 위한 각종 제어 신호를 내부 시도 생성기(110e), PUF 블록(120e), 응답 생성기(130e)에 출력할 수 있다.
프로세서(150e)는 통신 채널(CH)을 통해서 다른 장치와 통신할 수 있고, 시도(CHA)를 수신하거나 응답(RES)을 전송할 수 있다. 통신 채널(CH)은 유선 채널 및/또는 무선 채널을 포함할 수 있다. 예를 들면, 프로세서(156b)는 통신 채널(CH)을 통해서 수신된 신호에 기초하여 시도(CHA)를 내부 시도 생성기(110e)에 제공하고, 응답 생성기(130e)로부터 제공된 응답(RES)을 통신 채널(CH)을 통해서 전송할 수 있다.
도 18a 및 도 18b는 본 개시의 예시적 실시예에 따른 집적 회로를 사용하는 환경을 나타내는 블록도이다. 구체적으로, 도 18a는 등록 단계에서 집적 회로를 사용하는 환경을 나타내고, 도 18b는 인증 단계에서 집적 회로를 사용하는 환경을 나타낸다.
도 18a를 참조하면, 호스트, 예컨대 집적 회로들(IC1 내지 ICm)의 제조자가 운영하는 컴퓨팅 시스템(20f)은 집적 회로들(IC1 내지 ICm) 각각과 통신할 수 있다(m은 1보다 큰 정수). 예를 들면, 컴퓨팅 시스템(20f)은 제1 집적 회로(IC1)에 복수의 시도들을 제공할 수 있고, 제1 집적 회로(IC1)로부터 복수의 시도들 각각에 대응하는 복수의 응답들을 획득할 수 있다. 컴퓨팅 시스템(20f)은 제1 집적 회로(IC1)에 제공한 복수의 시도들 및 복수의 응답들을 포함하는 데이터베이스(DB)를 포함할 수 있다. 예를 들면, 데이터베이스(DB)는 시도-응답 페어들을 저장할 수도 있다. 일 실시예에서, 집적 회로들(IC1 내지 ICm) 각각은 도 1 내지 도 16에서 상술한 방법에 따라서 등록 모드로서 동작할 수 있다. 일 실시예에서, 집적 회로들(IC1 내지 ICm) 각각은 유효한 내부 응답에 대한 정보를 포함하는 스크린 정보를 생성할 수 있다.
도 18b를 참조하면, 호스트, 예컨대 집적 회로들(IC1 내지 ICm)의 제조자, 또는 집적 회로들(IC1 내지 ICm)의 정당한 사용자로서 집적 회로들(IC1 내지 ICm)을 각각 포함하는 장치들(10_1~10_m)의 제조자 등이 운영하는 컴퓨팅 시스템(20g)은, 네트워크(30)를 통해서 장치들(10_1 내지 10_m)과 통신할 수 있다. 네트워크(30)는 임의의 네트워크를 포함할 수 있고, 비제한적인 예시로서 셀룰러(cellular) 네트워크, LAN(Local Area Network), WLAN(Wireless Local Area Network) 등을 포함할 수 있다. 또한, 컴퓨팅 시스템(20g) 및 장치들(10_1 내지 10_m)은 유선 및/또는 무선 통신에 의해서 상호 통신할 수 있다.
컴퓨팅 시스템(20g)은 데이터베이스(DB')를 포함할 수 있고, 데이터베이스(DB')는 도 17a의 데이터베이스(DB)와 동일할 수도 있고, 도 17a의 데이터베이스(DB)에 기초하여 생성된 데이터를 포함할 수도 있다. 컴퓨팅 시스템(20g)은 데이터베이스(DB')에 기초하여 장치들(10_1 내지 10_m)을 인증할 수 있다. 예를 들면, 컴퓨팅 시스템(20g)은 데이터베이스(DB')에 기초하여 시도를 생성할 수 있고, 네트워크(30)를 통해서 제1 장치(10_1)에 시도를 제공할 수 있다. 컴퓨팅 시스템(20g)은, 제1 장치(10_1)에 포함된 제1 집적 회로(IC1)가 시도에 기초하여 생성한 응답을 네트워크(30)를 통해서 수신할 수 있고, 데이터베이스(DB')에 기초하여 응답을 평가함으로써 제1 장치(10_1)를 인증할 수 있다. 일 실시예에서, 집적 회로들(IC1 내지 ICm) 각각은 도 1 내지 도 16에서 상술한 방법에 따라서 인증 모드로서 동작할 수 있다. 일 실시예에서, 집적 회로들(IC1 내지 ICm) 각각은 스크린 정보를 이용하여 유효한 내부 시도를 선별하고, 선별된 내부 시도 만을 이용하여 응답을 생성할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 시도-응답 방식(Challenge-Response)을 이용하여 인증을 수행하는 집적 회로에 있어서,
    인증 모드에서, 시도(Challenge)를 수신하고, 상기 시도에 대응하는 복수의 내부 시도들을 생성하고, 스크린 정보를 이용하여 상기 복수의 내부 시도들 중 적어도 하나의 유효 내부 시도를 생성하는 내부 시도 생성기;
    상기 복수의 유효 내부 시도들 각각에 따라 변동하는 복수의 유효 내부 응답들을 생성하는 물리적 복제 방지 기능(Physically Unclonable Function; PUF) 블록;및
    상기 복수의 유효 내부 응답들을 이용하여 생성한 응답을 출력하는 응답 생성기;를 포함하는 집적 회로.
  2. 제1항에 있어서,
    상기 내부 시도 생성기는 등록 모드에서 복수의 시도들 각각에 대한 복수의 최초 내부 시도들을 순차적으로 생성하고,
    상기 PUF 블록은 상기 복수의 최초 내부 시도들 각각에 따라 변동하는 복수의 최초 내부 응답들을 순차적으로 생성하고,
    상기 응답 생성기는 상기 복수의 최초 내부 응답들 중 사용 가능한 적어도 하나의 유효 최초 내부 응답을 선별하고, 선별된 상기 적어도 하나의 유효 최초 내부 응답을 기초로 상기 스크린 정보를 생성하는 것을 특징으로 하는 집적 회로.
  3. 제2항에 있어서,
    상기 응답 생성기는 상기 복수의 최초 내부 응답들 각각의 해밍 웨이트(Hamming Weight)를 계산하고, 상기 해밍 웨이트를 기초로 상기 적어도 하나의 유효 최초 내부 응답을 선별하는 것을 특징으로 하는 집적 회로.
  4. 제3항에 있어서,
    상기 응답 생성기는, n(n은 자연수)-비트의 최초 내부 응답에 대해서, 상기 해밍 웨이트가 n/2보다 작은 제1 기준 값보다 작거나 n/2보다 큰 제2 기준 값보다 큰 경우 상기 최초 내부 응답에 대해 유효한 것으로 판단하고,
    상기 해밍 웨이트가 상기 제1 기준 값 이상이고, 상기 제2 기준 값 이하인 경우 상기 최초 내부 응답에 대해 유효하지 않은 것으로 판단하는 것을 특징으로 하는 집적 회로.
  5. 제4항에 있어서,
    상기 응답 생성기는 상기 최초 내부 응답에 대해 유효한 것으로 판단하는 경우 상기 최초 내부 응답에 대응하는 유효성 비트로서 제1 값을 생성하고, 상기 최초 내부 응답에 대해 유효하지 않은 것으로 판단하는 경우 상기 유효성 비트로서 상기 제1 값과 상이한 제2 값을 생성하고,
    상기 스크린 정보는 상기 유효성 비트를 포함하는 것을 특징으로 하는 집적 회로.
  6. 제3항에 있어서,
    상기 응답 생성기는 카운터를 포함하고,
    상기 카운터는 상기 해밍 웨이트를 기초로 상기 복수의 최초 내부 응답들 중 유효하지 않은 최초 내부 응답을 카운팅함으로써 유효 카운트를 생성하고,
    상기 스크린 정보는 상기 유효 카운트를 포함하는 것을 특징으로 하는 직접 회로.
  7. 제3항에 있어서,
    상기 응답 생성기는 카운터를 포함하고,
    상기 카운터는 상기 해밍 웨이트를 기초로 상기 복수의 최초 내부 응답들 중 유효한 최초 내부 응답을 카운팅함으로써 무효 카운트를 생성하고,
    상기 스크린 정보는 상기 무효 카운트를 포함하는 것을 특징으로 하는 직접 회로.
  8. 제2항에 있어서,
    상기 내부 시도 생성기는,
    상기 등록 모드에서, 변환 알고리즘을 통해 상기 복수의 시도들 각각에 대한 복수의 최초 내부 시도들을 순차적으로 생성하고,
    상기 인증 모드에서, 상기 복수의 시도들 중 제1 시도를 수신하고, 상기 제1 시도에 대한 상기 변환 알고리즘을 통해 복수의 제1 내부 시도들을 순차적으로 생성하고, 상기 스크린 정보를 이용하여 상기 복수의 제1 내부 시도들 중 복수의 제1 유효 내부 시도들을 선별하는 것을 특징으로 하는 집적 회로.
  9. 제8항에 있어서,
    상기 PUF 블록은 상기 복수의 제1 유효 내부 시도들에 대응하는 복수의 제1 유효 내부 응답들을 순차적으로 생성하고,
    상기 응답 생성기는, 상기 복수의 제1 유효 내부 응답들을 축적하거나 나열함으로써 제1 오리지널 응답을 생성하는 것을 특징으로 하는 집적 회로.
  10. 제9항에 있어서,
    상기 응답 생성기는, 복원 알고리즘을 통해 상기 제1 오리지널 응답을 상기 제1 시도에 대응되는 상기 제1 응답으로 복원하는 것을 특징으로 하는 집적 회로.
  11. 제10항에 있어서,
    상기 변환 알고리즘은 암호화 알고리즘, 해쉬 알고리즘 및 스크램블 알고리즘 중 어느 하나를 포함하고,
    상기 복호 알고리즘은 복호화 알고리즘, 해쉬 알고리즘 및 디스크램블 알고리즘 중 어느 하나를 포함하는 것을 특징으로 하는 집적 회로.
  12. 시도-응답 방식(Challenge-Response)을 이용하여 인증을 수행하는 집적 회로에 있어서,
    등록 모드에서, 복수의 시도들을 수신하고, 복수의 시도들 각각에 대한 복수의 최초 내부 시도들을 순차적으로 생성하는 내부 시도 생성기;
    상기 복수의 최초 내부 시도들 각각에 따라 변동하는 복수의 최초 내부 응답들을 순차적으로 생성하는 물리적 복제 방지 기능(Physically Unclonable Function; PUF) 블록;및
    상기 복수의 최초 내부 응답들 중 사용 가능한 적어도 하나의 유효 최초 내부 응답을 선별하고, 선별된 상기 적어도 하나의 유효 최초 내부 응답을 기초로 스크린 정보를 생성하는 응답 생성기;를 포함하는 집적 회로.
  13. 제12항에 있어서,
    상기 응답 생성기는 상기 복수의 최초 내부 응답들 각각의 해밍 웨이트(Hamming Weight)를 계산하고, 상기 해밍 웨이트를 기초로 상기 적어도 하나의 유효 최초 내부 응답을 선별하는 것을 특징으로 하는 집적 회로.
  14. 제13항에 있어서,
    상기 응답 생성기는, n(n은 자연수)-비트의 최초 내부 응답에 대해서, 상기 해밍 웨이트가 n/2보다 작은 제1 기준 값보다 작거나 n/2보다 큰 제2 기준 값보다 큰 경우 상기 최초 내부 응답에 대해 유효한 것으로 판단하고,
    상기 해밍 웨이트가 상기 제1 기준 값 이상이고, 상기 제2 기준 값 이하인 경우 상기 최초 내부 응답에 대해 유효하지 않은 것으로 판단하는 것을 특징으로 하는 집적 회로.
  15. 제14항에 있어서,
    상기 응답 생성기는 상기 최초 내부 응답에 대해 유효한 것으로 판단하는 경우 상기 최초 내부 응답에 대응하는 유효성 비트로서 제1 값을 생성하고, 상기 최초 내부 응답에 대해 유효하지 않은 것으로 판단하는 경우 상기 유효성 비트로서 상기 제1 값과 상이한 제2 값을 생성하고,
    상기 스크린 정보는 상기 유효성 비트를 포함하는 것을 특징으로 하는 집적 회로.
  16. 제13항에 있어서,
    상기 응답 생성기는 카운터를 포함하고,
    상기 카운터는 상기 해밍 웨이트를 기초로 상기 복수의 최초 내부 응답들 중 유효하지 않은 최초 내부 응답을 카운팅함으로써 유효 카운트를 생성하고,
    상기 스크린 정보는 상기 유효 카운트를 포함하는 것을 특징으로 하는 직접 회로.
  17. 제13항에 있어서,
    상기 응답 생성기는 카운터를 포함하고,
    상기 카운터는 상기 해밍 웨이트를 기초로 상기 복수의 최초 내부 응답들 중 유효한 최초 내부 응답을 카운팅함으로써 무효 카운트를 생성하고,
    상기 스크린 정보는 상기 무효 카운트를 포함하는 것을 특징으로 하는 직접 회로.
  18. 시도-응답 방식(Challenge-Response)을 이용하여 인증을 수행하는 집적 회로를 사용하는 방법에 있어서,
    인증 모드에서, 시도(Challenge)를 수신하는 단계;
    상기 시도에 대응하는 복수의 내부 시도들을 생성하는 단계;
    스크린 정보를 이용하여 상기 복수의 내부 시도들 중 적어도 하나의 유효 내부 시도를 생성하는 단계;
    물리적 복제 방지 기능(Physically Unclonable Function; PUF) 블록을 이용하여 상기 복수의 유효 내부 시도들 각각에 따라 변동하는 복수의 유효 내부 응답들을 생성하는 단계; 및
    상기 복수의 유효 내부 응답들을 이용하여 생성한 응답을 출력하는 단계;를 포함하는 집적 회로를 사용하는 방법.
  19. 제18항에 있어서,
    등록 모드에서, 복수의 시도들을 수신하는 단계;
    상기 복수의 시도들 각각에 대한 복수의 최초 내부 시도들을 순차적으로 생성하는 단계;
    상기 PUF 블록을 이용하여 상기 복수의 최초 내부 시도들 각각에 따라 변동하는 복수의 최초 내부 응답들을 순차적으로 생성하는 단계;
    상기 복수의 최초 내부 응답들 중 사용 가능한 적어도 하나의 유효 최초 내부 응답을 선별하는 단계;및
    선별된 상기 적어도 하나의 유효 최초 내부 응답을 기초로 상기 스크린 정보를 생성하는 단계;를 더 포함하는 집적 회로를 사용하는 방법.
  20. 제19항에 있어서,
    상기 복수의 내부 시도들을 생성하는 단계는,
    상기 복수의 시도들 중 제1 시도를 수신하는 단계;및
    상기 제1 시도에 대한 상기 변환 알고리즘을 통해 상기 복수의 내부 시도들을 순차적으로 생성하는 단계;를 포함하는 것을 특징으로 하는 집적 회로를 사용하는 방법.
KR1020200009398A 2020-01-23 2020-01-23 시도-응답 방식을 이용하여 인증을 수행하는 집적 회로 및 이를 사용하는 방법 KR20210095460A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200009398A KR20210095460A (ko) 2020-01-23 2020-01-23 시도-응답 방식을 이용하여 인증을 수행하는 집적 회로 및 이를 사용하는 방법
US17/015,554 US11368319B2 (en) 2020-01-23 2020-09-09 Integrated circuit performing authentication using challenge-response protocol and method of using the integrated circuit
CN202110034190.9A CN113158200A (zh) 2020-01-23 2021-01-12 使用挑战-响应协议执行认证的集成电路和使用其的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200009398A KR20210095460A (ko) 2020-01-23 2020-01-23 시도-응답 방식을 이용하여 인증을 수행하는 집적 회로 및 이를 사용하는 방법

Publications (1)

Publication Number Publication Date
KR20210095460A true KR20210095460A (ko) 2021-08-02

Family

ID=76878630

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200009398A KR20210095460A (ko) 2020-01-23 2020-01-23 시도-응답 방식을 이용하여 인증을 수행하는 집적 회로 및 이를 사용하는 방법

Country Status (3)

Country Link
US (1) US11368319B2 (ko)
KR (1) KR20210095460A (ko)
CN (1) CN113158200A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11277272B2 (en) * 2018-11-07 2022-03-15 Samsung Electronics Co., Ltd. Integrated circuit and method for challenge-response physically unclonable function
WO2020109512A1 (en) * 2018-11-29 2020-06-04 Resado Gmbh Electronic device and method for authentication of an electronic device
EP4047587A1 (en) * 2021-02-22 2022-08-24 HENSOLDT Sensors GmbH Chip device and method for a randomized logic encryption
CN116506130B (zh) * 2023-04-24 2023-12-01 翼盾(上海)智能科技有限公司 一种物联网安全认证芯片***及访问控制方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602006005957D1 (de) 2005-11-29 2009-05-07 Koninkl Philips Electronics Nv Physisches verteilen von geheimnissen und beweisen der nähe unter verwendung von pufs
WO2009079050A2 (en) 2007-09-19 2009-06-25 Verayo, Inc. Authentication with physical unclonable functions
TWI498827B (zh) * 2008-11-21 2015-09-01 Verayo Inc 非連網射頻辨識裝置物理不可複製功能之鑑認技術
US8694778B2 (en) 2010-11-19 2014-04-08 Nxp B.V. Enrollment of physically unclonable functions
KR20150135032A (ko) 2014-05-23 2015-12-02 숭실대학교산학협력단 Puf를 이용한 비밀키 업데이트 시스템 및 방법
US10050796B2 (en) 2016-11-09 2018-08-14 Arizona Board Of Regents On Behalf Of Northern Arizona University Encoding ternary data for PUF environments
DK3340212T3 (da) 2016-12-21 2020-02-17 Merck Patent Gmbh Læserenhed til læsning af en komposit markering omfattende en fysisk ikke-klonbar funktion til bekæmpelse af forfalskning
KR101943183B1 (ko) 2017-01-24 2019-01-28 건국대학교 산학협력단 사용자 인증 및 인증 요청 방법 및 이를 수행하는 장치
KR101980964B1 (ko) 2017-05-24 2019-05-21 성균관대학교산학협력단 카운터 기반 물리적 복제 방지 함수 장치 및 이를 이용한 챌린지-응답 획득 방법
DE102018123103A1 (de) 2017-10-13 2019-04-18 Samsung Electronics Co., Ltd. Halbleitervorrichtung, die Sicherheitsschlüssel erzeugt, Verfahren zum Erzeugen eines Sicherheitsschlüssels und Verfahren zum Registrieren des Sicherheitsschlüssels
US11277272B2 (en) 2018-11-07 2022-03-15 Samsung Electronics Co., Ltd. Integrated circuit and method for challenge-response physically unclonable function

Also Published As

Publication number Publication date
US20210234709A1 (en) 2021-07-29
CN113158200A (zh) 2021-07-23
US11368319B2 (en) 2022-06-21

Similar Documents

Publication Publication Date Title
KR20210095460A (ko) 시도-응답 방식을 이용하여 인증을 수행하는 집적 회로 및 이를 사용하는 방법
KR102665929B1 (ko) 물리적으로 복제 불가능한 기능의 원격 재등록
JP5248328B2 (ja) 信号発生器をベースとした装置セキュリティ
US11323275B2 (en) Verification of identity using a secret key
Bösch et al. Efficient helper data key extractor on FPGAs
US8667265B1 (en) Hardware device binding and mutual authentication
US20160006570A1 (en) Generating a key derived from a cryptographic key using a physically unclonable function
US7564345B2 (en) Volatile device keys and applications thereof
KR101727130B1 (ko) 암호화 키를 획득하기 위한 디바이스 및 방법
US8868923B1 (en) Multi-factor authentication
US20120183135A1 (en) Reliable puf value generation by pattern matching
US11232718B2 (en) Methods and devices for protecting data
US11245680B2 (en) Garbled circuit for device authentication
US11625478B2 (en) Resilient password management system using an array of addressable physical unclonable functions
Chatterjee et al. Trustworthy proofs for sensor data using FPGA based physically unclonable functions
US20160056953A1 (en) Data generating device, communication device, mobile object, data generating method, and computer program product
Karageorgos et al. Chip-to-chip authentication method based on SRAM PUF and public key cryptography
US20230379146A1 (en) Securing network communications using dynamically and locally generated secret keys
US20140137211A1 (en) Apparatus-specific information generation device, apparatus-specific information generation method, terminal apparatus, and authentication system
Yu et al. Security and reliability properties of syndrome coding techniques used in PUF key generation
Frisch et al. PAG-IoT: a PUF and AEAD enabled trusted hardware gateway for IoT devices
Pehl et al. KeLiPUF: a key-distribution protocol for lightweight devices using Physical Unclonable Functions
KR20210114644A (ko) Rsa 키 생성 방법 및 장치
KR20200052808A (ko) 시도 응답 방식의 물리적 복제방지 기능을 위한 집적 회로 및 이를 사용하는 방법