KR20200090944A - 물리적 복제방지 기능을 위한 임베디드 테스트 회로 - Google Patents

물리적 복제방지 기능을 위한 임베디드 테스트 회로 Download PDF

Info

Publication number
KR20200090944A
KR20200090944A KR1020207020795A KR20207020795A KR20200090944A KR 20200090944 A KR20200090944 A KR 20200090944A KR 1020207020795 A KR1020207020795 A KR 1020207020795A KR 20207020795 A KR20207020795 A KR 20207020795A KR 20200090944 A KR20200090944 A KR 20200090944A
Authority
KR
South Korea
Prior art keywords
puf
challenge
response
service
responses
Prior art date
Application number
KR1020207020795A
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 시큐어-아이씨 에스에이에스
Publication of KR20200090944A publication Critical patent/KR20200090944A/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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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
    • 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/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Debugging And Monitoring (AREA)

Abstract

물리적으로 복제방지 가능한 기능 및 온라인 또는 임베디드 테스트 회로를 포함하는 실리콘 집적 회로가 개시되며, 상기 온라인 테스트 회로는 상기 PUF에 물리적으로 인접한 하나 이상의 회로 부분을 포함하고, 상기 하나 이상의 회로는 상기 PUF의 하나 이상의 품질 특성을 결정하거나 그렇지 않으면 특징화하는 하나 이상의 테스트를 구현한다. 특정 관련 방법 단계에 대한 다양한 테스트가 설명된다.

Description

물리적 복제방지 기능을 위한 임베디드 테스트 회로{EMBEDDED TEST CIRCUIT FOR PHYSICALLY UNCLONABLE FUNCTION}
본 발명은 디지털 데이터 처리 분야에 관한 것으로, 특히 물리적으로 복제방지 기능을 처리하는 방법 및 시스템에 관한 것이다.
물리적 복제방지 기능(PUF: Physically Unclonable Function)은 물리적 구조에 구현되어 있는 물리적 개체이며 상기 구조의 각 물리적 인스턴스화에서 동일하고 입력 또는 챌린지가 제공될 때 특정 출력 또는 응답을 생성하는 물리적 개체이다. 상기 특정 출력의 값은 장치 내에 구체화된 물리적 개체의 각 인스턴스화에 특정적이다. PUF는 많은 동일한 장치의 제조 프로세스에서 조건의 편차를 이용한다. PUF는 CMOS 집적 회로에 통합될 수 있다. 어느 면에서는, PUF는 장치의 지문 아날로그로 간주 될 수 있다. PUF는 다양한 상황(예: 부착된 칩 또는 제품의 인증, PRNG의 암호화 키 또는 시드(seed) 생성 등)에서 사용될 수 있다.
특히, PUF는 디지털 "챌린지"를 디지털 "응답"에 매핑하는 물리적 기능(수학적 기능 아님)이다. 챌린지는 비트의 벡터이다. 챌린지가 있는 PUF를 실행하면 독특하고 예측할 수 없는 일련의 응답이 생성된다. PUF는 동일한 챌린지에 대한 결정론적 해답을 산출할 필요가 있다. 이러한 결정론은 가혹한 현상이 로직 게이트 간의 미세한 차이와 같은 물리적인 소스에서 비롯되기 때문에 잡음에 의해 결함을 일으킬 수 있다.
PUF를 취급할 때 해결해야 할 한 가지 기술적인 문제는 PUF 장치의 품질을 평가하는 것이다. 이러한 품질의 특정 측면 또는 특성은 신뢰성, 보안 등을 결정(예: 측정)할 수 있다. 예를 들어, PUF의 신뢰성은 지정된 기간 동안 명시된 조건 하에서 요구되는 기능을 수행할 수 있는 능력에 해당한다.
PUF 테스트를 위한 기존 접근법은 제한적이다. 특히, 장치 내 및 현장 테스트는 수행되지 않는다. 특허 문헌은 만족할만한 해결책을 제공하지 못한다. 예를 들어, "Testing security of mapping functions"라는 제목의 미국특허 제20110055649호는 집적 회로(IC)의 PUF와 같은 매핑 기능의 보안을 테스트하기 위한 방법, 장치 및 제품을 개시한다. 다양한 실시예에서, 하나 이상의 테스트가 수행될 수 있다. 다양한 실시예에서, 테스트는 예측 가능성 테스트, 충돌 테스트, 감도 테스트, 리버스 엔지니어링 테스트 및 에뮬레이션 테스트를 포함할 수 있다. 다양한 실시예에서, 테스트는 보안 레벨 또는 취약성 레벨을 나타내는 메트릭을 결정할 수 있다. 다양한 실시예에서, 테스트는 매핑 기능의 하나 이상의 지연 엘리먼트들 및/또는 경로 세그먼트들을 특징화하는 것을 포함할 수 있다. 이러한 접근법에는 한계가 있다.
PUF를 처리하고 특히 그 특성 중 하나 이상을 평가하기 위한 진보된 방법 및 시스템에 대한 필요성이 존재한다.
물리적 복제방지 기능 및 온라인 또는 임베디드 테스트 회로를 포함하는 실리콘 집적 회로가 개시되며, 상기 온라인 테스트 회로는 상기 PUF에 물리적으로 인접한 하나 이상의 회로 부분을 포함하고, 상기 하나 이상의 회로는 상기 PUF의 하나 이상의 품질 특성을 결정하거나 혹은 특징화 하도록 수행되는 하나 이상의 테스트를 실행한다. 특정 관련 방법 단계에 대한 다양한 테스트가 설명된다.
유리하게는, 본 발명의 실시예는 사용자 또는 기계(예를 들어, 소프트웨어 구성 요소)가 PUF의 "특성" 또는 "속성"을 결정하거나 측정하거나 달리 평가할 수 있게 한다. 상기 동작은 사용자에 의해 수행될 수 있거나 자동화된 작업 흐름에서 기계에 의해 수행될 수 있다. 예를 들어, 본 발명의 실시예들은 기계가 공장에서 PUF를 특징짓게 한다. "사용자"는 복수의 역할을 지정한다. 예를 들어, 사용자는 본 발명의 실시예에 따른 서비스 챌린지를 갖는 테스트를 구성 및 수행하고, 응답을 저장하고, 임계치를 구성하고, 신뢰성 영역을 정의 또는 측정하는 등의 "관리자"로서의 역할을 할 수 있다. 사용자는 또한, 챌린지-응답을 인증하거나 키를 생성하기 위해 PUF를 사용할 수 있는 "최종 사용자"일 수 있다.
유리하게는, PUF의 하나 이상의 특성이 결정되거나 측정되거나 평가될 수 있기 때문에, 관련된 PUF는 "제어" 또는 "관리" 또는 "취급"되는 다운스트림(거부, 폐지, 추적, 모니터링 등)일 수 있다.
예를 들어, 일단 측정된 PUF의 신뢰성은 다양한 메커니즘에 의해 보장될 수 있다. 이러한 신뢰성은 기존의 접근법에 의해 "장치 내" 및 "현장에서" 추정되지 않으며, 이는 몇 가지 단점을 야기한다(예: 불리한 조건에서의 작동 및/또는 가혹한 환경 조건 등에서 회로가 그 기능, 동작 및 신뢰성을 계속 구현한다는 확신). 예를 들어, 미국특허 제US20110055649호에서, 제안된 분석 및 테스트 회로는 내장되어 있지 않으므로 특허 문헌의 도 1, 도 5 및 도 7에 도시된 바와 같이 다소 복잡하고 외부의 테스트 회로 및 분석기 툴을 필요로 한다. 또 다른 제한은 분석이 PUF 품질을 평가할 수 있는 놀라운 특성을 나타내는 응답을 가진 특정 챌린지를 활용하지 않는다는 것이다.
또한, "임베디드" 테스트의 특징은 PUF의 민감성(취약성이 아닌 경우)에 비해 특히 유리한다. 종래 기술의 공지된 테스트는 일반적으로 PUF에 해로울 수 있는, 예를 들어 섭동을 초래하거나 오 측정으로 이어질 수 있는 어떤 형태의 결합 또는 하드웨어 침입을 의미한다. 대조적으로, PUF에 인접한(또는 혼합된) 임베디드 테스트는 글로벌 회로의 필수 부분을 형성하여 비 섭동적이고 쉽게 액세스할 수 있는 테스트 솔루션을 제공한다.
바람직하게는, PUF의 결정된 특성들이 측정될 수 있고 (적절한) 결정들이 다운스트림에서 취해질 수 있도록 사용자 또는 조작자 또는 감독 시스템에 더 통지될 수 있다(예를 들어, PUF 장치는 거부되거나 취소될 수 있고, 새로운 보안 조치 또는 절차가 취해질 수 있고 관련 지식이 더 나은 제품 등을 만들기 위해 모일 수 있음).
유리하게는, 본 발명의 실시예는 또한, PUF 장치의 기능성을 시간에 따라 모니터링할 수 있고, 따라서 유용한 계산 및 로그(예를 들어, 액세스) 통계의 생성을 허용한다. 특히 대응하는 데이터는 감독 센터에 보고될 수 있는데, 예를 들어 PUF 장치의 기능성 진화를 상호 연관시킬 수 있다. 칩 운영자 또는 사용자의 인식을 수정할 수 있다(예: 경고 등). 일 실시예에서, 운영자 또는 감독 센터는 하나 이상의 테스트 시퀀스가 실패하면 제품 샘플을 일시적으로 거부 또는 취소할 수 있다. 운영자 또는 감독 센터는 향후 더 나은 제품에 대한 지식을 수집할 수 있다. 운영자 또는 감독 센터는 환경 조건이 비정상적으로 "가혹한" 것으로 권고받을 수 있다. 운영자는 장치가 여전히 표면상 기능적일 때 임박한 고장을 예상하여 장치를 철회하기로 결정할 수 있으며 이로 인해 검출되지 않은 불량의 결과 및 추가 비용을 피할 수 있다.
바람직하게는, PUF는 섭동 공격을 검출하는 센서로서 사용될 수 있다. 사실 장치의 환경이 바뀌면(잘못 계산을 일으키도록 하는 것을 목표로 하는 악의적인 공격으로 인해) PUF 특성이 변경될 수 있다. 이를 모니터하여 공격의 가능성을 추론하는 데 사용할 수 있다. 이러한 PUF의 사용은 다른 목적(주변 센서)을 위해 PUF의 기능(키 생성, 의사 난수(pseudo-random number) 생성기의 시드, 인증 등)이 필요하지 않은 경우에도 PUF를 활용할 수 있다는 점에서 유용한다. 또한, 센서로서의 이러한 사용은 다른 타입의 센서와 직교하는 공격 시도 검출을 가져올 수 있다. 결국, PUF를 사용하는 그러한 방법은 공격자가 적용한 스트레스가 실제로 회로의 구체적인 오작동을 유발할 정도로 강하지 않더라도 공격 준비를 암시할 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 설명한다. 도면에서 동일한 참조 부호는 유사한 요소를 나타내며, 도면에서:
도 1은 본 발명에 따른 방법의 단계들의 예를 도시한 도시도;
도 2a는 애플리케이션 챌린지 및 애플리케이션 응답을 도시한 도시도;
도 2b, 도 2c 및 도 2d는 서비스 챌린지 및 서비스 응답의 3가지 예를 도시한 도시도;
도 3은 본 발명의 실시예의 개략적인 시스템도;
도 4는 본 발명의 일 실시예의 개략적 시스템도; 및
도 5는 본 발명의 특정 시스템 실시예를 도시한 도시도.
용어 정의가 이제 설명된다.
챌린지가 있는 PUF를 실행하면 PUF가 응답을 출력하게 된다.
PUF는 복수의 챌린지와 함께 실행될 수 있으므로 PUF를 특징짓는 관련 응답을 출력한다.
본 발명의 일 양상에서, 챌린지는 서비스 챌린지(SC) 및 애플리케이션 챌린지(AC)로 분할된다. 수학에서 세트의 "파티션"은 세트의 요소를 비어 있지 않은 서브 세트로 그룹화하여 모든 요소가 서브세트 중 단 하나에 포함되도록 한다. 이것은 특히 SC와 AC세트가 분리되었음을 의미한다. 챌린지는 "서비스" 챌린지이거나 아니면 "애플리케이션" 챌린지이다. 애플리케이션 챌린지가 문헌에서 잘 정의되어 있기에, 서비스 챌린지의 정의는 그 반대로 잘 정의되어 있다(SC는 AC가 아닌 챌린지이다).
더 명확한 설명이 기술된다.
본 발명에 따른 "서비스" 챌린지는 하나 이상의 PUF 특성, 예를 들어 그 품질을 평가하는 데 사용된다.
"애플리케이션" 챌린지는 선행 기술에서 알려져 있다. 이러한 챌린지는 고전 PUF 애플리케이션에 사용된다. 애플리케이션 챌린지는 두 가지 목적, 즉 a) 키 생성 또는 b) 챌린지-응답 인증을 제공할 수 있다. 애플리케이션 챌린지는 PUF의 기능성(예: 칩 또는 제품의 인증, 암호화 키 또는 PRNG의 시드 생성 등)을 평가하는 데 사용된다. 애플리케이션 챌린지는 설계 단계 및/또는 프로파일링 단계(예: 제조 직후)에서 생성될 수 있다. 설계 단계에서 PUF 설계자는 아키텍처를 알고(및/또는 시스템 동작을 잘 이해하고) 있다. 아키텍처를 알면 사용자는 잘 정의된 특성을 사용하여 문제점을 찾고 식별할 수 있다. 예를 들어, 챌린지의 해밍(Hamming) 가중치가 PUF 응답에 영향을 미치는 기준이 될 수 있다.
본 발명의 한 측면에서 "서비스" 챌린지가 정의된다.
애플리케이션 챌린지와 서비스 챌린지의 차이는 기본적으로 PUF의 응답 유형에서 비롯된다. 애플리케이션 챌린지의 경우 애플리케이션 응답은 PUF의 "고유성" 특성에 의존하는 장치의 "지문" 또는 "서명"에 해당한다. 서비스 챌린지의 경우, 관련 서비스 응답은 PUF의 "정상적인" 동작을 평가하는데 사용되는 값, 즉 PUF의 고유성에 대한 많은 정보를 반드시 제공하지 않고서 사용된다. 그러면 서비스 응답이 테스트 유형에 따라 예상 응답과 비교된다. 예를 들어, 본 발명의 실시예에 따른 "전체 오류 테스트"는 최대 절대값을 나타내는 서비스 응답과 관련된 서비스 챌린지를 사용할 수 있다. PUF 실행 중 서비스 응답이 매우 낮으면 비정상적이거나 의심스러운 동작을 반영할 가능성이 높다. 대부분의 서비스 챌린지는 프로파일링 단계에서 생성된다.
따라서 "서비스 챌린지"는 PUF의 품질을 평가하는 데 사용되는 챌린지이다. 서비스 챌린지는 테스트 시퀀스(예: 엔트로피, 잡음레벨, 안정성, 전체 오류 등)를 수행하는 데 사용된다.
PUF에 의해 실행되는 챌린지의 값은 상기 PUF의 행동을 제어하여 응답을 제어한다. 서비스 챌린지는 응답과 관련이 있으며, 응답은 PUF의 구체적이고 알려진 재현 가능한 동작과 관련된다.
"행동"이란 용어는 무언가(기계 또는 물질과 같은) 작동 또는 반응하는 방식을 나타낸다. 애플리케이션 챌린지는 PUF의 동작과 관련된 정보 없이 응답을 얻을 수 있게 한다. 서비스 챌린지는 PUF의 행동(예를 들어, 본 발명에 따른 상이한 테스트에 의해 사용되는 임계치를 추정하거나 결정하는데 사용될 수 있는 메트릭/표시를 포함)을 반영하거나 그에 의해 유발되는 응답을 제공한다.
특정 정의에 따르면 서비스 챌린지는 PUF가 시간이 지남에 따라 저하되는 것을 포함하여 작동할 수 있는 범위의 한계를 찾고 측정하기 위해 PUF를 일부 특정 경우에 실행한다.
서비스 챌린지 SC와 애플리케이션 챌린지 AC의 차이는 하드웨어(물리적 고려 사항) 측면에서 더 자세히 설명할 수 있다.
하드웨어 측면에서, 서비스 챌린지에 대한 대응은 메트릭/측정값을 도출할 수 있도록(즉석 계산이 불가능하므로) 일시적인 것이거나 그렇지 않은 것이라도 반드시 저장되어야 한다.
서비스 챌린지에 대한 대응은 다양한 방법으로 저장될 수 있다. 일 실시예에서, 저장은 예를 들어 신뢰성 또는 노화 테스트를 수행하기 위해 비휘발성 메모리에서 수행될 수 있다. 다른 실시예에서, 예를 들어, 임의성 테스트들(상이한 챌린지들에 대한 상이한 응답들이 충분히 상이한지 평가되는)을 위해 휘발성 메모리(예를 들어, SRAM)가 사용될 수 있다.
반대로 애플리케이션 챌린지에 대한 응답은 보안상의 이유로 저장되어서는 안된다: 애플리케이션 챌린지(PUF 하드웨어 자체에 메모리가 분배되어 있음)가 주어진 경우 응답을 복원할 수 있는 것은 PUF의 핵심 기능이다. 더욱이, PUF가 응답을 별도로 저장하지 않는(즉, 자체적으로 또는 다른 방식으로) 것은 기본적인 보안 "요구 사항"이다. 이러한 고려 사항은 부수적으로 서비스 챌린지와 애플리케이션 챌린지가 겹칠 수 없다는 사실을 정당화한다(두 세트로 구성된 파티션은 공통적인 부분을 제공하지 않음).
이제 다양한 실시예가 설명된다.
PUF 및 테스트 회로를 포함하는 집적 회로가 개시되며, 컴퓨터 로직은 테스트 회로에 임베드되거나 저장 또는 테스트 회로에 의해 액세스 가능하고, 상기 컴퓨터 로직은 하나 이상의 서비스 챌린지를 구현하도록 구성되며, 서비스 챌린지는 서비스 응답을 생성하도록 구성되고, 이는 미리 정의된 응답 패턴으로부터 하나 이상의 편차를 결정하기 위해 하나 이상의 응답과 비교될 수 있다.
PUF 및 테스트 회로를 포함하는 집적 회로가 개시되며, 컴퓨터 로직은 테스트 회로에 임베드되거나 저장 또는 테스트 회로에 의해 액세스 가능하고, 상기 컴퓨터 로직은 서비스 챌린지를 구현하도록 구성되며, 서비스 챌린지는 서비스 응답을 생성하고, 상기 서비스 응답은 하나 이상의 서비스 응답과 비교되어 소정의 패턴으로부터의 편차를 결정한다.
PUF 및 테스트 회로를 포함하는 집적 회로가 개시되며, 컴퓨터 로직은 테스트 회로에 임베드되거나 저장 또는 테스트 회로에 의해 액세스 가능하고, 상기 컴퓨터 로직은 하나 이상의 서비스 챌린지를 구현하도록 구성되며, 서비스 챌린지는 소프트 서비스 응답을 생성하고, 이 응답은 하나 이상의 소프트 응답과 비교되어 미리 정의된 응답 패턴으로부터 하나 이상의 편차를 결정할 수 있다.
PUF 및 테스트 회로를 포함하는 집적 회로가 개시되며, 컴퓨터 로직은 테스트 회로에 임베드되거나 저장 또는 테스트 회로에 의해 액세스 가능하고, 상기 컴퓨터 로직은 하나 이상의 서비스 챌린지를 구현하도록 구성되며, 서비스 챌린지는 소프트 서비스 응답을 생성하고, 이 응답은 하나 이상의 소프트 응답과 비교되어 미리 정의된 응답 패턴으로부터 하나 이상의 편차를 결정할 수 있다.
PUF 및 테스트 회로를 포함하는 집적 회로가 개시되며, 컴퓨터 로직은 테스트 회로에 임베드되거나 저장 또는 테스트 회로에 의해 액세스 가능하고, 상기 컴퓨터 로직은 서비스 챌린지를 구현하도록 구성되며, 상기 서비스 챌린지는 하나 이상의 편차를 결정하기 위해 PUF의 하나 이상의 응답에 비교할 수 있는 하나의 응답을 생성시킨다.
PUF 및 테스트 회로를 포함하는 집적 회로가 개시되며, 컴퓨터 로직은 테스트 회로에 임베드되거나 저장 또는 테스트 회로에 의해 액세스 가능하고, 상기 컴퓨터 로직은 서비스 챌린지를 구현하도록 구성되며, 상기 서비스 챌린지는 PUF 에 의해 구동될 때 서비스 응답을 생성하며 상기 컴퓨터 로직은 미리 정의된 응답 패턴으로부터의 편차를 결정하도록 구성된다.
PUF, 테스트 회로 및 비휘발성 메모리를 포함하는 집적 회로가 개시되며, 상기 컴퓨터 로직은 상기 테스트 회로에 임베드되거나 저장 또는 테스트 회로에 의해 액세스 가능한 것 중 하나이며, 상기 컴퓨터 로직은 복수의 서비스 챌린지를 실행하도록 구성되며, 하나의 서비스 챌린지는 하나의 서비스 응답을 생성하고, 상기 PUF에 의한 서비스 챌린지의 실행 이후에 획득된 상기 복수의 서비스 응답은 상기 비휘발성 메모리에 저장된 복수의 응답과 비교 가능하거나 비교된다.
PUF, 테스트 회로 및 비휘발성 메모리를 포함하는 집적 회로가 개시되며, 상기 컴퓨터 로직은 상기 테스트 회로에 임베드되거나 저장 또는 테스트 회로에 의해 액세스 가능한 것 중의 하나이며, 상기 컴퓨터 로직은 PUF에 의해 서비스 챌린지를 실행하도록 구성되며, 하나의 서비스 챌린지는 하나의 서비스 응답을 생성하고, 상기 서비스 응답은 비휘발성 메모리에 저장된 복수의 서비스 응답과 비교 가능하거나 비교된다.
응답은 미리 정의된 응답일 수 있다. 응답은 이전에 수집되거나 저장된 응답일 수 있다(동일한 PUF에 대해). 응답은 알려진 응답(예: 데이터베이스에서 검색된)일 수 있다.
개발 시에 사전 정의된 응답 패턴은 테스트 회로에 임베드되거나 저장 또는 테스트 회로에 의해 액세스 가능하다.
개발 시에 사전 정의된 응답 패턴은 하나 이상의 메트릭과 하나 이상의 메트릭의 최소 및/또는 최대 임계치 중 하나에 의해 정의된다.
개발 시에 미리 정의된 응답 패턴은 통계적 분배로 정의된다.
개발 시에 컴퓨터 로직은 오류, 탬퍼링 및 노화 중 하나를 테스트하도록 구성된다.
PUF 및 온라인 테스트 회로를 포함하는 실리콘 집적 회로가 개시되며, 상기 온라인 테스트 회로는 상기 PUF에 물리적으로 인접한 하나 이상의 회로 부분을 포함하고, 상기 하나 이상의 회로 부분은 내장 테스트 또는 상기 PUF에 인접한 테스트 회로에 구현되는 온라인 테스트가 관련된 메트릭을 선택하도록; 상기 메트릭과 연관된 하나 이상의 임계치를 선택하도록; 그리고 상기 PUF와 관련된 하나 이상의 챌린지를 결정하도록 적응되어 있다.
PUF를 취급하는 방법이 개시되며 이 방법은 상기 PUF에 인접한 테스트 회로에서 구현되는 내장 테스트 또는 온라인 테스트와 관련된 메트릭을 선택하는 단계; 상기 메트릭과 관련된 하나 이상의 임계치들을 선택하는 단계; 상기 PUF와 관련된 하나 이상의 챌린지를 결정하는 단계를 포함한다.
개발 시에 챌린지는 PUF가 비정상적인 동작을 검출할 수 있도록 서비스 응답을 제공하는 서비스 챌린지이다.
개발 시에 챌린지는 하나 이상의 PUF의 품질 특성을 평가하는 데 사용되는 서비스 챌린지이다.
개발 시에, 챌린지는 애플리케이션 챌린지가 아닌 서비스 챌린지로서, 애플리케이션 챌린지는 키 생성 또는 챌린지-응답 인증에 대한 응답을 제공하고, 애플리케이션 챌린지는 PUF의 고유성 특성에 의존한다.
개발 시에 챌린지는 서비스 챌린지인데, 이는 PUF의 고유성에 대해 반드시 알려주도록 설계되지 않았다.
개발 시에 챌린지는 응답과 관련된 서비스 챌린지로서, 응답은 PUF의 구체적이고, 알려진, 그리고 재현 가능한 동작과 관련된다.
개발 시에, 상기 방법은 상기 하나 이상의 챌린지로 상기 PUF를 실행하는 단계를 더 포함한다.
개발 시에, 상기 방법은 상기 하나 이상의 서비스 챌린지와 관련된 하나 이상의 응답을 수신하는 단계를 더 포함한다.
개발 시에, 이 방법은 선택된 임계치를 가진 선택된 메트릭을 하나 이상의 수신된 응답들에 적용하는 단계를 더 포함한다.
개발 시에 적어도 하나의 특이 응답이 검출되면 전체적(global) PUF 오류가 결정된다.
개발 시에, 특이 응답은 미리 정의된 임계치를 초과하는 하나의 비정상 응답, 불변 및/또는 사전 정의된 비트 값을 가지는 하나의 응답, 응답의 분배에서의 비정상성, 다른 수신된 응답과 비 일관적인 하나의 응답을 포함하는 그룹에서 선택된다.
개발 시에, 엔트로피 및/또는 임의성과 관련된 PUF의 품질 특성은 공격자가 PUF의 하나 이상의 응답을 예측할 수 있게 하는 하나 이상의 시스템 바이어스를 검출할 때 결정된다.
일 실시예에서, 하나 이상의 시스템 바이어스의 상기 검출은 모노 비트 테스트, 구동 테스트, 패턴 테스트 또는 이들의 조합을 포함하는 표준화된 테스트와 관련된 하나 이상의 단계를 수행하는 단계를 포함하며, 상기 테스트는 신뢰성 있는 것으로 간주 되는 응답에서 실행된다.
개발 시에, 하나 이상의 시스템 바이어스의 상기 검출은 소정의 임계치를 초과하는 연속적인 비트 값을 검출하는 단계를 포함한다.
개발 시에, 안정성과 관련된 PUF의 품질 특성은 챌린지에 대한 복수의 응답을 수신하는 단계, 상기 응답을 시간에 따라 저장 및 비교하는 단계 및 상기 안정성 품질과 관련된 하나 이상의 파라미터를 결정하는 단계를 포함하는 단계를 수행함으로써 결정된다.
개발 시에, 상기 방법은 상기 서비스 챌린지의 실행에 수반되는 PUF의 하드웨어 부분의 수를 최대화하도록 서비스 챌린지의 선택을 변경하는 단계를 더 포함한다.
개발 시에, 신뢰성과 관련된 PUF의 품질의 특성을 결정하는 단계는 비트 벡터를 포함하는 신뢰성 맵을 결정하는 단계를 포함하며, 대응하는 챌린지가 예정된 임계치에 일치하는 신뢰할만한 것으로 결정되면 상기 벡터의 비트는 1의 값과 동일하며 그렇지 않으면 0의 값과 동일하고, 소정의 기준 맵과 비교하는 단계를 포함한다.
개발 시에, 신뢰할 수 없는 것으로 결정된 챌린지가 신뢰성 있는 것으로 검출되면 탬퍼링이 결정된다.
개발 시에, 상기 방법은 상기 수신된 응답값을 저장하고 상기 응답값을 서로 비교하는 단계를 더 포함한다.
개발 시에, 응답을 비교하는 단계는 2개의 연속적인 응답의 기울기를 결정하는 단계 또는 수신된 응답의 평균 및 표준 편차를 결정하는 단계를 포함한다.
개발 시에, 이 방법은 PUF를 폐기하고, PUF를 무능화시키거나 통지 또는 경보 메시지를 방출하는 것 중에서 하나 이상의 단계를 더 포함한다.
상기 컴퓨터 프로그램이 적절한 컴퓨터 장치상에서 실행될 때의 하나 이상의 단계를 수행하기 위한 명령을 포함하는 컴퓨터 프로그램이 공개된다.
PUF 및 온라인 테스트 회로를 포함하는 실리콘 집적 회로가 개시되며, 상기 온라인 테스트 회로는 상기 PUF에 물리적으로 인접한 하나 이상의 회로 부분 및 상기 방법의 하나 이상의 단계를 구현하는 상기 하나 이상의 회로를 포함한다.
개발 시에 챌린지는 PUF가 비정상적인 동작을 검출할 수 있도록 서비스 응답을 제공하는 서비스 챌린지이다.
개발 시에 챌린지는 PUF의 품질 특성을 평가하는데 사용되는 서비스 챌린지이다.
개발 시에, 챌린지는 애플리케이션 챌린지가 아닌 서비스 챌린지이며, 여기서 애플리케이션 챌린지는 키 생성 또는 챌린지-응답 인증에 대한 응답을 제공하고, 서비스 챌린지는 PUF의 고유성 특성에 의존한다.
개발 시에 챌린지는 PUF의 고유성에 대해 알려주지 않는 챌린지인 서비스 챌린지이다.
개발 시에 챌린지는 응답과 관련된 서비스 챌린지로서, 응답은 PUF의 구체적이고, 알려진, 그리고 재현 가능한 동작과 관련된다.
개발 시에, 상기 하나 이상의 회로 부분은 상기 하나 이상의 챌린지에 의해 상기 PUF를 동작시키도록 적응되거나 적합하다.
개발 시에, 상기 하나 이상의 회로 부분은 상기 하나 이상의 서비스 챌린지와 관련된 하나 이상의 응답을 수신하도록 적응되거나 적합하다.
개발 시에, 상기 하나 이상의 회로 부분은 상기 하나 이상의 수신 응답에 상기 선택된 임계치를 갖는 상기 선택된 메트릭을 적용하도록 적응되거나 적합하다.
개발 시에 적어도 하나의 특이 응답이 검출되면 전체적 PUF 오류가 결정된다.
개발 시에 특이 응답은 미리 정의된 임계치를 초과하는 하나의 비정상 응답, 불변 및/또는 사전 정의된 비트 값을 갖는 하나의 응답, 그리고 응답 분배에서의 하나의 이상 또는 다른 수신된 응답과 비 일관적인 하나의 응답을 포함하는 그룹으로부터 선택된다.
개발 시에, 엔트로피 및/또는 임의성과 관련된 PUF의 품질 특성은 공격자가 PUF의 하나 이상의 응답을 예측할 수 있게 하는 하나 이상의 시스템 바이어스를 검출에 의해 결정된다.
개발 시에, 하나 이상의 시스템 바이어스의 상기 검출은 모노 비트 테스트, 구동 테스트, 패턴 테스트 또는 이들의 조합 중 하나 이상의 테스트의 실행을 포함하며, 상기 테스트는 신뢰성 있는 것으로 고려되는 응답에서 실행된다.
개발 시에, 하나 이상의 시스템 바이어스의 상기 검출은 미리 정의된 임계치를 초과하는 연속적인 비트 값의 검출을 포함한다.
개발 시에, 안정성과 관련된 PUF의 품질 특성은 챌린지에 대한 복수의 응답의 수신, 그 저장, 및 시간에 따른 상기 응답의 비교 및 상기 안정성 품질에 관련된 하나 이상의 파라미터의 결정에 의해 결정된다.
개발 시에, 상기 서비스 챌린지의 선택은 상기 서비스 챌린지의 구동에 관련된 PUF의 하드웨어 부분의 수를 최대화한다.
개발 시에, 신뢰성과 관련된 PUF의 품질 특성의 결정은, 비트 벡터를 포함하는 신뢰성 맵을 결정하는 것을 포함하고, 여기서 대응하는 챌린지가 미리 예정된 임계치에 일치하여 신뢰성이 있는 것으로 결정되면 상기 벡터의 비트는 1의 값과 같고 다른 것은 0의 값과 같게 되며; 그리고 상기 계산된 맵과 소정의 기준 맵의 비교를 포함한다.
개발 시에 신뢰할 수 없는 것으로 판단된 챌린지가 신뢰할 수 있게 되었음을 검출하면 탬퍼링의 증거가 결정된다.
개발 시에 수신된 응답값이 저장되고 서로 비교된다.
개발 시에 응답의 비교는 두 개의 연속적인 응답의 기울기의 결정 또는 수신된 응답의 평균 및 표준 편차 결정을 포함한다.
장점은 지금 토론된다.
유리하게도, 상이한 세트의 서비스 챌린지를 사용하여 사용자 또는 기계가 PUF를 더 잘 특성화할 수 있게 한다. PUF의 특성은 챌린지의 수집을 실행하여 결정할 수 있다. 환언하면, 본 발명의 실시예는 PUF의 사용자가 PUF(또는 그 특성)의 "품질"을 평가할 수 있게 한다. PUF의 품질 특성은 예를 들어 일정함, 시간 경과에 따른 신뢰성, 임의성, 실패 또는 탬퍼링 검출과 같은 특성을 포함한다.
유리하게는, 본 발명의 실시예는 "실리콘-PUF"(그러나 본 발명의 일 실시예는 다른 기술에 따라 제조된 PUF에도 적용될 수 있음)에 적용될 수 있다. 용어 "실리콘"은 일반적으로 "반도체"를 지칭한다. 이 PUF 제품군은 CMOS 집적회로의 제조 단계에서 도입된 프로세스 변형을 사용한다. 예를 들어 회로를 구성하는 트랜지스터 간의 차이는 동일한 기판의 일부를 구성한다고 해도 회로마다 중요하다. 실리콘 PUF 제품군은 특히 지연 PUF(Arbiter PUF, 링 오실레이터 PUF 또는 RO PUF, 루프 PUF 등) 및 메모리 PUF(SRAM PUF, 나비 PUF 등)로 구성된다. 실리콘 PUF는 기술적 변경없이 ASIC 또는 FPGA 회로에서 구현될 수 있다.
지연 PUF는 많은 챌린지를 수용하는 PUF이다. 예를 들어, 지연 PUF에서 지연은 챌린지 비트에 의해 제어되므로 많은 수의 챌린지 조합이 제공된다. 따라서 지연 PUF는 아비터 PUF, RO-PUF 또는 루프(Loop) PUF와 같은 PUF를 포함한다.
메모리 PUF는 제한된 수의 다양한 챌린지와 관련되어 있다. 예를 들어 메모리 PUF는 SRAM PUF 일 수 있다. 이러한 경우, 메모리 어드레스는 챌린지로 사용될 수 있다.
유리하게도, 본 발명의 실시예는 메모리와 지연 PUF의 조합인 소위 "복합" PUF에도 적용될 수 있다.
유리하게도 그리고 현저하게, 본 발명의 실시예는 메모리 PUF 또는 지연 PUF와 같은 임의의 유형의 PUF를 사용할 수 있다. 본 발명에 따른 품질 테스트는 일반적으로 PUF의 내부 구조를 구별하지 않는다. 특정 테스트는 특정 유형의 PUF 구조에서 더 잘 수행될 수 있다. 어떤 특정 테스트는 특정 구조, 즉 PUF 유형의 어떤 특별한 구조에 대해 수행할 수 있다. 예를 들어, PUF의 신뢰성 평가는 기준과 비교된 응답의 편차를 분석하기 위해 (2진 값이 아닌) 정수를 처리해야 할 수 있다.
도 1은 본 발명이 애플리케이션 챌린지 및 서비스 챌린지에 관해서 분명한 측면을 도시한다.
PUF(110)는 a) 입력으로서 챌린지(100)(즉, 비트스트링 또는 비트 열)를 수신하고, b) 일부 내부 구조(예를 들어, PUF가 아비터 PUF, 링 오실레이터 PUF, 루프 PUF, SRAM PUF 등에 따라 다른 구조)를 요구하며 그리고 c) 그 출력은 결국 응답(121)(비트스트링)의 형태하에서 "하드 장치"(120)를 생성하기 위해 "래치(latched)"된 (또는 저장되거나 등록된) "소프트" 응답(111)(예를 들어, 지연 또는 지연 세트)이다.
본 발명의 일 실시예에서, "소프트" 응답(111) 중 일부의 중간 "소프트" 변수(112)가 측정되고, 메트릭(130)은 이들로부터 유도된다.
이러한 측정 또는 메트릭(130)은 PUF 응답에 대해 수행된다. 보다 정확하게는, 측정치들 또는 메트릭들은 "소프트" PUF 응답(111)에 대해 수행된다. "하드" 응답은 PUF에 의해 반환된 정보(121), 즉 식별 정보만을 포함하는 응답에 대응한다. "소프트" 응답은 품질 평가에 사용할 수 있는 특성을 포함할 수 있는 "전체" 또는 "모든" 응답에 해당한다. 소프트 응답은 특성(예를 들어, 이 경우의 "품질" 특성, 즉 고려된 PUF에서 가질 수 있는 신뢰 레벨)과 관련된 정보를 포함한다.
선택적 실시예에서, 메트릭(130)의 추정으로부터 나오는 피드백(113)은 "소프트" 응답(111)의 획득을 개선하도록 허용할 수 있다(예를 들어, 그러한 피드백으로, 관리자는 다른(예를 들어 개선된) 서비스 챌린지를 확인하여 다르게(더 좋고 더 완벽하게) PUF를 특성화한다. 피드백이 더 많이 사용될수록, 모듈(130)에 의해 소프트 응답이 더 정확하게 추정될 수 있고, 따라서 더 신뢰할만한 메트릭이 평가된다. 피드백 루프를 내장할 수 있는 가능성은 보안 메트릭에 대한 높은 확신을 요구하는 애플리케이션에 특히 유용하다.
도 2a, 도 2b, 도 2c 및 도 2d는 애플리케이션 챌린지 및 서비스 챌린지와 관련된 사례를 보여준다.
도 2a는 애플리케이션 챌린지 및 대응하는 PUF 응답을 도시한다. 도 2b 내지 2d는 서비스 챌린지의 실시예를 도시한다.
도 2a의 애플리케이션 챌린지에서, 유효 간격(I, j)에서 이진 값을 포함하는 한정 챌린지(210a, 220a, 230a)는 각각 유효 간격(k, l)에서 단일 한정 소프트 응답(240a, 250a, 260a)을 트리거 한다. 즉, 애플리케이션 챌린지만큼 많은 소프트 응답이 있다.
대조적으로, 오류 테스트를 나타내는 도 2b의 서비스 챌린지에서, 챌린지(210b, 220b)는 최소(min) 응답(230b)(소프트 응답) 및 최대(max) 응답(240b)(소프트 응답)에 대응하는 챌린지이다. 이들 2개의 값 이외에, 이 실패에 대응하는 서비스(소프트) 응답은 차이(max-min)<Th(여기서, Th는 임계치이며, 미리 결정된 고정값으로 설정되거나 또는 상황에 따라 달라질 수 있다)일 때 경보가 트리거될 수 있다. 따라서, 이 예에서, 2개의 서비스 챌린지(210b, 220b)에 대한 3개의 소프트 응답(230c, 240c, 250c)이 존재한다.
유사하게, 탬퍼링 테스트를 나타내는 도 2c의 상황에서, 하나의 서비스(소프트) 챌린지/응답 쌍이 표현된다(210C, 230c). 응답값(min)은 유효 간격([k, l])의 평균값 Av=(k+1)/2(220c)에 매우 가깝기 때문에 가장 신뢰할 수 없는 쌍을 나타낸다. 서비스 응답이 |min-Av|>임계치인 상태로 되거나 결정된 임계치를 초과하면 경보(240c)가 트리거될 수 있다. 이 경보는 예를 들어 신뢰할 수 없는 상태에서 신뢰할 수 있는 상태로 이동하면 조작이 되었다는 표시일 수 있으므로 잠재적인 탬퍼링 공격을 검출할 수 있다.
노화 테스트를 나타내는 도 2d에 도시된 상황에서, 서비스(소프트) 응답들(210d) 중 하나는 응답이 T0의 T1 이후의 시간에 신뢰성 영역에 있는지 또는 그렇지 않은지를 결정한다. 신뢰할 수 있는 영역(수량화할 수 있음)은 실제로 시간이 경과함에 따라 진화하거나 드리프트할 수 있다.
이러한 실시예에서, "온라인" 또는 "온-칩" 테스트 회로에 내장된(또는 그것에 저장되거나 액세스 가능한) 컴퓨터 로직은 서비스 챌린지를 수행하도록 구성되며, 이 서비스 챌린지는 (소프트) 서비스 챌린지 응답을 생성한다. 복수의 (소프트) 서비스 응답의 존재는 소정의 응답 패턴으로부터의 편차를 나타낼 수 있다. 즉, PUF에 의해 실행되는 서비스 챌린지에 의해 생성된 서비스 또는 소프트 응답은 하나 이상의 편차를 검출하기 위해 하나 이상의 미리 정의된 응답과 비교될 수 있다.
서비스 응답은 추가 검사를 위해 테스트 회로에 저장되거나 응답에 의해 트리거된 경보는 원격 모니터링 서버에 온라인으로 전송될 수 있다.
도 3은 본 발명에 따른 방법의 단계들의 예들을 도시한다.
본 발명의 일 실시예에서, 구성 단계(301) 및 실행 단계(351)의 두 종류의 단계들이 구별될 수 있다. 구성 단계(301)는 일반적으로 제조 단계 직후에 상용화 전에 수행된다. 예를 들어, "관리자" 사용자는 이 단계를 수행하거나 구성할 수 있다. 각 테스트의 주요 파라미터를 특성화하고 얻을 수 있다. 실행 단계(351)는 이하 기술되는 특정 블록 "온라인 테스트" 또는 "임베디드 테스트"에 의해 수행되고 PUF 수명 동안 활성화된다. 경우에 따라 "최종 사용자"가 이러한 단계를 수행할 수 있다.
구성 단계(301)가 먼저 기술된다.
단계(310)에서, (사전 정의된 메트릭 중에서) 테스트 메트릭이 결정 및/또는 선택된다.
일 실시예에서, 상기 테스트 메트릭은 일반적으로 사용자(즉, 관리자)에 의해 선택된다: 그의 노하우로부터, 예를 들어 자신의 회로 및 관련 공격에 대한 지식으로부터, 사용자는 미리 정의된 알려진 메트릭 범위로부터 선택한다. 일 실시예에서, 예를 들어, 고도로 자동화된 환경에서, 테스트 메트릭은 소정의 기준에 따라 자동적으로(즉, 기계에 의해) 선택된다. 실시예에서, 테스트 메트릭은 컴퓨터 보조 장치를 이용한 사람의 결정에 따라 선택된다.
메트릭은 하나의 기준이다(복수 메트릭/기준들). 예를 들어, 메트릭 또는 기준은 임의성, 안정성, 시간 경과에 따른 신뢰성, 고장 검출, 탬퍼링 검출과 관련된다. "메트릭 선택"은 "사전 정의된 품질 특성 또는 기준 중에서 기준 또는 품질 특성 선택"을 의미한다.
단계(320)에서, 서비스 챌린지는 애플리케이션 챌린지에 따라 결정된다. 일 실시예에서, 챌린지는 미리 정의된다(라이브러리에서 액세스 가능하거나 데이터베이스로부터 검색됨). 일 실시예에서, 챌린지가 임시로 생성된다. 일 실시예에서, 챌린지는 하나 또는 다른 카테고리로 분류된다. 일 실시예에서, 이러한 서비스 챌린지는 사전 정의되거나 이용 가능하거나 액세스 가능하다.
선택적 단계(330)에서, 서비스 및/또는 애플리케이션 챌린지들 사이에서 선택이 수행된다. 특정 테스트들(302)은 이하에서 설명된다.
단계(340)에서, 선택된 또는 결정된 메트릭과 관련하여, 하나 이상의 임계치가 정의되거나 결정되거나 선택된다.
(일반적으로 관리자에 의해 처리되는) 구성 단계들(301)에 더하여, (일반적으로 최종 사용자에 의해 처리되는) 실행 단계(351)는 여러 단계들을 포함한다.
단계(350)에서, PUF는 하나 이상의 챌린지와 함께 구동되거나 실행되거나 집행된다. 상기 실행에 응답하여, 하나 이상의 응답이 수신되고, 선택적으로 저장된다.
단계(130)에서, 적용 가능한 경우 메트릭뿐만 아니라 선택된 임계치가 적용된다. 측정 또는 판독이 수행된다. 결과적으로 PUF의 안정성, 신뢰성, 임의성 또는 확산과 같은 특정 특성을 결정할 수 있다.
단계(370)에서, (사용자 및/또는 기계에 의해) 추가 다운스트림 액션이 취해질 수 있다. 예를 들어 경보, 경고, 로그, 보고서, 통계 등을 생성하고 추가 결정을 내릴 수 있다. 예를 들어 과도한 가치, 결과 또는 반응은 통계 목적으로 감독 센터에 보고될 수 있다. PUF의 신뢰성은 챌린지/응답 프로토콜을 재생하고 /또는 새로운 파라미터를 선택함으로써 더욱 증가될 수 있다. PUF를 구현하는 태그는 재 보정될 수 있다(예를 들어 새로운 프로파일링). 후보 예비 PUF를 사용할 수 있다. 노화 또는 공격 혐의로 인해 태그를 사용 중지할 수 있다.
도 4는 본 발명의 실시예의 개략적인 시스템도이다.
이 도면은 애플리케이션 챌린지 및 서비스 챌린지를 포함하는 챌린지(410)의 데이터베이스, 멀티플렉서(420), (회로에 구현된) PUF(430) 및(회로에 구현된) 테스트 회로(440)/단계(130)(PUF의 품질 특성을 결정하기 위한 본 발명에 따르는 하나 이상의 테스트를 구현하는)를 포함하는 복수의 회로를 나타낸다.
챌린지의 데이터베이스(410)는 멀티플렉서(420)에 의해 액세스되고, 멀티플렉서는 하나 이상의 선택된 챌린지를 선택하여 PUF(430)에 전달한다. 상기PUF(430)는 테스트 회로(440)에 의해 수집된 응답을 출력(단계 130)하거나 서명을 출력한다(상기 챌린지가 애플리케이션 챌린지인 경우, 즉 키 생성 또는 챌린지-응답 인증을 위해 지문을 출력할 때).
본 발명의 일 실시예에 따르면, 수행되는 테스트는 "임베디드" 또는 "온라인"이다. 본 발명에 따른 테스트는 "임베디드 테스트"이다.
"임베디드"라는 용어는 대부분 "온라인"으로 대체될 수 있다.
"온라인"또는 "임베디드"라는 용어는 테스트 회로가 PUF 회로의 바로 근처 또는 물리적인 근접에 배치된다는 의미이다. 일 실시예에서, 테스트 회로는 잠재적인 물리적 공격을 막거나 크게 줄이기 위해 짧은 거리(예를 들어, 전체 회로의 크기와 비교하여, PUF회로 크기 및/또는 비율에 비해)에 배치(예를 들어, 주위에 배치되거나, 상부 또는 하부에 배치되거나, 인접하여 모여있거나)된다(침입자 공격이 시험을 "제어"하거나 "위조하거나" "수정" 또는 "하이재킹"하거나 혹은 다르게 테스트나 테스트 결과를 수정하거나 강제할 수 있다). 이러한 유형의 공격은 통신 채널이 장치 외부에 있을 때 용이하게 수행된다. 임베디드 구현과 서비스 챌린지 사용과 함께 공격은 훨씬 더 어려워 진다(예: 따라서, 특정 장치는 공격 등을 수행하는 것이 요구된다.) 따라서, 본 발명의 실시예들은 PUF를 보다 잘 특징화하고 그것을 보호하는데 유리하다.
정의의 문제로서, 일부 사전에 따르면, 용어 "온라인"은 관련된 시스템의 직접적인 통제하에 있을 때 기능 단위의 운영과 관련된다. 실시예에서, 테스트 회로는 PUF를 제어한다. 실시예에서, 테스트 회로는 PUF와 상호 작용한다. 다른 정의에 따르면, 온라인 유닛은 사람의 개입 없이 시스템에 의해 요구되는 즉시 사용 가능하다. 본 발명의 일 실시예에 따르면, 온라인 테스트 회로는 사람과 기계(예를 들어, 일부 하드웨어 및/또는 소프트웨어 요소가 PUF 구동 및 하나 이상의 테스트의 실행을 트리거할 수 있음)에 의해 요구시 즉각적으로 사용할 수 있다.
공간과 시간 사이의 통신의 문제에서, PUF 회로와 각 테스트 회로 사이의 짧은 거리는 낮은 대기 시간을 의미하며, 이어서 PUF/테스트 회로 조합의 "실시간" 동작의 의미를 전달한다( 즉, 컴퓨터 과학에서 이 용어에 보통 위임되었다는 의미가 아니라 신속하거나 빠른 응답).
어떤 경우 PUF/테스트 회로 조합의 기능에 대한 또 다른 자격은 신속함 및 임베딩의 의미를 전달하는 "온 더 플라이(on-the-fly)"표현과 대응할 수 있다. 정보(여기서는 응답)를 "온 더 플라이"로 활용하여 결론(메트릭, 측정, 경보)을 바로 취할 수 있다.
컴퓨터 기술에서 "온라인"이라는 용어는 다른 장치에 의해 직접 제어되는 설비 또는 장치의 조건 또는 상태를 나타낸다. 이 용어는 기능적이며 서비스 준비가 된 장치 상태를 지정한다. 일부 변형에서, 이 용어는 대형 장치의 일부이거나 임베드되고 장치와 실시간 또는 거의 실시간으로 상호 작용하는 하드웨어 회로를 지정한다.
일 실시예에서, "온라인"또는 "임베디드" 테스트는 PUF를 테스트하는데 필요하고 충분한 회로 또는 수단을 포함한다. 실시예에서, 테스트는 "내부" 또는 "임베디드"이므로, 즉 외부 측정 장치에 대한 필요성이 없다.
또한, 근거리에서의 물리적 배치는 유리하게는 낮은 대기 시간을 의미하며, 회로가 매우 빠른 방식으로 경보를 수신할 수 있게 한다. 근거리에서의 물리적 배치는 유리하게는 낮은 대기 시간을 의미한다. 짧은 거리에 물리적 배치를 하면 PUF와 테스트 블록 간의 연결을 많이 허용하면서 집적 회로의 개별 연결을 물리적으로 라우팅하는 복잡성을 줄일 수 있다.
"온라인 PUF 실행"("온라인 챌린지가 있는 PUF 실행")의 관점에서 "온라인"이라는 용어는 여기서 테스트 블록(물리적 회로)이 PUF를 구현하는 회로에 인접("임베디드")하여 제공될 ‹š 측정(또는 "읽기")이 수행됨을 의미한다.
일 실시예에서, 이 방법은 완전히 임베디드 하드웨어 블록에 의해 구현될 수 있다. 일 실시예에서, 개시된 방법은 로컬 프로세서상에서 실행되는 임베디드 하드웨어 및 소프트웨어에 의해 수행될 수 있다. 방법 단계는 실제로 전용 하드웨어 또는 임베디드 소프트웨어를 실행하는 로컬 프로세서일 수 있는 특정 유형의 하드웨어에서 수행되는 작업(따라서 시간 흐름)을 포함한다. 즉, 하나 이상의 하드웨어 회로가 미리 정의된 방법의 단계를 "구현"한다.
예를 들어, 블록(440)(예를 들어, 단계(130))은 본 발명에 의해 정의된 바와 같은 하나 이상의 단계를 인코딩한다. 기술적인 관점에서 볼 때, 블록은 무형일 수 있으며(즉, 시간이 지남에 따라 진화하지는 않으며, 적어도 의도하지 않음) 재 프로그래밍될 수 있다.
일 실시예에서, 테스트 수단은 전체적으로 하드웨어(예를 들어, "온라인", 즉 PUF를 구현하는 하드웨어의 임베디드 또는 물리적으로 인접하거나 가까운 거리에 있는 테스트 회로)이다. 일 실시예에서, 테스트 수단은 로컬 프로세서상에서 실행되는 하드웨어 및 소프트웨어 수단들을 결합한다.
유리하게는, 본 발명의 실시예는 공장에서 또는 상업화된 회로상에서 수행될 수 있다.
이제 테스트의 예가 설명된다.
일 실시예에서, PUF의 특정 품질 특성이 결정된다. 해당 품질 테스트는 "전체 오류 테스트"이다. 예를 들어 이 테스트는 PUF가 순서가 잘못되지 않았는지 확인한다. 유리하게, 지연 PUF가 테스트될 수 있다. 일반적으로 이러한 PUF에는 많은 수의 챌린지가 제공된다. 이러한 일련의 챌린지들 중에서 식별된 특성을 가진 제한된 수의 서비스 챌린지가 선택된다. 상기 식별된 특성은 응답의 특정(값)에 대응한다. 일 실시예에서, 특이점은 수신된 응답값 중에서 검출된다. 정성적으로, 상기 응답은 "비정형" 및/또는 "비정상" 및/또는 "과도" 및/또는 "수렴" 및/또는 "극한" 및/또는 "걷잡을 수 없는"것일 수 있다.
정량적으로, 대응하는 결정 또는 선택 기준은 a) 00000000 또는 11111111과 같은 비트의 불변 벡터 식별, b) 미리 정의된 상한 임계치 이상의 응답값의 검출(예: 수신 및/또는 수집된 응답 중에서 가장 높거나 가장 낮은 응답값을 나타냄); 극한값 또는 극한값의 범위가 고려될 수 있음. c) 서로 너무 가깝거나 동일하거나 동일한 챌린지 및/또는 응답 d) 일관된 응답값을 받지 못하는 중간 상황 e)보다 일반적으로 "특이점" 검출을 위하여 수신된 응답의 흐름에 적용되는 통계의 사용; 을 포함한다.
"전체 오류 테스트"의 이러한 실시예는 여러 상황 또는 시나리오에서 유리할 수 있다. 예를 들어, 회로의 적대적인 공격이 검출될 수 있다(예를 들어, 전자기 커플링에 의한 다중 링 오실레이터 기반 시스템에서). 또한, 회로가 결함 주입 공격을 검출할 수 있다. 예를 들어 약점을 찾기 위해 일부 레지스터를 조작할 수 있다. 또한, 회로가 국지적인 노화 현상으로 인해 FPGA(Field-Programmable Gate Array)의 치명적인 인터커넥트 오류를 검출할 수 있게 해준다. 또한, 집중된 이온 빔(Focused Ion Beam: FIB) 또는 이와 유사한 침습 기술로 회로 변경을 검출할 수 있다.
다른 실시예에서, "엔트로피" 또는 "임의성"에 대응하는 품질 특성이 테스트되거나 그렇지 않으면 평가될 수 있다. "임의성"은 PUF 응답의 엔트로피가 최적임을 의미하며, 즉, 모든 챌린지가 실행될 때 PUF 응답 분배가 균일함을 의미한다. 즉, 응답 길이가 N 비트라면 PUF의 엔트로피는 N 비트이다.
일반적으로 메모리 또는 지연 PUF가 어드레스 될 수 있다(대량의 어드레스/챌린지를 사용할 수 있음). 메모리 PUF의 경우, 어드레스의 서브 세트가 선택될 수 있다. 그러한 경우에, 고려된 PUF가 예를 들어 SRAM-PUF에 기초한다면, 서비스 챌린지 세트는 하나 또는 다수의 어드레스 범위(단일 메모리 어드레스; 연속적인 메모리 어드레스의 그룹, 즉 하나의 어드레스 범위; 또는 복수의 어드레스 범위)로 구성될 수 있다. 지연 PUF의 경우 제한된 수의 서비스 챌린지를 선택할 수 있다. 여러 가지 챌린지를 실행한 후 응답을 수집하거나 수신하여 추가로 분석한다.
이론적으로는 상관없는 응답과 높은 엔트로피 수준(PUF의 불완전성을 반영하여 정상적인 행동 범위를 정의하는 관련 임계치의 사용을 암시할 수 있음)이 기대된다.
선택적으로 하나 이상의 테스트가 일련의 응답(비트 벡터로서 PUF 응답은 단일 비트 문자열로 연결될 수 있음)에서 수행될 수 있다.
엔트로피의 수준을 평가하기 위해 품질 테스트에 해당하는 일련의 단계를 적용할 수 있다.
몇몇 단일 단계는 선행 기술 그 자체로 알려져 있지만 본 발명의 관점에서는 알려져 있지 않다. 예를 들어, URL에서 쉽게 얻을 수 있는 BSI의 AIS31("Bundesamt fur Sicherheit in der Informationstechnik"에 대한 독일어 약어; https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Zertifizierung/Interpretationen/AIS_31_Functionality_classes_for_random_number_generators_e.pdf)가 있다.
따라서 이러한 테스트는 최신 상태에서 사용 가능하고 충분히 문서화된다.
이러한 단일 테스트의 예는 소위 "모노 비트" 테스트이다. 실질적으로, 임의성이 "위험한" 수준(미리 정의된 임계치에 해당) 이하가 아닌지 확인할 수 있다. 다른 예로서, "구동" 테스트를 수행하면, 0과 동일한 연속적인 비트 값의 수가 "위험한" 레벨(즉, 미리 정의된 임계치를 초과함) 이상이 아니라는 것을 확실하게 또는 합리적으로 확신할 수 있다. "패턴" 테스트(예: "블록" 테스트, "분리" 테스트, "포커" 테스트 등)를 수행하는 또 다른 예에서는 PUF는, 공격자가 하나 이상의 응답을 예측하는 데 도움이 될 수 있는 주요 또는 의미 있는 바이어스를 나타내지 않도록 할 수 있다. 이러한 테스트와 관련하여 특정 메트릭을 정의하고 계산할 수 있다. 따라서 그에 대응하는 경보가 통보될 수 있다.
이러한 표준화된 테스트(예: 모노 비트 테스트, 런 테스트, 패턴 테스트 또는 이들의 조합)는 신뢰성 있는 것으로 간주되는 응답에 대해 실행되며, 상기 응답은 서비스 및/또는 애플리케이션 챌린지에 대응한다.
또한, 이러한 단위 테스트 또는 단위 테스트의 단계들을 전체적으로 더 결합할 수 있다.
일 실시예에서, 프로토타이핑이 공장 프로파일링 또는 배치 후("현장"), 대응하는 테스트가 수행될 수 있다.
전술한 실시예 중 적어도 일부는 여러 상황 또는 시나리오에서 유리하게 사용될 수 있다. 예를 들어, 본 발명에 따른 회로는 구조 상의 주요 바이어스를 검출할 수 있다. 또한, 예를 들어, 제조 프로세스의 불일치로 인해 샘플 또는 PUF에서 주요 바이어스를 검출할 수 있다. 또한, 회로가 방해 현상과 같은 공격자가 수행한 조작을 검출할 수 있다.
다른 실시예에서, "안정성"의 품질 특성이 테스트 된다. "안정성" 또는 "신뢰성"은 PUF가 주어진 챌린지에 대해 항상 동일한 응답을 제공함을 의미하므로 잡음 내성의 증거가 된다.
일 실시예에서, "프로파일링 단계 없는 안정성" 테스트가 이루어진다. PUF 반응은 일반적으로 사전 정량화 없이 고려된다. 일부 PUF(대개 지연 PUF)는 단일 비트 대신에 정수를 전달한다. 원하는 비트, 즉 정량화를 얻기 위해서는 추가 프로세스 또는 단계가 필요할 수 있다. 일반적으로 이 양을 정량화하기 위해서는 (정량화하기 전에) PUF의 "신뢰성" 또는 "안정성"에 대한 단서 또는 표시를 제공할 수 있다.
지연 PUF의 경우, 많은 수의 챌린지 세트를 사용할 수 있다. (지연 PUF와 같은) 일부 PUF 유형의 경우, 응답은 2진이 아니라 신뢰성 레벨을 "포함하는" 정수이다.
일 실시예에서, 가능한 챌린지 세트 중, 식별된 특성을 나타내는 서비스 챌린지의 서브 세트가 선택된다.
일 실시예에서, 이 서브 세트의 선택은 PUF 부품의 "커버리지"를 최적화한다. 챌린지가 실제로 실행되면, PUF 하드웨어 구성 요소의 일부, 즉 회로만이 사용될 수 있다. 어느 정도까지 챌린지는 PUF "구성"에 해당한다. 서비스 서브 세트로부터의 챌린지는 PUF 부품의 최대수를 테스트하기 위해 모든 PUF "구성"을 임시로 포함해야 한다. 상기 "커버리지"는 차례로(적어도 부분적으로) 정량화 및/또는 최적화될 수 있다.
PUF 아키텍처에 의존하여, 서비스 챌린지의 잘 선택된 서브 세트는 유리하게도 최대 커버리지(즉, PUF를 구성하는 모든 요소의 검증)로 신뢰성을 부여하는 것을 허용한다. 애플리케이션에서 받아 들일 수 없는 챌린지는 테스트 목적으로 "재활용"할 수 있다(예).
일 실시예에서, 복수의 응답이 각 서비스 챌린지에 대해 수집된다. 그런 다음 응답의 안정성을 지켜보거나 모니터링한다. 예를 들어, 두 개의 연속적인 응답의 기울기를 결정하거나 수집된 데이터의 평균 및 표준 편차를 계산하거나 다른 통계적 분석(다른 고급 통계 분석 기술에 대한 표준 편차 및 산술 평균의 단순한 결정의 범위)에 따라 서로 다른 응답을 저장하고 서로 다른 응답의 연속을 분석한다. 임계치(즉, 하나 이상의 미리 정의된 임계치, 정적 또는 동적 등)가 정의될 수 있으며 편차가 그러한 임계치를 초과하면 경보 또는 경고를 알릴 수 있다.
일 실시예는 유리하게도 몇몇 상황 또는 시나리오에서 사용될 수 있다. 예를 들어, 일 실시예는 공격(예를 들어, 오류 주입 -레지스터의 조작- 또는 적대적인 공격 또는 전자기 고조파 공격에 의한 다중 링-오실레이터 기반 시스템에 대한 적대적인 공격)의 검출을 허용한다. 일 실시예는 비정상적으로 가혹한 환경 조건의 검출을 허용한다. 달리 말하면, 설명된 실시예는 표준 및 정의된 동작으로부터의 편차를 평가할 수 있다(적용 가능한 경우, 측정된 편차는 위에 열거된 시나리오가 발생했음을 나타낼 수 있음).
다른 실시예에서, "노화로 인한 신뢰성"의 품질 특성이 평가된다. "시간에 따른 신뢰성" 또는 "노화 영향"은 PUF가 시간이 지남에 따라 변경될 수 있음을 의미한다(예: 연속 저하). PUF의 노화 영향은 지정된 기간 동안 명시된 조건하에서 필요한 기능을 수행할 수 있는 능력에 해당한다. 노화 영향으로 인한 신뢰성은 다른 측정 항목을 사용하여 추정할 수 있다.
일 실시예에서, "신뢰성 맵"이라고 하는 메트릭이 사용된다. 일 실시예에서, 맵은 비트 벡터일 수 있으며, 여기서 각 비트는 대응하는 챌린지에 관한 정보, 예를 들어 "신뢰성 있는"에 대한 값 1 및 "신뢰성 없는"에 대한 값 0을 제공한다. 미리 정의된 임계치에 따라 맵은 가장 신뢰할 수 있는 응답 집합에 해당할 수 있다. 예를 들어, 그러한 임계치는 PUF에서 사용되는 기술에 의존할 수 있고 및/또는 공장 프로파일링 단계 동안 수행된 측정에 기초할 수 있다.
바람직하게는, 신뢰성 맵은 정수, 즉 단일 비트가 아닌 PUF로부터 획득되지만, 신뢰성 맵은 임의의 유형의 PUF로부터 도출될 수 있다. 이러한 신뢰성 맵은 환경 조건(예: 온도, 전원 공급 장치, 전자기 간섭, 내부 잡음 등)으로 인해 시간에 따라 변할 수 있지만 심각한 신뢰성 저하가 검출될 수 있다(예를 들어 해밍 거리/지도 및 측정된 것). 해당 경보 플래그를 올릴 수 있다.
몇몇 유리한 실시예 또는 사용 시나리오가 이제 설명된다. 제1 시나리오에서, 계산된 신뢰성 맵은(예를 들어, 공장 프로파일링 단계 동안) 기준 맵과 비교된다. 그 차이가 중요하다면(예를 들어, 기준 맵과 계산된 맵 간의 편집 거리나 해밍 거리가 미리 정의된 임계치보다 큰 경우) 이는 PUF가 품질에서 심각한 저하를 나타낼 수 있음을 나타낼 수 있다. 상기 샘플 또는 PUF는 작업자가 거부해야 한다. 제2 시나리오에서 신뢰할 수 없는 챌린지 수가 상위 "위험한" 한계를 초과하면(예: 신뢰성 맵 해밍 무게가 사전 정의된 임계치보다 큼), 샘플 또는 장치는 운영자에 의해 거부/철회되어야 한다. 제3의 예시적인 시나리오에서, 계산된 맵은 낮은 신뢰성 검출시(예를 들어 프로파일링 단계 동안의 제조 공장에서, 계산된 맵의 해밍 가중치가 사전 정의된 임계치보다 크다는 것이 결정됨) 거부/철회되어야 한다.
다른 실시예에서, "탬퍼링 검출 테스트"가 수행된다. 극한 또는 비정상적인 환경 변화(예: 온도, 전원 공급 장치, 전자기 간섭)로 인해 PUF가 응답을 크게 수정하게 되면 PUF "오류" 또는 "탬퍼링"이 발생할 수 있다. 예를 들어 PUF 탬퍼링은 악의적인 행동으로 PUF가 예기치 않은 값을 출력하도록 만들 때 발생한다.
지연 또는 메모리 PUF가 어드레스 될 수 있다. 따라서 많은 수의 챌린지/어드레스의 세트를 사용할 수 있다. 일 실시예에서, 상기 방법은 하나 이상의 서비스 챌린지를 신뢰할 수 없는 및/또는 불안정한 것으로 결정하는 단계를 포함하며; 상기 응답이 잡음에 민감하고 비정상적인 경우, 신뢰할 수 없는 서비스 챌린지는 신뢰할 수 없는 것으로 결정된다. 탬퍼링은 신뢰할 수 없는 챌린지가 신뢰성 있게 되는 것을 검출하는 메트릭에 의해 평가될 수 있다. 이 값이 미리 정의된 임계치를 초과하면 검출은 종료된다.
바람직하게는, 그러한 실시예들은 PUF 응답이 안정성 값으로 되도록 강제하는 혼란 현상과 같은 적대적인 탬퍼링 공격을 회로가 검출하도록 허용할 수 있다
다른 실시예에서, 고려된 PUF의 "성능 모니터링"이 수행된다.
그러한 실시예에서, 하나 이상의 품질 특성(예를 들어, 신뢰성, 안정성 등)에 관한 PUF의 성능은 시간에 따라 추정될 수 있다. 즉, 위에서 설명한 여러 가지 테스트("안정성", "엔트로피", "노화" 등)를 결합할 수 있다. 일 실시예에서, 결합되는 상이한 시험은 상이한 고려 방식에 따라 가중될 수 있다. 일 실시예에서, 특정 테스트 조합(또는 조합 없는 단일 테스트)은 시간에 걸쳐 반복될 수 있고, 대응하는 진화 또는 추세 또는 다른 지표는 분석된 결과의 이력으로부터 도출될 수 있다.
일 실시예에서, PUF에 대한 테스트는 주기적으로 실행된다(주기성은 사용자에 의해 구성될 수 있거나 제3자의 개입 없이 동적으로 실행될 수 있다).
앞서 설명한 테스트와 마찬가지로, 심각한 성능 저하의 경우 또는 의심스러운 성능 향상 검출에 따라 대립의 경우 경보가 발생하거나 경고 또는 메시지를 보낼 수 있다.
성능 또는 품질 특성의 모니터링은 여러 상황 또는 시나리오에서 유리할 수 있다. 예를 들어, 그러한 모니터링은 회로가 적대적인 탬퍼링 공격을 검출하도록 허용할 수 있다. 그것은 또한, 회로가 PUF "모방자"를 검출하도록 허용할 수 있다. 이러한 PUF 모방자는 "모델화"된 PUF에 해당하는데, 원본처럼 작동하는 수학적 모델은 완벽한 방식으로, 즉 잡음, 노화, 오류 없이 작동한다. 이런 이유로, 그 "약점" 또는 하드웨어 특성의 일부가 재생되지 않는다. 일 실시예에서, "모방"또는 "(너무) 완벽한" PUF는 본 발명에 따른 상이한 테스트의 조합에 의해 검출될 수 있다.
도 5는 본 발명의 특정 시스템 실시예를 도시한다.
도 5는 PUF(511) 및 온라인 테스트 회로(512, 440, 130)를 포함하는 실리콘 집적 회로(510)를 도시하며, 상기 온라인 테스트 회로(512)는 상기 PUF(511)에 물리적으로 인접한 하나 이상의 회로 부분을 포함하고 상기 하나 이상의 회로 부분은 상기 PUF에 인접한 테스트 회로(512)에 내장된 임베디드 테스트 또는 온라인 테스트와 관련된 메트릭을 선택하도록; 상기 메트릭과 연관된 하나 이상의 임계치를 선택하도록; 그리고 상기 PUF와 관련된 하나 이상의 챌린지를 결정하도록 적응된다. 결정된(서비스) 챌린지는 PUF에 의해 실행되고 (소프트) 응답의 분석은 PUF의 품질 특성을 검증하거나 이끌어 낼 수 있다.
상기 실리콘 집적 회로(510)는 PUF(511)및 테스트 회로(512)를 포함하며, 컴퓨터 로직은 테스트 회로(512) 상에 저장되거나 또는 테스트 회로에 의해 액세스 가능하고, 상기 컴퓨터 로직은 서비스 챌린지(500)를 구현하도록 구성되며, 서비스 챌린지(500)는 소정의 패턴으로부터의 하나 이상의 편차를 결정하기 위해 하나 이상의 응답과 비교될 수 있는 서비스 응답을 생성한다.
도 5는 본 발명의 특정 실시예를 도시한다. 이 예에서, 서비스 챌린지가 수신되거나 결정된다(예를 들어, 데이터베이스로부터 미리 정의되거나 관리자(531)에 의해 구성됨). 상기 서비스 챌린지는 PUF에 의해 실행된다. 획득된(포착된) 응답은 비휘발성 메모리(예를 들어, ROM(520))에 저장된다. 신뢰성(또는 PUF의 임의의 다른 품질 특성)을 평가하고자 하는 다른 사용자, 예를 들어 최종 사용자(532)는 나중에 상기 비휘발성 메모리(520)에 액세스하여 PUF의 특성을 검증(또는 그렇지 않으면 평가 또는 정량화)할 수 있다.
비휘발성 메모리, NVM 또는 비휘발성 저장 장치는 전원을 껐다 켠 후에도 저장된 정보를 검색할 수 있는 컴퓨터 메모리이다. 비휘발성 메모리의 예는 읽기 전용 메모리, 플래시 메모리, 강유전성 RAM(F-RAM), 대부분 유형의 자기 컴퓨터 저장 장치(예: 하드 디스크) 및 광학 디스크를 포함한다. 비휘발성 메모리는 ROM(예를 들어, 마스크 ROM PROM, EPROM 및 EEPROM), NVRAM(예를 들어, 플래시 메모리, nvSRAM, FeRAM, MRAM, PRAM), 기계적 메모리(하드 드라이브, 광학 드라이브 등)를 포함한다. 비휘발성 메모리는 또한, CBRAM, SONOS RRAM, 레이스트랙 메모리, NRAM, 밀리피드(Millipede) 메모리 또는 FJG를 포함할 수 있다.
수행되는 테스트와 저장된 테스트 결과의 검색은 반드시 결합 될 필요는 없다. 메모리 액세스 및 테스트 이벤트는 다른 시점에서 발생할 수 있다. 예를 들어, 저장된 소프트 응답에 대한 액세스는 테스트가 수행된 직후에 발생할 수 있지만, 일부 상황에서는 상기 액세스가 수개월 또는 수십 년 후에도 (예: 노화 테스트) 발생할 수 있다.
동일한 사용자가 테스트를 수행하고 저장된 결과에 액세스할 수 있다. 또는 다른 사용자(또는 기계)가 연속적으로 테스트를 구성하고 수행하고 결과에 액세스할 수 있다.
비휘발성 메모리는 국부적이거나 또는 외부일 수 있다. 일 실시예에서, 비휘발성은 배타적으로 국부적이며, 즉 PUF 및 테스트 회로를 따라 내장된다. 일 실시예에서, 메모리는 배타적으로 외부에 있다(예를 들어, 이러한 경우, 프로브 또는 전극 또는 전기적 접합부는 테스트 결과를 포획하고 저장하는 수단을 제공한다). 또 다른 실시예에서, 메모리는 로컬 메모리 및 외부 메모리 모두로 분할될 수 있다(예를 들어, 국부적으로 저장된 데이터의 어떤 형태의 보호를 허용).
비휘발성 메모리 유닛(520)의 메모리 크기는 2비트(예를 들어, RFID 실시예에서, 비휘발성 메모리에 부가적으로 판독 및/또는 기록 능력을 제공하는 오류 테스트를 위한 256비트)에서 수 킬로비트(예를 들어, 시간 경과에 따라 드리프트 측정이 결정되는 노화 테스트를 수행하기 위해)의 범위를 갖는다.
개시된 발명의 일 실시예는 전적으로 하드웨어 실시예일 수 있다. 일 실시예는 전적으로 소프트웨어 실시예일 수 있다. 일 실시예는 하드웨어 및 소프트웨어 요소를 모두 포함할 수 있다. 본 발명은 또한, 컴퓨터 또는 임의의 명령 실행 시스템에 의해 또는 그와 관련하여 사용하기 위한 프로그램 코드를 제공하는 컴퓨터 사용 가능 또는 컴퓨터 판독 가능 매체로부터 액세스 가능한 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 컴퓨터 사용 가능 또는 컴퓨터 판독 가능은 명령 실행 시스템, 장치 또는 장치에 의해 또는 그와 관련하여 사용하기 위해 프로그램을 포함, 저장, 통신, 전파 또는 전송할 수 있는 임의의 장치일 수 있다. 상기 매체는 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템(또는 장치 또는 장치) 또는 전파 매체일 수 있다.

Claims (19)

  1. PUF(Physically Unclonable Function), 멀티플렉서 및 테스트 회로를 포함하는 직접회로로서,
    상기 멀티플렉서는 챌린지를 애플리케이션 챌린지와 서비스 챌린지로 분할하도록 구성되며,
    컴퓨터 로직은 상기 테스트 회로에 임베드되거나 저장 또는 테스트 회로에 의해 액세스 가능하고, 상기 컴퓨터 로직은 하나의 서비스 챌린지를 구현하도록 구성되며, 상기 서비스 챌린지는 서비스 응답을 생성하도록 구성되고, 상기 서비스 응답은 소정의 패턴으로부터 편차를 결정하기 위해 하나 이상의 서비스 응답과 비교되며,
    상기 서비스 챌린지는 애플리케이션 챌린지가 아닌 챌린지이며, 애플리케이션 챌린지는 챌린지-응답 인증 또는 키 생성을 위한 응답을 제공하는, 직접회로.
  2. 제1항에 있어서, 적어도 하나의 서비스 응답을 저장하도록 구성된 비휘발성 메모리를 더 포함하고, 생성된 상기 서비스 응답은 상기 비휘발성 메모리에 저장된 적어도 하나의 서비스 응답과 비교되는, 집적 회로.
  3. 물리적 복제불가능 기능을 가진 PUF를 처리하는 방법으로서,
    - 상기 PUF에 인접한 테스트 회로에 내장된 임베디드 테스트 또는 온라인 테스트와 관련된 메트릭을 선택하는 단계;
    - 상기 메트릭과 관련된 하나 이상의 임계치를 선택하는 단계; 및
    - 상기 PUF와 관련된 하나 이상의 챌린지를 결정하는 단계를 포함하고,
    상기 하나 이상의 챌린지는 애플리케이션 챌린지가 아닌 서비스 챌린지를 포함하며, 애플리케이션 챌린지는 챌린지-응답 인증 또는 키 생성을 위한 응답을 제공하는, PUF를 처리하는 방법.
  4. 제3항에 있어서, 상기 하나 이상의 챌린지로 상기 PUF를 실행하는 단계를 더 포함하는, PUF를 처리하는 방법.
  5. 제4항에 있어서, 상기 하나 이상의 서비스 챌린지와 관련된 하나 이상의 응답을 수신하는 단계를 더 포함하는, PUF를 처리하는 방법.
  6. 제5항에 있어서, 선택된 상기 임계치를 갖는 선택된 상기 메트릭을 수신된 하나 이상의 응답에 적용하는 단계를 더 포함하는, PUF를 처리하는 방법.
  7. 제3항에 있어서, 적어도 하나의 특이한 응답의 검출시에 전체적 PUF 오류로 결정되는, PUF를 처리하는 방법.
  8. 제7항에 있어서, 특이한 응답은 미리 정의된 임계치를 초과하는 하나의 비정상적인 응답, 불변의 비트값을 갖는 응답, 미리 정의된 비트값을 갖는 응답, 응답 분배에서의 비정상 응답, 및 수신된 응답과 비 일관적인 응답을 포함하는 그룹으로부터 선택되는, PUF를 처리하는 방법.
  9. 제3항에 있어서, 하나 이상의 시스템 바이어스가 상기 PUF의 하나 이상의 응답을 공격자가 예측하도록 하는 것을 검출할 때, 엔트로피 및/또는 임의성과 관련된 PUF의 품질 특성이 결정되는, PUF를 처리하는 방법.
  10. 제9항에 있어서, 상기 하나 이상의 시스템 바이어스의 검출은 미리 정의된 임계치를 초과하는 연속적인 비트 값을 검출하는 단계를 포함하는, PUF를 처리하는 방법.
  11. 제3항에 있어서, 안정성과 관련된 상기 PUF의 품질의 특성은, 챌린지에 대한 복수의 응답을 수신하는 단계, 상기 응답들을 시간에 따라 저장 및 비교하는 단계, 상기 안정성과 관련된 하나 이상의 파라미터들을 결정하는 단계를 포함하는 단계를 실행하여 결정되는, PUF를 처리하는 방법.
  12. 제11항에 있어서, 상기 서비스 챌린지의 실행에 수반되는 상기 PUF의 하드웨어 부분의 수를 최대화하도록 서비스 챌린지의 상기 선택을 변경하는 단계를 더 포함하는, PUF를 처리하는 방법.
  13. 제3항에 있어서, 신뢰성과 관련된 상기 PUF의 품질의 특성은,
    - 비트 벡터를 포함하는 신뢰성 맵을 결정하는 단계로서, 대응하는 챌린지가 미리 정의된 임계치에 따라 신뢰성 있는 것으로 결정되면 상기 벡터의 비트가 1의 값과 동일하고 그렇지 않으면 0의 값과 동일한, 상기 신뢰성 맵을 결정하는 단계; 및
    - 상기 결정된 맵을 미리 정의된 기준 맵과 비교하는 단계를 포함하는 단계들을 수행함으로써 결정되는, PUF를 처리하는 방법.
  14. 제13항에 있어서, 신뢰성이 없는 것으로 결정된 챌린지가 신뢰성 있는 것으로 검출될 때 탬퍼링이 결정되는, PUF를 처리하는 방법.
  15. 제5항에 있어서, 상기 수신된 응답을 저장하고 상기 응답을 서로 비교하는 단계를 더 포함하는, PUF를 처리하는 방법.
  16. 제15항에 있어서, 상기 응답을 서로 비교하는 단계는, 2개의 연속적인 응답의 기울기를 결정하는 단계 또는 수신된 응답의 평균 및 표준 편차를 결정하는 단계를 포함하는 방법.
  17. 제3항에 있어서, PUF를 취소하는 단계, PUF를 사용 불가능하게 하는 단계 또는 통지 또는 경고 메시지를 내는 단계 중 하나 이상의 단계를 더 포함하는, PUF를 처리하는 방법.
  18. 컴퓨터 판독 가능한 매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 컴퓨터 장치 상에서 실행될 때 제3항 및 제5항 내지 제18항 중 어느 한 항에 따른 방법의 단계들을 수행하기 위한 명령들을 포함하는, 컴퓨터 판독 가능한 매체에 저장된 컴퓨터 프로그램.
  19. PUF 및 온라인 테스트 회로를 포함하는 실리콘 집적 회로로서,
    상기 온라인 테스트 회로는 상기 PUF에 물리적으로 인접하는 하나 이상의 회로부분을 포함하고 상기 하나 이상의 회로는 제3항 및 제5항 내지 제18항 중 어느 한 항에 따르는 방법의 단계를 구현하는, 실리콘 직접 회로.
KR1020207020795A 2015-07-01 2016-07-01 물리적 복제방지 기능을 위한 임베디드 테스트 회로 KR20200090944A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP15306063.7A EP3113409A1 (en) 2015-07-01 2015-07-01 Embedded test circuit for physically unclonable function
EP15306063.7 2015-07-01
PCT/EP2016/065479 WO2017001650A1 (en) 2015-07-01 2016-07-01 Embedded test circuit for physically unclonable function

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020187003151A Division KR20180050276A (ko) 2015-07-01 2016-07-01 물리적 복제방지 기능을 위한 임베디드 테스트 회로

Publications (1)

Publication Number Publication Date
KR20200090944A true KR20200090944A (ko) 2020-07-29

Family

ID=54151215

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020187003151A KR20180050276A (ko) 2015-07-01 2016-07-01 물리적 복제방지 기능을 위한 임베디드 테스트 회로
KR1020207020795A KR20200090944A (ko) 2015-07-01 2016-07-01 물리적 복제방지 기능을 위한 임베디드 테스트 회로

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020187003151A KR20180050276A (ko) 2015-07-01 2016-07-01 물리적 복제방지 기능을 위한 임베디드 테스트 회로

Country Status (5)

Country Link
US (1) US10855476B2 (ko)
EP (1) EP3113409A1 (ko)
KR (2) KR20180050276A (ko)
CN (1) CN108028757B (ko)
WO (1) WO2017001650A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996996B2 (en) * 2015-04-16 2018-06-12 Siebels Asset Management Research Ltd. Protected article management
US11258599B2 (en) 2016-08-04 2022-02-22 Macronix International Co., Ltd. Stable physically unclonable function
US10469271B2 (en) 2016-08-04 2019-11-05 Macronix International Co., Ltd. Physical unclonable function for non-volatile memory
US10911229B2 (en) * 2016-08-04 2021-02-02 Macronix International Co., Ltd. Unchangeable physical unclonable function in non-volatile memory
US10855477B2 (en) 2016-08-04 2020-12-01 Macronix International Co., Ltd. Non-volatile memory with physical unclonable function and random number generator
DE102017205818A1 (de) * 2017-04-05 2018-10-11 Robert Bosch Gmbh Einstellbare physikalische unklonbare Funktion
US10579339B2 (en) * 2017-04-05 2020-03-03 Intel Corporation Random number generator that includes physically unclonable circuits
GB2564839A (en) * 2017-05-30 2019-01-30 Zwipe As Smartcard and method for controlling a smartcard
US10649735B2 (en) * 2017-09-12 2020-05-12 Ememory Technology Inc. Security system with entropy bits
US11082241B2 (en) * 2018-03-30 2021-08-03 Intel Corporation Physically unclonable function with feed-forward addressing and variable latency output
KR102170395B1 (ko) 2018-09-07 2020-10-27 충북대학교 산학협력단 상호 보완적인 응답을 갖는 물리적 복제 방지 기능 회로에 적용 가능한 응답 결정 시간을 이용한 응답 신호의 불안정성을 감지하는 장치 및 방법
KR102192845B1 (ko) * 2018-09-20 2020-12-18 충북대학교 산학협력단 물리적 복제 불가능 함수에 적용 가능한 응답 다중 비교를 통한 응답 불안정성 감지 장치 및 방법
US20200096363A1 (en) * 2018-09-26 2020-03-26 Infineon Technologies Ag Providing compensation parameters for sensor integrated circuits
US11277272B2 (en) * 2018-11-07 2022-03-15 Samsung Electronics Co., Ltd. Integrated circuit and method for challenge-response physically unclonable function
US11082242B2 (en) 2019-05-17 2021-08-03 Taiwan Semiconductor Manufacturing Co., Ltd. Transistor-based physically unclonable function
US11269999B2 (en) * 2019-07-01 2022-03-08 At&T Intellectual Property I, L.P. Protecting computing devices from malicious tampering
US11171793B2 (en) * 2019-10-01 2021-11-09 Nxp B.V. Method and system for detecting an attack on a physically unclonable function (PUF)
US11743058B2 (en) * 2020-03-05 2023-08-29 International Business Machines Corporation NVDIMM security with physically unclonable functions
US11528152B2 (en) * 2020-10-12 2022-12-13 Raytheon Company Watermarking for electronic device tracking or verification
US11380379B2 (en) 2020-11-02 2022-07-05 Macronix International Co., Ltd. PUF applications in memories
GB2601846A (en) * 2021-03-15 2022-06-15 Nordic Semiconductor Asa Encoding
WO2024049839A1 (en) * 2022-08-29 2024-03-07 Maro Bio Inc. Compositions and methods for non-genotoxic conditioning
KR102593608B1 (ko) * 2022-09-15 2023-10-23 전남대학교산학협력단 집속 이온빔 공격 검출 방법 및 이를 위한 보안 회로

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370787B2 (en) 2009-08-25 2013-02-05 Empire Technology Development Llc Testing security of mapping functions
EP2693685B1 (en) * 2012-07-30 2017-09-06 Universiteit Twente Quantum secure device, system and method for verifying challenge-response pairs using a physically unclonable function (PUF)
KR101419745B1 (ko) * 2012-08-07 2014-07-17 한국전자통신연구원 물리적 복제 방지 기능을 기반으로 하는 인증 요청 장치, 인증 처리 장치 및 인증 수행 방법
DE102012217716A1 (de) * 2012-09-28 2014-06-12 Siemens Aktiengesellschaft Selbst-Test einer Physical Unclonable Function
US9444618B1 (en) * 2013-04-22 2016-09-13 Xilinx, Inc. Defense against attacks on ring oscillator-based physically unclonable functions
EP2816756A1 (fr) * 2013-06-18 2014-12-24 Nagravision S.A. Procédé et dispositif cryptographique unique à fonction physiquement induplicable
KR102178386B1 (ko) * 2013-07-26 2020-11-12 주식회사 아이씨티케이 홀딩스 랜덤성 테스트 장치 및 방법
DE102013013047B4 (de) * 2013-08-06 2015-05-07 Infineon Technologies Ag Bestimmung einer Kennung
CA2922701C (en) 2013-08-28 2021-05-04 Stc.Unm Systems and methods for leveraging path delay variations in a circuit and generating error-tolerant bitstrings
US20150134966A1 (en) * 2013-11-10 2015-05-14 Sypris Electronics, Llc Authentication System

Also Published As

Publication number Publication date
KR20180050276A (ko) 2018-05-14
CN108028757B (zh) 2021-01-12
CN108028757A (zh) 2018-05-11
US10855476B2 (en) 2020-12-01
WO2017001650A1 (en) 2017-01-05
US20180183613A1 (en) 2018-06-28
EP3113409A1 (en) 2017-01-04

Similar Documents

Publication Publication Date Title
KR20200090944A (ko) 물리적 복제방지 기능을 위한 임베디드 테스트 회로
US10397251B2 (en) System and method for securing an electronic circuit
Selmke et al. Precise laser fault injections into 90 nm and 45 nm sram-cells
US11893112B2 (en) Quantitative digital sensor
JP6983992B2 (ja) 自動化システムにおけるインテグリティ監視
CN108304717B (zh) 用于安全监管的电路和方法
EP3229221B1 (en) Device and method for testing a physically unclonable function
US9940486B2 (en) Detection of hardware tampering
EP3503466B1 (en) Countermeasures to frequency alteration attacks on ring oscillator based physical unclonable functions
EP3566166B1 (en) Management of security vulnerabilities
Li et al. A survey of hardware trojan detection, diagnosis and prevention
Dunlap et al. Using timing-based side channels for anomaly detection in industrial control systems
Dubrova et al. Keyed logic BIST for Trojan detection in SoC
Arias et al. Device attestation: Past, present, and future
Karimi et al. On the effect of aging in detecting hardware trojan horses with template analysis
US20210336979A1 (en) Partial Bayesian network with feedback
Guo et al. MPA: Model-assisted PCB attestation via board-level RO and temperature compensation
Jacob et al. Detection of malicious circuitry using transition probability based node reduction technique
Yamashita et al. Redshift: Manipulating signal propagation delay via continuous-wave lasers
König et al. Cascading Threats in Critical Infrastructures with Control Systems.
US11722512B2 (en) Framework to quantify security in DevOps deployments
Danger et al. Highly reliable PUFs for embedded systems, protected against tampering
Datta et al. Accountability in cyber-physical systems
WO2020109252A1 (en) Test system and method for data analytics
US20230044072A1 (en) Monitoring side channels

Legal Events

Date Code Title Description
A107 Divisional application of patent