KR20170100602A - 물리적 복제방지 기능으로부터 암호화 키 생성 - Google Patents

물리적 복제방지 기능으로부터 암호화 키 생성 Download PDF

Info

Publication number
KR20170100602A
KR20170100602A KR1020177020609A KR20177020609A KR20170100602A KR 20170100602 A KR20170100602 A KR 20170100602A KR 1020177020609 A KR1020177020609 A KR 1020177020609A KR 20177020609 A KR20177020609 A KR 20177020609A KR 20170100602 A KR20170100602 A KR 20170100602A
Authority
KR
South Korea
Prior art keywords
bits
bit string
noisy
bit
puf
Prior art date
Application number
KR1020177020609A
Other languages
English (en)
Other versions
KR102458727B1 (ko
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 KR20170100602A publication Critical patent/KR20170100602A/ko
Application granted granted Critical
Publication of KR102458727B1 publication Critical patent/KR102458727B1/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/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
    • 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/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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/34Encoding or coding, e.g. Huffman coding or error correction

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)
  • Storage Device Security (AREA)

Abstract

암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100). 암호화 디바이스는 물리적 복제방지 기능(PUF)(110), 디바이어싱 유닛(120) 및 키 재구성 유닛(150)을 가진다. PUF는 등록 페이즈 동안 제 1 노이지 비트 문자열(112) 및 재구성 페이즈 동안 제 2 노이지 비트 문자열(114)을 생성하도록 배열된다. 디바이어싱 유닛(120)은 등록 페이즈 동안 제 1 노이지 비트 문자열로부터 디바이어싱 데이터(142)를 결정하도록 배열된다. 디바이어싱 데이터는 제 1 노이지 비트 문자열의 비트들을 유지되는 것 또는 폐기되는 것으로서 마킹한다. 키 재구성 유닛(150)은 디바이어싱 데이터에 의해 유지되는 것으로 마킹된 제 2 노이지 비트 문자열의 비트들로부터 암호화 키를 결정하도록 배열되고, 암호화 키는 디바이어싱 데이터에 의해 폐기되는 것으로 마킹된 제 2 노이지 비트 문자열의 비트들과 무관하다.

Description

물리적 복제방지 기능으로부터 암호화 키 생성{CRYPTOGRAPHIC KEY PRODUCTION FROM A PHYSICAL UNCLONABLE FUNCTION}
본 발명은 전자 암호화 디바이스, 전자 암호화 방법, 및 비-일시적 유형적인 컴퓨터 판독가능 저장 매체에 관한 것이다.
물리적 복제방지 기능(PUF: physical unclonable function)은 디지털 식별자를 유도하기 위하여 제조 차이들을 이용한다. 따라서, 디지털 식별자는 물리적 매체와 연관(tie)된다. 물리적 복제방지 기능이 랜덤 프로세스 변동에 따르기 때문에, PUF를 생성하는 것은 쉽지만, 완전히 불가능하지는 않더라도 특정한 미리 결정된 식별자를 발생시키는 PUF를 생성하는 것은 매우 어렵다. 제조 차이들은 메모리 엘리먼트의 상이한 물리적 특징들을 유도한다. 예컨대, 물리적 특징들은: 도핑 농도들, 산화물 두께, 채널 길이들, (예컨대, 금속 층의) 구조적 폭, 기생성(parasitics)(예컨대, 저항, 캐패시턴스)을 포함할 수 있다. 디지털 회로 설계가 다수 번 제조될 때, 이들 물리적 특징들은 약간 변할 것이고 이들 물리적 특징들은 함께 IC 엘리먼트, 예컨대 메모리 엘리먼트의 작동이 일부 상황들에서 상이하게 작동하게 할 것이다. 예컨대, 스타트-업(start-up) 작동은 물리적 특징들의 제조 차이들에 의해 결정된다.
PUF들이 디바이스-내재의 예측불가능 응답들을 생성한다는 사실은 이들이 암호화 키들을 생성하기에 매우 적절한 후보가 되게 한다. 종래의 비-휘발성 키 저장소들과 대조적으로, PUF-기반 키는 디지털 포맷으로 저장되는 것이 아니라, PUF의 물리적 구조의 작은 랜덤 편차들로부터 발생한다. 게다가, 키 자체의 생성은 낮은 품질을 가질 수 있는 외부적으로 제공된 랜덤성(randomness)에 따르는 것이 아니라, 디바이스 자체의 높은-엔트로피 내재(high-entropy intrinsic) 랜덤성을 사용한다. 이들 팩터들의 조합은 암호화 키 저장을 위한 매우 안전한 솔루션들을 유도할 수 있다.
PUF를 사용하면, 키를 저장하기 위한 안전한 메모리에 대한 필요가 회피될 수 있다. 게다가, PUF는 리버스 엔지니어링(reverse engineering)을 통하여 암호화 키를 획득하기 위한 악의적인 시도(attempt)들에 대해 자연적인 보호를 제공하는데, 그 이유는 그 시도 동안 PUF에 가해질 수 있는 손상이 디지털 식별자를 변화시킬 공산이 있기 때문이다. 바람직하게, 디지털 식별자는 전자 디바이스에 대해 고유하고, 전자 디바이스에 물리적 복제방지 기능이 내장되어 있다.
예컨대, 일부 메모리 엘리먼트들의 스타트업 작동이 PUF형 작동을 나타내는 것이 관찰되었다. 그런 메모리가 파워-업(power-up)될 때, 그런 메모리는 메모리를 형성하는 컴포넌트들, 예컨대 게이트들 또는 트랜지스터들의 적어도 부분적 랜덤 물리적 특징들, 예컨대 서로에 대한 이들의 물리적 어레인지먼트(arrangement)에 따른 콘텐츠를 포함하는, 즉 데이터 값들의 시퀀스를 포함하는 경향이 있다. 메모리가 다수 번 파워-업되면, 메모리는 큰 비율로 동일한 콘텐츠를 포함할 것이다.
PUF는 예측불가능하고 디바이스-고유의 응답들을 제공하지만, 이들의 물리적 기원(origin)으로 인해, 이들은 측정 노이즈, 및 환경적 영향들에 영향을 받을 수 있다. 다른 한편 암호화 키들은 완전히 신뢰성 있고 최대 엔트로피를 가질 필요가 있다. 이런 갭을 줄이기 위하여, PUF 응답들에 대한 어느 정도의 사후-프로세싱이 요구된다. 노이즈를 다루기 위한 하나의 방식은 소위 퍼지 추출기들의 사용이다. 퍼지 추출기는 '노이지(noisy)' 랜덤 값을 신뢰성 있는 키로 변환할 수 있다. 에러 정정 절차는 이 프로세스에 사용되어 이들 변동들을 정정하고, PUF가 사용될 때마다 반드시 동일한 디지털 식별자가 유도되게 할 수 있다. 에러 정정 절차는 소위 헬퍼(helper) 데이터를 사용한다. 헬퍼 데이터는 또한 노이즈 감소 데이터로 지칭된다.
퍼지 추출기는 2개의 스테이지들을 포함할 수 있다. 초기 등록 스테이지에서, 암호화 키는 PUF 응답으로부터 유도된다. 등록 프로세스에서, PUF 응답에 대한 헬퍼 데이터 또는 노이즈 감소 데이터가 생성된다. 나중에 현장에서, 재구성 스테이지는 PUF 응답을 재평가하고 등록 스테이지로부터의 노이즈-감소 데이터를 사용하여 동일한 키를 재구성한다. 따라서, 노이즈-감소 데이터는 등록 스테이지와 재구성 스테이지 간에 저장될 필요가 있다.
이 점에 있어서 퍼지 추출기의 바람직한 특성은, 노이즈-감소 데이터가 유도되는 키에 관한 어떠한 정보도 포함하지 않는다는 것이다. 다른 말로, 노이즈-감소 데이터는 어떠한 민감한 정보도 포함하지 않으므로 생성된 키를 공격하기 위하여 사용될 수 없다. 결과로서, 노이즈-감소 데이터는 공개적으로 저장 및 통신될 수 있고 키의 직접적인 저장이 필요할 때 적들로부터 보호할 필요가 없다.
퍼지 추출기의 동작은 에러 정정 코드의 사용에 기반될 수 있다. 통상적으로, 에러 정정 코드는 블록 코드이고 그리고 선형, 예컨대 선형 에러 정정 블록 코드이다. 등록 동안, 퍼지 추출기는 예컨대 PUF 응답 비트들에 대한 다수의 페리티 관계(parity relation)들을 계산하고 노이즈-감소 데이터에 이들 관계들을 개시함으로써 PUF 응답에 대한 노이즈-감소 데이터를 계산한다. 노이즈 감소 데이터는 예컨대, 하나 또는 그 초과의 코드 워드들과 PUF 응답 간의 차이를 계산함으로써 컴퓨팅(comput)될 수 있다.
이런 개시내용으로 인해, (PUF의 엔트로피에 의해 측정된) PUF 응답의 예측 불가능성은 상당히 감소될 수 있다.
본 발명자들은, PUF가 높은 바이어스(bias)를 가지면, 노이즈-감소 데이터를 통한 키에 관한 정보 누설이 제로가 아니라는 것을 발견하였다. 실제로, PUF가 매우 높은 바이어스를 가지면, 노이즈-감소 데이터는 심지어 키에 관한 충분한 정보를 드러낼 수 있어서, 공격자에 의한 키의 완전한 재구성을 허용할 수 있다.
말하자면, 난수 생성과 같은 그런 다른 필드들로부터 취해지는 종래의 디바이어싱(debiasing) 방법들은 PUF 및 키 생성에 적용될 수 없다. PUF 응답은 적어도 2번 획득된다. 매번 동일한 암호화 키가 생성되어야 한다. 그러나, PUF 출력은 종종 완전히 확정적이지 않다. 심지어 비교적 작은 양의 노이즈도 그런 디바이어싱 절차로 하여금 디바이어싱된 출력으로서 사용하기 위하여 상이한 비트들을 선택하게 한다. 그런 시스템은 키 생성에 전혀 사용할 수 없을 것이다. 예컨대, 랜덤 비트 생성기에 의해 생성된 모든 각각의 동일하지 않은 비트 쌍에 대한 하나의 바이어싱되지 않은 출력 비트를 생성하는 고전적인 폰 노이만(von Neumann) 디바이어싱은 PUF에 직접 적용될 수 없다. 등록 동안 및 재구성 동안 PUF에 고전적인 폰 노이만 디바이어싱을 적용하는 것은 상이한 비트들을 선택할 것이고; 이로부터 재생가능한 키를 생성하는 것은 가능하지 않을 것이다.
등록 페이즈(phase) 및 추후 사용 페이즈 동안 배열되는 전자 암호화 디바이스는 청구항들에서 정의된 바와 같이 제공된다. 실시예에서, 전자 암호화 디바이스는 암호화 키를 결정하도록 배열된다. 암호화 디바이스는 등록 페이즈 및 추후 재구성 페이즈를 위해 배열된다. 암호화 디바이스는 물리적 복제방지 기능, 디바이싱 유닛, 및 키 재구성 유닛을 포함한다.
물리적 복제방지 기능은 등록 페이즈 동안 제 1 노이지 비트 문자열 및 재구성 페이즈 동안 제 2 노이지 비트 문자열을 생성하도록 배열된다.
제 1 노이지 비트 문자열에서 바이어스를 감소시키기 위한 디바이어싱 유닛이 제공되고 ― 디바이어싱 유닛은 등록 페이즈 동안 제 1 노이지 비트 문자열로부터 디바이어싱 데이터를 결정하도록 배열됨 ― 디바이어싱 데이터는 제 1 노이지 비트 문자열의 비트들을 유지되는 것 또는 폐기되는 것으로 마킹한다.
키 재구성 유닛은 디바이어싱 데이터에 의해 유지되는 것으로 마킹된 제 2 노이지 비트 문자열의 비트들로부터 암호화 키를 결정하도록 배열되고, 암호화 키는 디바이어싱 데이터에 의해 폐기되는 것으로 마킹된 제 2 노이지 비트 문자열의 비트들과 무관하다.
등록 페이즈에서, 예컨대, 디바이어싱 유닛(120)은 어느 비트들이 PUF 응답으로부터 유지되는지 또는 폐기되는지를 선택한다. 이 정보는 디바이어싱 데이터에 레코딩된다. PUF가 다시 질의될 때, 동일한 비트들은 디바이어싱 데이터를 사용하여 선택된다. 따라서, 노이즈가 제 2 PUF 응답에 존재하더라도, 제 1 PUF 응답 동안 선택된 것과 동일한 비트들이 선택된다. 노이즈가 제 2 응답으로부터 선택된 비트들에 여전히 존재할 공산이 있다는 것을 주목하라.
이런 애플리케이션에서, 바이어스는, 1 또는 0 비트들 중 하나가 1 또는 0 비트들 중 다른 하나보다 더 공산이 많은 상황을 지칭한다. 예컨대, PUF의 바이어스는 1 비트를 생성하는 확률과 0 비트를 생성하는 확률 간의 절대 차이로서 정의될 수 있다. 바이어스는 또한 1 비트의 확률 및 0 비트의 확률의 최대치로서 정의될 수 있다. 바이어스는 다수의 디바이스들을 비교함으로써 특정 비트 위치에 대해 결정될 수 있다. 통상적으로 바이어스는 비트 위치들의 더 큰 부분들에 대해 균일하다. 일부 PUF들에 대해, 특히 메모리 기반 PUF에 대해, 메모리에 걸쳐 바이어스의 일부 차이가 있을 수 있다. 예컨대, 바이어스 메모리에 걸쳐 가변할 수 있지만, 더 큰 존들에 대해서는 일정하고; 예컨대 메모리의 제 1 절반 및 제 2 절반은 각각 일정한 바이어스들을 가질 수 있지만 서로 상이할 수 있다. 바이어스는 또한 로컬적으로 변할 수 있고, 예컨대, 일부 메모리들은 짝수 및 홀수 비트 위치들에 대해 바이어스 차이를 보인다.
낮은 바이어스를 가지는 PUF는 적어도 평균하여 비트 문자열을 생성하고, 여기서 1 비트들의 분율과 0 비트들의 분율 간의 절대적인 차이는 작다. 분율은 각각 1 또는 0 비트들의 수를 문자열의 길이에 의해 나눈 것으로서 취해질 수 있다.
암호화 키는 암호화 키를 사용하여 정보를 인크립팅(encrypting)하거나 디크립팅(decrypting)하는 것, 암호화 키를 사용하여 정보를 전자 서명하는 것을 포함하여, 다수의 암호화 프로토콜들에 사용될 수 있다. PUF로부터 유도된 암호화 키들은 대칭 키이거나 비대칭 키일 수 있다. 청구항들에서 설명되는 디바이스 및 방법의 실시예들은 다양한 실제 애플리케이션들에 적용될 수 있다. 그런 애플리케이션들은 직불 카드, 심(sim) 카드들, 페이 퍼 뷰(pay per view)를 위한 스마트 카드들, ID 카드들 등을 포함한다.
본 발명에 따른 방법은 컴퓨터 구현 방법으로서 컴퓨터상에서, 또는 전용 하드웨어로, 또는 둘 모두의 조합으로 구현될 수 있다. 본 발명에 따른 방법에 대한 실행 코드는 컴퓨터 프로그램 제품상에 저장될 수 있다. 컴퓨터 프로그램 제품들의 예들은 메모리 디바이스들, 광학 저장 디바이스들, 집적 회로들, 서버들, 온라인 소프트웨어 등을 포함한다. 바람직하게, 컴퓨터 프로그램 제품은, 상기 프로그램 제품이 컴퓨터상에서 실행될 때, 본 발명에 따른 방법을 수행하기 위한 컴퓨터 판독가능 매체상에 저장된 비-일시적 프로그램 코드 수단을 포함한다.
바람직한 실시예에서, 컴퓨터 프로그램은, 컴퓨터 프로그램이 컴퓨터상에서 실행될 때, 본 발명에 따른 방법의 모든 단계(step)들을 수행하도록 적응된 컴퓨터 프로그램 코드 수단을 포함한다. 바람직하게, 컴퓨터 프로그램은 컴퓨터 판독가능 매체 상에 구현된다.
본 발명의 다른 양상은 컴퓨터 프로그램이 다운로딩을 위해 이용가능하게 하는 방법을 제공한다. 이런 양상은, 컴퓨터 프로그램이 예컨대 애플의 앱 스토어(Apple's App Store), 구글의 플레이 스토어(Google's Play Store), 또는 마이크로소프트의 윈도우 스토어(Microsoft's Windows Store)에 업로딩될 때, 및 컴퓨터 프로그램이 그런 스토어로부터 다운로딩을 위해 이용가능할 때 사용된다.
본 발명의 추가 세부사항들, 양상들 및 실시예들은 단지 예로써 도면들을 참조하여 설명될 것이다. 도면들의 엘리먼트들은 간략성 및 명확성을 위해 예시되고 필수적으로 실척으로 도시되지 않았다. 도면들에서, 이미 설명된 엘리먼트들에 대응하는 엘리먼트들은 동일한 참조 번호들을 가질 수 있다.
도 1a는 마이너(miner) 바이어스를 통한 엔트로피의 손실을 개략적으로 예시한다.
도 1b는 메이저(major) 바이어스를 통한 엔트로피의 손실을 개략적으로 예시한다.
도 2는 전자 암호화 디바이스의 실시예의 예를 개략적으로 도시한다.
도 3은 전자 암호화 디바이스의 실시예의 예를 개략적으로 도시한다.
도 4a는 전자 암호화 디바이스의 실시예의 예에서 등록 페이즈를 개략적으로 예시한다.
도 4b는 전자 암호화 디바이스의 실시예의 예에서 재구성 페이즈를 개략적으로 예시한다.
도 5a는 전자 암호화 디바이스의 실시예의 예에서 등록 페이즈를 개략적으로 예시한다.
도 5b는 전자 암호화 디바이스의 실시예의 예에서 재구성 페이즈를 개략적으로 예시한다.
도 6a는 전자 암호화 디바이스의 실시예의 예에서 등록 페이즈를 개략적으로 예시한다.
도 6b는 전자 암호화 디바이스의 실시예의 예에서 재구성 페이즈를 개략적으로 예시한다.
도 6c는 제 2 에러 정정 코드의 실시예를 개략적으로 예시한다.
도 6d는 연판정(soft decision) 디코딩의 실시예들을 개략적으로 예시한다.
도 7은 암호화 키를 결정하도록 배열된 전자 암호화 방법의 실시예를 개략적으로 예시한다.
도 8a는 실시예에 따른 컴퓨터 프로그램을 포함하는 기입가능 부분을 가지는 컴퓨터 판독가능 매체를 도시한다.
도 8b는 실시예에 따른 프로세서 시스템의 개략적인 표현을 도시한다.
도 9a는 전자 암호화 디바이스의 실시예의 예를 개략적으로 도시한다.
도 9b는 전자 암호화 디바이스의 실시예의 예에서 통계적 테스트를 개략적으로 예시한다.
도 10은 통계적 테스트의 실시예를 흐름도로 개략적으로 예시한다.
도 11은 통계적 테스트의 예에 대한 오류 레이트(failure rate) 그래프이다.
본 발명이 많은 상이한 형태들의 실시예를 허용하지만, 본 개시내용이 본 발명의 원리들의 예시로서 고려되고 본 발명을 도시되고 설명된 특정 실시예들로 제한하도록 의도되지 않을 것이라는 이해와 함께, 하나 또는 그 초과의 특정 실시예들이 상세히 도면들에 도시되고 본원에서 설명될 것이다.
다음에서, 이해를 위하여, 실시예들의 엘리먼트들은 동작 시 설명된다. 그러나, 개별 엘리먼트들이 이들에 의해 수행되는 것으로 설명되는 기능들을 수행하도록 배열된다는 것이 자명할 것이다.
도 1a 및 1b는 바이어스를 통한 엔트로피의 손실을 개략적으로 예시한다. 등록 동안 "엔트로피의 흐름"은 도 1a 및 1b에 개념적으로 도시된다. 도 1a 및 1b의 박스들의 상대적 사이즈들이 필수적으로 PUF 응답, 노이즈 감소 데이터, 및 키의 상대적인 사이즈들을 예시하지 않는 것을 주목하라.
PUF(10)는 특정 양의 엔트로피를 가지는 응답(11)을 생성한다. 등록 절차는 PUF 응답에 포함된 엔트로피의 비교적 큰 부분을 개시하는 노이즈-감소 데이터(12)를 생성한다. 노이즈-감소 데이터 개시 후 나머지 엔트로피는 암호화적으로 안전한 시크릿(secret) 키를 생성하기 위해 사용된다. 완전히 랜덤한 키를 획득하기 위하여, 키의 길이(비트 단위)는 결코 노이즈-감소 데이터 개시로 감소된 PUF 응답 엔트로피보다 크지 않을 수 있다.
실제로, 퍼지 추출기는 특정 노이즈 레벨 및 특정 양의 엔트로피를 가지는 응답들을 생성하는 특정 타입의 PUF들로 작동하도록 설계될 수 있다. 근본적인 에러-정정 코드들의 파라미터들은 최대 예상된 수의 비트 에러들을 처리할 수 있도록 선택된다. 이들 파라미터들로부터, 하나의 응답에 대한 결과적인 노이즈-감소 데이터 개시내용은 계산될 수 있고, 따라서 또한 나머지 키 엔트로피가 계산될 수 있다. 마지막으로, 키 엔트로피의 충분한 총 양이 전체-엔트로피 키를 추출하기 위하여 남겨질 때까지 PUF의 사이즈(응답에서 비트들의 #)가 증가된다.
PUF 응답 엔트로피는 PUF 응답의 바이어스의 존재에 의해 감소되는데, 즉 2진 응답의 경우에, 0들은 시스템적으로 1들보다 더 우세하다(또는 그 반대임). 바이어스로 인한 엔트로피 손실은 도 1a 및 1b에서 참조 번호 15로 예시된다.
주어진 양의 응답 엔트로피를 위해 설계된 엔트로피 흐름을 가지는 퍼지 추출기를 가정하자. 도 1a는 마이너 바이어스의 경우를 개략적으로 예시한다. PUF 응답(11)의 음영진 부분(15)은 바이어스로 인한 도 1a의 본래 상황에 대해 엔트로피의 감소이다. 응답 엔트로피가 감소되기 때문에, 이것은 또한 노이즈-감소 데이터 개시내용 및 키 데이터(13)의 나머지 엔트로피에 영향을 미칠 것이고; 궁극적인 암호화 키는 키 데이터(13)로부터 유도될 것이다. 처음에는 엔트로피가 적기 때문에, 나머지 키 엔트로피는 감소될 것이고, 그리고 노이즈-감소 데이터의 개시 후 더 적은 엔트로피가 남겨질 것이다. 이것은, 키 데이터(13)가 바이어스의 부재시 예상된 것보다 덜 랜덤하다는 것을 의미하기 때문에, 문제일 수 있다. PUF 응답들의 바이어스에 의해 유발되는 키 엔트로피의 이런 감소는 키 누설이라 지칭된다.
예컨대 메이저 바이어스로 인해, PUF 응답 엔트로피가 상당히 감소되는 상황에서, 키 누설은 극적이게 될 수 있다. 이것은 도 1b에 도시된다. 그 경우에, 응답 엔트로피는 매우 작아져서, 노이즈-감소 데이터의 개시 후 아무것도 남겨지지 않는다. 따라서, 키를 추출하기 위하여 남겨지는 시크릿 자료가 없다. 실제로, 이것은, 노이즈-감소 데이터가 키에 사용되는 엔트로피를 포함하여 모든 응답 엔트로피를 개시하는 것을 의미한다. 다른 말로, 키는 노이즈-감소 데이터로부터 유도될 수 있다. 따라서, 퍼지 추출기는 전혀 안전하지 않게 된다.
디바이어싱 데이터를 사용하지 않는, 키 누설 문제에 대한 가능한 대안적인 솔루션은, 퍼지 추출기를 PUF 응답 엔트로피가 감소되는 최악의 경우의 시나리오를 위해 설계하는 것이다. 다른 말로, 퍼지 추출기는, 가능하게는 감소된 엔트로피에 대처하기 위하여 엔트로피 마진이 존재하도록 설계된다. 그러나, 이 솔루션에 다수의 문제들이 있다:
1. 엔트로피 마진은 PUF 응답 엔트로피의 작은 감소들(예컨대, 몇 퍼센트 정도의 마이너 바이어스)에만 대처할 수 있다. 마진은, PUF 응답 엔트로피가 감소할 때, 매우 빠르게 고갈된다.
2. 심지어 약간 감소된 엔트로피를 가진 PUF들을 고려할 때, 퍼지 추출기의 설계는 빠르게 매우 비효율적이게 된다. PUF 응답에 존재하는 거의 모든 엔트로피가 노이즈-감소 데이터에 의해 개시되기 때문에, PUF의 사이즈(응답 비트들의 #)는 일부 엔트로피가 안전한 키를 유도하기 위하여 남겨지도록 매우 크게 될 필요가 있다.
3. 종래의 방법들을 사용하면, PUF 응답 엔트로피가 크게 감소되는 경우(예컨대, 메이저 바이어스로 인해), 임의의 키 엔트로피가 전혀 남아있지 않은 퍼지 추출기를 설계하는 것은 불가능하게 될 수 있다. 심지어 PUF의 사이즈를 증가시키는 것은 그 경우에 도움이 되지 않을 수 있는데, 그 이유는 응답 비트당 유효 엔트로피 기여가 제로이기 때문이다.
키 누설 문제에 대한 다른 접근법은 매우 높거나 심지어 최고 엔트로피를 가진 응답들을 생성하는 PUF들만을 고려하는 것이다. 이런 접근법은 데이터를 디바이어싱하는 것을 요구하지 않는다. 이것은 실제로, 퍼지 추출기 설계로부터 PUF 구성으로 키 누설 문제가 시프트되기 때문에, 솔루션이 아니다. 이상적인 PUF 설계들보다 덜 이상적인 PUF 설계들을 계속 사용하려는 욕구가 존재한다. 게다가, 이 옵션에 다수의 문제들이 있다:
1. 바이어싱되지 않은 PUF 응답들을 위해 설계된 퍼지 추출기는 항상 동시에 발생할 수 있는 최소의 바이어스도 대처하기 위해 마진이 매우 작거나 아예 없다.
2. 이들 구성으로 인해, 특정 타입들의 PUF들은 본래 바이어싱되거나 감소된 엔트로피 응답들을 가진다. 따라서, 이런 솔루션은 이들 타입들의 PUF들에 적용가능하지 않다.
3. 통상적으로 높은-엔트로피 응답들을 가지는 PUF 타입들조차도 단지 완벽하게 바이어싱되지 않은 응답들을 거의 가지지 않을 것이다. PUF 타입의 바이어스를 추정할 때 항상 특정 레벨의 불확실성이 있다. 게다가, 필드에서 몇천 또는 몇백만의 PUF 인스턴스들을 가지는 실제 애플리케이션에 대해, 바이어스가 평균 "바이어싱되지 않은" 경우로부터 상당히 벗어날 수 있는 특이한 인스턴스들이 또한 고려되어야 한다.
4. PUF 응답의 바이어스는 또한 PUF 구성 외부의 조건들, 예컨대 온도에 의해 영향을 받을 수 있다. 퍼지 추출기가 모든 환경들하에서 안전하게 동작하기를 원하면, PUF 응답이 (약간) 바이어싱될 수 있다는 것을 고려할 필요가 있다.
아래에서 설명된 실시예들은 바이어싱된 PUF 응답들의 경우에서의 키 누설 문제를 감소시킨다. 본 발명자들은, 초기 등록 단계 이전 및/또는 초기 등록 단계와 통합된 디바이어싱 동작을 도입하는 것이 PUF 응답의 바이어스를 감소시키는 것을 발견하였다. 차례로, 이것은 노이즈-감소 데이터 같은 부가 정보의 키 누설을 개선한다.
도 2는 전자 암호화 디바이스(100)의 실시예의 예를 개략적으로 도시한다.
디바이스(100)는 보통 PUF로 지칭되는 소위 물리적 복제방지 기능(110)을 포함한다. 디바이스(100)는 암호화 키를 결정하도록 배열된다. 암호화 디바이스는 등록 페이즈 및 추후 재구성 페이즈를 위해 배열된다. PUF(110)는 등록 페이즈 동안 제 1 노이지 비트 문자열(112) 및 재구성 페이즈 동안 제 2 노이지 비트 문자열(114)을 생성하도록 배열된다. 다수 번 반복될 수 있는 재구성 페이즈 동안, 동일한 암호화 키가 생성된다. 등록 페이즈 동안, 암호화 키의 반복된 동일한 생성 및/또는 PUF의 바이어스 감소를 가능하게 하는 데이터가 생성될 수 있다.
PUF(110)가 특히 신뢰성이 있고 및/또는 애플리케이션의 신뢰성이 덜 중요하면, 노이즈-감소 데이터는 생략될 수 있다. 후자의 경우에서, 키의 감소된 엔트로피를 회피시키기 위하여, 디바이어싱은 여전히 가치가 있을 수 있다. 이 경우에, 디바이어싱된 PUF 응답은 예컨대 유지되는 비트들을 연접시키고, 키 유도 기능을 적용하는 등에 의해 키를 유도하기 위하여 사용될 수 있다.
후속하여 생성되는 노이지 비트 문자열들 간의 변화 양은 상이한 타입들의 PUF 간에서 상이하고; 변화량에 따라, 에러 정정 코드는 이런 에러 양을 정정하도록 선택될 수 있다. 노이지 비트 문자열은 암호화 키를 생성하기에 충분히 안정되고 충분히 길다. PUF의 노이지 비트 문자열의 길이는 원하는 키 길이, PUF의 에러 퍼센티지 및/또는 PUF의 바이어스 레벨, 등에 관하여 선정될 수 있다.
PUF(110)는 전력-사이클, 예컨대 노이지 비트 문자열을 다시 생성하기 위하여 전력-다운 다음 전력-업을 요구할 수 있다. 전력-업 신호는 챌린지(challenge)로서 간주될 수 있다. 디바이스(100)에서, PUF(110)는 적어도 2번 노이지 비트 문자열을 생성한다. 일단 등록 페이즈 동안, PUF(110)는 제 1 노이지 비트 문자열을 생성한다. 이후 사용 페이즈 동안, PUF(110)는 제 2 노이지 비트 문자열을 생성한다. 제 1 및 제 2 노이지 비트 문자열들은 서로 충분히 밀접하고, 예컨대 이들의 차이의 해밍 가중치(hamming weight)는 임계치 미만이다.
PUF들은 물리적 디바이스를 사용하여 함수의 출력을 실제로 평가함이 없이 함수의 출력을 예측하는 것이 컴퓨팅적으로 실행불가능한 방식으로 물리적 디바이스에 결속되는 랜덤 함수들이다. 게다가, PUF가 물리적 시스템에 의해 실현되기 때문에, PUF는 복제하기 어렵다. 완전히 제어되지는 않는(즉, 일부 랜덤성을 포함함) 생산 프로세스에 의해 생산되는 물리적 시스템들은 PUF들에 대한 우수한 후보들인 것으로 나타났다. 실시예에서, PUF(110) 및 따라서 암호화 디바이스(100)는 PUF(110)에 의해 제공되는 응답, 및 응답으로부터 유도된 키에 기반하여 고유하게 식별될 수 있다. 키는 식별자로서 사용되어, 디바이스를 식별할 수 있다.
PUF의 물리적 시스템은 자극들(stimuli)과 복잡한 방식으로 상호작용하고 고유하지만 예측불가능한 응답들을 유도하도록 설계된다. PUF의 자극들은 챌린지로서 지칭된다. 일부 PUF는 더 큰 범위의 상이한 챌린지들을 허용하여, 상이한 응답들을 생성한다. PUF 챌린지 및 대응하는 응답은 함께 챌린지-응답-쌍이라 지칭된다. 그러나, PUF는 또한 단일 챌린지를 가질 수 있다. PUF(110)는 단일-챌린지 PUF일 수 있다. PUF(110)는 또한 다중-챌린지 PUF일 수 있다. 후자의 경우에, PUF(110)는, 노이지 비트 문자열, 특히 제 1 및 제 2 노이지 비트 문자열을 생성할 때 동일한 챌린지 또는 챌린지들의 세트로 챌린지된다.
PUF들의 적절한 소스는 파워-업 시 메모리의 식별에 유용한 파워-업 값들의 응답 패턴을 포함하는 전자 휘발성 메모리에 의해 형성되고, 응답 패턴은 메모리 엘리먼트들의 물리적 특징들에 따른다.
디바이스를 고유하게 식별하기 위하여 사용된 PUF의 하나의 알려진 예는 소위 SRAM PUF이고, SRAM PUF는, SRAM 셀이 스타트-업될 때, 도핑 변동들로 인한 트랜지스터들의 임계 전압들의 차이들로 인해, 랜덤 상태로 스타트 업한다는 사실에 기반한다. 이것이 다수 번 행해질 때, 각각의 셀은 대부분 동일한 상태로 스타트 업할 것이다. 이들 PUF들은 기판상에 SRAM 메모리를 가지는 임의의 디바이스 상에서 구현될 수 있다.
메모리를 식별하기에 충분히 안정적인 랜덤 스타트-업 작동을 도시하는 임의의 메모리는 챌린지가능 메모리라 지칭된다. 스타트-업 작동이 랜덤이기 때문에, 2개의 상이한 메모리들은 그들의 스타트-업 메모리 패턴에서 큰 차이를 가질 것이고; 스타트-업 작동이 안정적이기 때문에, 동일한 메모리의 2개의 스타트-업 메모리 패턴들은 작은 차이를 가질 것이다. 그런 메모리들의 예들은 언급된 바와 같은 SRAM 메모리 셀들이지만 또한 플립-플롭(flip-flop)들 같은 메모리 엘리먼트들이다. 실제로, 피드백 루프들을 포함하는 임의의 타입의 휘발성 메모리가 사용될 수 있다.
제 2 종류의 SRAM 기반 PUF들은 이중 포트 램(RAM)으로 구성될 수 있다. 동시에 상이한 정보를 둘 모두의 포트들에 기입함으로써, 메모리 셀은 정의되지 않은 상태로 되고 PUF-형 작동을 보인다. 이런 종류의 PUF는 WO2009024913호에 더 상세히 설명된다. 다른 소위 내재 PUF들은 지연 현상들에 기반하고, 예컨대 US20030204743호를 참조하자. PUF는 예컨대 크로스-커플링된 인버터들 또는 래치들에 의해 FPGA 상에 SRAM 메모리 셀을 시뮬레이팅함으로써 구성될 수 있고, 이는 소위 버터플라이(butterfly) PUF이고, 유럽 특허 EP2191410 B1호 및 WO2011018414 A2호를 참조하자. PUF(110)는 예컨대 WO2012069545호에 설명된 바와 같이, 복수의 버스-키퍼(bus-keeper)들을 포함하는 물리적 복제방지 기능일 수 있다.
디바이스(100)는 디바이어싱 유닛(120)을 포함한다. 디바이어싱 유닛(120)은 PUF(110)의 출력에서, 특히 제 1 노이지 비트 문자열(112)에서 바이어스를 감소시키도록 배열된다. 디바이어싱 유닛(120)은 등록 페이즈 동안 제 1 노이지 비트 문자열(112)로부터 디바이어싱 데이터(142)를 결정하도록 배열된다. 디바이어싱 데이터는 제 1 노이지 비트 문자열의 비트들을 유지되는 것 또는 폐기되는 것으로서 마킹한다.
디바이어싱 데이터는, 디바이어싱 이후 PUF(110)의 출력들이 PUF(110)의 중간 응답들보다 더 적은 바이어스를 가지도록 선택된다. 실시예에서, 디바이어싱 유닛(120)은, 유지되는 것으로 디바이어싱 정보에 의해 마킹되는 제 1 비트 문자열의 비트들 중 1 비트들의 분율과 0 비트들의 분율 간의 절대 차이가 제 1 노이지 비트 문자열 간보다 더 작도록 배열된다. 실시예에서, 디바이어싱 유닛(120)은, 유지되는 것으로 디바이어싱 정보에 의해 마킹되는 제 1 비트 문자열의 비트들 중 1 비트들의 분율과 0 비트들의 분율 간의 절대 차이가 제로이도록 배열될 수 있다.
더 간단한 실시예에서, 디바이어싱 유닛은 PUF 응답들의 비트 길이 미만인 미리 결정된 수 k를 가지게 배열될 수 있다. 그 수는, 바이어스를 고려하여, PUF(110)가 적어도 k 개의 0 비트들 및 적어도 k개의 1 비트들을 가질 높은 확률을 가지도록 선정된다. 실제로, 임의의 실제 바이어스에 대하여, PUF 응답들의 비트 길이가 충분히 높게 취해질 수 있다고 가정하면, 이 확률은 임의적으로 높을 수 있다.
디바이어싱 유닛은 유지되는 것으로서 제 1 PUF 응답(112)의 비트들 중에서 k개의 0 비트들 및 k 개의 1 비트들을 랜덤하게 선택하도록 배열될 수 있고, 모든 다른 것들을 폐기한다. 디바이어싱 데이터(142)는, 등록 페이즈 동안 어느 비트들이 유지되는 것으로 마킹되고 어느 비트들이 폐기되는 것으로 마킹되었는지를 표시한다. 이 정보는 다수의 방식들로 레코딩될 수 있다. 예컨대, 디바이어싱 데이터(142)는 유지되는 비트들을 표시하기 위하여 비트 마스크(mask)를 포함할 수 있다. 유지되는 비트들은 이후에, 말하자면, 비트 'and' 연산으로 선택될 수 있다. 예컨대, 디바이어싱 데이터(142)는 선택된 비트들을 나타내는 인덱스들의 리스트를 포함할 수 있다.
k개의 0 비트들 및 k개의 1 비트들을 랜덤하게 선택하는 이런 방법은 바이어스를 감소시키거나 심지어 제거하도록 작동하지만, 여전히 약간의 단점들을 갖는다. 가장 먼저, 정확하게 k개의 0 및 1이 선택되기 때문에, 공격자는, 정확하게 k개의 0 및 1이 있다는 것을 알기 때문에, 예측 불가능성(즉, 엔트로피)은 사실상 약간 감소된다(정말로 랜덤 문자열에 반드시 동일한 수의 0 및 1 비트들이 있지는 않을 것임). 게다가, 0들 및 1들을 랜덤하게 선택하기 위한 확률론적 방법이 사용될 수 있다. 그러나, 독립적인 랜덤성 소스는 이용가능하지 않을 수 있다. 아래 실시예들 중 일부는 독립적인 랜덤성 소스들을 요구하는 것이 아니라 이를 위해 비트 문자열들의 내재 랜덤성을 사용한다.
마지막으로, 바이어스가 균일하지 않으면, 비균일성의 일부는 "디바이어싱된" 비트 문자열에 잔존할 수 있다. 예컨대, PUF에 바이어스가 있다면, 말하자면, PUF 응답의 제 1 부분이 PUF 응답의 제 2 부분과 상이한 바이어스를 가지면(예컨대, 응답들 중 절반이 0으로 바이어싱되고, 나머지 절반이 1로 바이어싱됨), 이 방법은 위치-종속 바이어스를 제거할 수 없고, 즉 "디바이어싱된" 비트 문자열은 여전히 동일한 위치-기반 바이어스를 가질 것이다. 아래에 도시된 실시예들은, 이들이 로컬적으로 디바이어싱하기 때문에, 이런 약점을 갖지 않는다.
디바이스(100)는 키 재구성 유닛(150)을 포함한다. 키 재구성 유닛(150)은 디바이어싱 데이터에 의해 유지되는 것으로 마킹된 제 2 노이지 비트 문자열의 비트들로부터 암호화 키를 결정하도록 배열된다. 암호화 키는 디바이어싱 데이터에 의해 폐기되는 것으로 마킹된 제 2 노이지 비트 문자열의 비트들과 무관하다. 예컨대, 키 재구성 유닛(150)은 디바이어싱 데이터(142)에 의해 유지되는 것으로 마킹된 비트들을 제 2 PUF 응답(114)으로부터 선택하도록 배열되고, 폐기되는 것으로 마킹된 비트들은 무시된다.
키 재구성 유닛(150)이 본래의 선택과 상당히 상이할 수 있는 새로운 선택을 유발할 수 있는 새로운 바이어싱 동작을 수행하지 않는 것이 주목된다. 결과로서, 등록 및 재구성 동안, 또는 상이한 재구성 페이즈들 중에 동일한 키를 유도하는 것이 가능하지 않을 것이다. 대신, 재구성 유닛(150)은 페이즈 단계 동안 획득된 디바이어싱 데이터를 적용한다. 예컨대, 디바이어싱 데이터는 예컨대 디바이스(100)에 로컬적으로, 또는, 말하자면, 전자 데이터 연결을 통하여, 말하자면, 디바이스(100)에 연결가능할 수 있는 서버에 외부적으로 저장될 수 있다.
암호화 디바이스(100)는 노이즈-감소로 확장될 수 있다. 예컨대, 노이즈 감소를 위한 임의의 종래의 퍼지 추출기는 유지되는 비트들에 적용될 수 있다.
예컨대, 암호화 디바이스(100)는 등록 페이즈 동안 유지되는 것으로 디바이어싱 데이터에 의해 마킹된 제 1 노이지 비트 문자열의 비트들에 대해 노이즈-감소 데이터를 결정하도록 배열된 노이즈-감소 유닛, 및 상기 노이즈-감소 데이터에 따라 재구성 페이즈 동안 디바이어싱 데이터에 의해 유지되는 것으로 마킹된 제 2 노이지 비트 문자열의 비트들의 노이즈를 감소시키도록 배열된 에러 정정기를 포함할 수 있다.
도 3은 전자 암호화 디바이스(101)의 실시예의 예를 개략적으로 도시한다. 전자 암호화 디바이스(101)는 디바이스(100)의 개량형이고 노이즈 감소를 포함한다.
전자 암호화 디바이스(100)와 같이, 디바이스(101)는 제 1 노이지 비트 문자열(112), 제 2 노이지 비트 문자열(114)을 생성하는 PUF(110), 디바이어싱 데이터(142)를 생성하는 디바이어싱 유닛(120), 및 키 재구성 유닛(150)을 포함한다.
디바이스(101)는 노이즈-감소 유닛(130)을 포함한다. 노이즈-감소 유닛(130)은 제 1 에러 정정 코드로부터 하나 또는 그 초과의 제 1 코드 워드들을 획득하고 하나 또는 그 초과의 코드 워드들로부터 유지되는 것으로 디바이어싱 데이터에 의해 마킹된 제 1 노이지 비트 문자열의 비트들에 대한 노이즈-감소 데이터(144)를 결정하도록 배열된다. 노이즈 감소 데이터는 등록 페이즈 동안 결정된다.
디바이스(101)는 예컨대 키 재구성 유닛(150)의 일부로서 정규화기(152)를 포함한다. 정규화기(152)는 재구성 페이즈 동안 디바이어싱 데이터에 의해 유지되는 것으로 마킹된 제 2 노이지 비트 문자열의 비트들에 노이즈-감소 데이터를 적용하도록 배열되어, 노이즈와 함께 하나 또는 그 초과의 제 1 코드 워드들을 결정한다.
디바이스(101)는 상기 하나 또는 그 초과의 노이지 제 1 코드 워드들을 정정하도록 배열된 에러 정정기(154)를 포함하여, 하나 또는 그 초과의 정정된 코드 워드들을 획득한다. 에러 정정기(154)는 여러 라운드(round)의 정정을 위하여 배열될 수 있다.
디바이스(101)는 키 유도 유닛(156)을 포함할 수 있다. 키 유도 유닛은 에러 정정기(154)의 출력으로부터 암호화 키를 유도한다. 예컨대, 키 유도 유닛(156)은 키 유도 함수를 하나 또는 그 초과의 정정된 코드 워드들에 적용할 수 있다. 대안적으로, 키 유도 유닛(156)은 키 유도 함수(KDF)를 하나 또는 그 초과의 정정된 코드 워드들의 디코딩, 또는 정정되어 유지되는 PUF 응답 비트들에 적용할 수 있다. 그런 키 유도 함수들의 예들은 IEEE Std 1363-2000, NIST-SP800-108 및 56-C에서 정의된 KDF1, 및 ANSI X9.42의 유사한 함수들 등을 포함한다. 키 유도 함수는 해시 함수일 수 있다.
선택적으로, 디바이스(101)는 디바이어싱 데이터(142) 및 노이즈-감소 데이터(144)를 저장하기 위한 저장소(140), 말하자면, 비-휘발성 메모리, 말하자면, 플래시 메모리를 포함한다. 디바이스(101)에 포함된 저장소(140) 대신, 실시예는 디바이어싱 데이터(142) 및 노이즈-감소 데이터(144)를 외부에 저장한다. 디바이어싱 데이터(142) 및 노이즈-감소 데이터(144)는 단일 비트 문자열로 조합될 수 있다.
노이즈 감소 데이터를 결정하기 위한 하나의 방식은 에러-정정 코드들에 기반한 소위 코드-오프셋(Code-Offset) 방법이다. 정규화기 및 에러 정정기의 조합은 때때로 퍼지 추출기로 지칭된다. 키 유도 유닛은 또한 퍼지 추출기에 포함될 수 있다.
예컨대, 등록 스테이지에서, 하나 또는 그 초과의 랜덤 코드 워드들은 예컨대 랜덤하게 선택된 시드를 인코딩함으로써 블록 코드로부터 선택되고, 그리고 유지되는 것으로 마킹된 제 1 PUF 응답의 비트들과 코드 워드들 간의 차이가 계산된다. 제 1 PUF 응답은 또한 등록 응답으로서 지칭되고; 하나 또는 그 초과의 랜덤 코드 워드들은 등록 코드 워드들로서 지칭된다.
제 1 PUF 응답의 유지되는 부분은 그 유지되는 부분을 코드 워드 사이즈의 배수로 만들기 위하여 필요하다면 패딩(pad)되거나 단축될 수 있다.
차이는 또한 오프셋으로서 지칭된다. 2진 값들의 경우에, 2개의 벡터들 간의 오프셋은 배타적-or(XOR) 연산에 의해 획득될 수 있다. 이런 코드 오프셋은 노이즈-감소 데이터로서 사용될 수 있다. 실시예에서, 노이즈 감소 데이터(144)는 오프셋, 예컨대 제 1 PUF 응답의 유지되는 부분과 하나 또는 그 초과의 코드 워드들의 XOR을 포함한다.
재구성 스테이지에서, PUF는 재평가되고, 등록된 PUF 응답의 노이지 버전, 즉 제 2 PUF 응답은 획득된다. 제 2 PUF 응답의 유지되는 부분을 노이즈 감소 데이터(144)에 포함된 코드 오프셋에 의해 시트팅함으로써, 등록 코드 워드들의 노이지 버전에 도달한다. 2진 값들의 경우에, 이런 시프트는 다시 XOR-연산으로 감소한다. 노이지 코드 워드들은, 등록 코드 워드들이 취해지는 에러 정정 코드에 대응하는 에러 정정 알고리즘을 사용하여 정정될 수 있다. 재구성 동안 PUF 응답 비트 에러들의 수가 너무 크지 않으면, 정정된 코드 워드들은 본래 등록된 코드 워드들과 동일할 것이다.
원해지면, 이런 정정된 코드 워드를 다시 한번 코드 오프셋으로 시프팅함으로써 본래 등록된 PUF 응답의 유지되는 부분을 재구성할 수 있다. 이런 응답으로부터, 등록된 키는 결과적으로 추출될 수 있다. 대안적으로, 키는 본래 등록된 PUF 응답을 재구성함이 없이 정정된 코드 워드들로부터 획득될 수 있다. 아마도 디코딩의 하나 또는 그 초과의 추가 라운드들 이후 키를 유도하기 위하여 정정된 코드 워드들을 디코딩하는 것이 또한 가능하다.
코드-오프셋 퍼지 추출기의 근본이 되는 에러 정정 블록 코드가 치수 k 및 길이 n(또한 (n, k)-코드로서 나타내짐)을 가지면, 노이즈 감소 데이터 개시내용이 (n-k)에 의해 상계(upper bound)되는 것이 도시될 수 있다. 노이즈-감소 데이터가 디바이어싱을 적용함이 없이 제 1 PUF 응답에 대해 컴퓨팅되면, 이에 따라서 키 추출을 위하여 남아있는 엔트로피는 적어도 H(X)-(n-k)이고, 여기서 제 1 PUF 응답 X는 엔트로피(H(X))를 가진다. 특정 간단한 코드 구성들(특히, 작은 치수 k의 코드들, 예컨대 반복 코드들)에 대해, 노이즈-감소 데이터 개시내용은 더 정확하게 계산될 수 있고 더 엄격한 상계들이 결정될 수 있다.
코드 파라미터들(n, k)이 코드에 대해 요구된 에러-정정 능력에 의해 결정되는 것을 주목하라. 더 큰 에러-정정 능력은 통상적으로 더 낮은 레이트(k/n)를 가지는 코드들을 유도한다. 많은 에러들을 정정할 필요가 있는 코드들은 n>>k를 가질 것이고, 따라서 노이즈-감소 데이터 개시내용 상계(n-k)는 매우 크게 된다. 결과로서, 그런 코드들에 대한 효과적인 노이즈-감소 데이터 개시내용은 통상적으로 또한 매우 클 것이고, 이는 키 추출을 위한 엔트로피가 거의 또는 심지어 전혀 남아 있지 않게 한다. 바람직하지 않게, 바이어스는 H(X)를 감소시켜 남아있는 엔트로피에 대한 하계(lower bound), 즉 H(X)-(n-k)는 0에 근접하거나, 심지어 네거티브일 수 있다. 이것은 키 누설 문제를 명확하게 예시한다.
코드-오프셋 방법보다 노이즈 감소 데이터를 구성하기 위한 대안적인 방법들이 있다. 예컨대, PUF 출력은, 페리티 비트들이 에러 정정 코드에 따라 컴퓨팅되는 데이터 비트들로서 간주될 수 있다. 페리티 비트들은 노이즈 감소 데이터로서 저장된다. PUF 응답을 재구성하기 위하여, 동일한 페리티 비트들이 컴퓨팅되고 그 저장된 페리티 비트들과 저장된다. 페리티 비트들의 차이로부터, 제 1 및 제 2 노이지 PUF 응답 비트들 간의 차이가 디코딩될 수 있고, 이에 따라서 제 1 PUF 응답은 제 2 PUF 응답을 정정함으로써 재구성될 수 있다. 이런 구성은 때때로 신드롬(syndrome)-구성 헬퍼 데이터로서 지칭된다. 이것은 디바이어싱과 조합될 수 있다. 예컨대, 페리티 비트들은 유지되는 것으로 마킹된 비트들을 위하여 컴퓨팅될 수 있다. 재구성 동안, 페리티 비트들은 유지되는 것으로 마킹된 제 2 PUF 응답의 비트들에 첨부될 수 있다.
전자 암호화 디바이스의 실시예들에서, 디바이어싱 유닛은 먼저, 노이즈-감소 데이터를 컴퓨팅하기 전에, 예컨대 노이즈-감소 데이터를 등록하기 전에 아마도 바이어싱된 PUF 응답을 디바이어싱한다. 디바이어싱 동작은 제 1 PUF 응답의 길이 감소와 유사한 PUF 응답의 엔트로피의 특정 손실을 유도할 것이다. 이것은 디바이어싱 손실이라 지칭될 수 있다. 그러나, 결과적인 디바이어싱된 PUF 응답을 등록함으로써, 더 이상 PUF 응답의 바이어스로 인한 부가적인 키 누설이 필요하지 않다. 개념적으로, PUF 응답의 바이어스로 인한 엔트로피 감소가 디바이어싱 손실에 의해 흡수되고, 결과로서 응답 바이어스로 인한 키 누설이 감소되거나, 제거되는 것이 언급될 수 있다.
바이어스가 감소된 응답 엔트로피의 유일한 원인인 것이 가정되면, 디바이어싱된 PUF 응답은 전체 엔트로피를 가질 수 있고 키 누설이 조금도 없을 것이다. 그러나, 바이어스보다 감소된 엔트로피의 다른 원인들, 예컨대 비트 상관들이 있을 수 있다. 바이어스는 PUF 응답들에서 엔트로피 감소의 중요한 원인인 것으로 나타난다.
PUF 응답의 비트들을 폐기하는 것은 비용이 든다. 디바이어싱 손실로서 지칭되는 이런 비용은 노이즈-감소 데이터 개시내용으로 인한 손실을 상회한다. PUF의 사이즈, 예컨대 응답 비트들의 수는 이런 부가적인 손실을 보상하기 위하여 이에 따라서 증가될 필요가 있을 수 있다. 디바이어싱 손실이 바이어스로 인한 단지 엔트로피 감소보다 상당히 더 클 수 있다는 것을 주목하라. 예컨대, 미리 바이어싱되지 않은 응답에 대해 디바이어싱을 적용할 때, 바이어스로 인한 PUF 응답의 엔트로피 감소는 제로이지만(PUF 응답이 미리 바이어싱되지 않았기 때문에), 디바이어싱 손실은 통상적으로 0보다 더 클 것이다.
도 4a는 전자 암호화 디바이스의 실시예의 예에서 등록 페이즈를 개략적으로 예시한다. 도 4b는 전자 암호화 디바이스의 실시예의 예에서 재구성 페이즈를 개략적으로 예시한다. 도 4a 및 4b를 참조하여 개시된 방법은 전자 암호화 디바이스(101 또는 100)의 실시예들에 의해 수행될 수 있다.
도 4a에는 예컨대 PUF(110)에 의해 생성되는 바와 같은 제 1 PUF 응답(412)이 도시된다. PUF(110)는 바이어싱될 수 있어서, 예컨대 상이한 확률의 1 및 0 비트들, 및 예컨대 다수 번 챌린지될 때 약간 상이한 응답들을 생성하는 노이지를 가진다.
제 1 노이지 비트 문자열(412)은 비트 쌍들의 시퀀스로서 간주될 수 있다. 이것은 도 4a에서 일련의 수평 중괄호에 의해 표시된다.
편의를 위하여, 비트 문자열 내 비트들은 예컨대 1에서 시작하여, 예컨대 정수들을 비트 문자열의 비트들에 할당함으로써 인덱스와 연관될 수 있다. 제 1 응답은 동일한 비트 쌍 i에 2i-1 및 2i로 비트 인덱스를 가짐으로써 비트 쌍들로 파티셔닝될 수 있다. 2개의 동일한 비트들을 포함하는 비트 쌍은 동일한 비트 쌍이라 지칭된다. 2개의 동일하지 않은 비트들을 포함하는 비트 쌍은 동일하지 않은 비트 쌍이라 지칭된다. 비트 쌍들은 반드시 PUF 응답에서 연속적일 필요가 없다.
디바이어싱 유닛(120)은 제 1 비트 쌍들의 시퀀스에서 동일하지 않은 비트 쌍들을 식별하고 제 1 노이지 비트 문자열의 동일하지 않은 비트 쌍들을 유지되는 것으로 마킹하도록 배열될 수 있다. 실시예에서, 디바이어싱 유닛은 모든 동일한 비트 쌍들을 디바이어싱 데이터에서 폐기되는 것으로 마킹하도록 배열된다. 후자는 반드시 필요하지 않지만, 아래에 설명된다. 비트 쌍들(412)의 시퀀스 아래에, 동일하지 않거나 동일한 것으로 식별된 비트 쌍들이 표시된다. 유지되는 비트 쌍의 비트들 둘 모두가 유지되는 것을 주목하라.
실시예에서, 제 1 PUF 응답의 비트들은 동일하지 않은 비트 쌍들을 선택하고 동일한 비트 쌍들을 폐기함으로써 디바이어싱되는 연속적인 쌍들로 나누어진다. 동일하지 않은 비트 쌍들은 전체로서 고려된다. 결과는 도 4a에서 디바이어싱된 제 1 PUF 응답(414)으로서 도시된다.
디바이어싱된 제 1 PUF 응답(414)에서 비트 쌍들이 모두 동일하지 않다는 것을 주목하라. 결과로서 문자열(414)의 엔트로피는, 말하자면, 각 쌍의 제 1 비트만을 취함으로써 획득되는 것과 동일하다. 그러나, 비트 문자열(414)은, 노이즈-감소 유닛을 위해 선택된 에러-정정 코드와 조합하여 고려될 때 더 나은 노이즈 감소가 획득된다는 장점을 가진다. 게다가, 디바이어싱된 PUF 응답(414)이 아직 전체 엔트로피를 가지지 않더라도, 더 이상 노이즈 감소 데이터에 의한 결과적인 키 누설이 없을 것이다. 엔트로피는 예컨대 키 유도 함수를 사용하여 후에 집중될 수 있다.
제 1 에러 정정 코드로부터의 하나 또는 그 초과의 제 1 코드 워드들(415)은 예컨대 노이즈-감소 유닛(130)에 의해 획득된다. 바람직하게, 에러 정정 코드의 코드 워드들은 짝수 길이를 가진다. 필요하면, 디바이어싱된 응답(414)의 일부 비트 쌍들은 폐기될 수 있거나, 디바이어싱된 응답(414)은, 말하자면, 제로 비트들로 패딩될 수 있어서, 하나 또는 그 초과의 제 1 코드 워드들의 비트들의 수는 디바이어싱된 비트 문자열(414)의 비트들의 수와 동일하다. 예에서, 도 4a에는, 2개의 코드 워드들이 길이 4의 반복 코드로부터 취해지는 것이 도시된다. 반복 코드는 (n, k) 타입(4, 1)을 가진다. 동일한 코드 워드에 속하는 비트들은 점선 박스로 표시된다.
반복 코드들은 매우 높은 에러 정정 능력들을 가지며 효과적으로 디코딩가능하다. 그러나, 다른 코드들, 예컨대 아디마르 코드들(Hadamard codes), BCH 코드들 등은 가능하다.
제 1 코드 워드들(415)은 코딩되지 않은, 예컨대 플레인(plain) 데이터 워드들을 코드 워드들에 맵핑하기 위하여 랜덤 등록 시드의 비트들을 인코딩함으로써, 예컨대 에러 정정 코드와 연관된 에러 정정 인코더를 사용함으로써 생성될 수 있다. 일부 실시예들은 제 2 에러 정정 코드로부터 하나 또는 그 초과의 제 2 코드 워드들의 비트들을 인코딩함으로써 제 1 코드 워드들을 획득한다. 제 2 코드 워드들은 랜덤 등록 시드 등의 비트들을 인코딩함으로써 생성될 수 있다. 2개의 코드들을 사용하는 것은 이제 효율적인 인코딩 및 디코딩에 의해 에러 정정에 대한 높은 능력을 획득하는 장점을 가진다.
실시예에서, 예컨대, 유지되는 것으로 디바이어싱 정보에 의해 마킹된 제 1 비트 문자열(412)의 비트들, 예컨대 디바이어싱된 문자열(414)에 도시된 비트들과 하나 또는 그 초과의 코드 워드들(415) 간의 차이를 포함하는 노이즈-감소 데이터(144)는 노이즈-감소 유닛(130)에 의해 획득된다. 차이는 XOR 연산에 의해 획득될 수 있다.
그러나, 폐기되는 것으로서 디바이어싱 정보에 의해 마킹된 제 1 비트 문자열의 비트들과 제 1 노이지 비트 문자열에서 폐기되는 비트들에 대응하는 하나 또는 그 초과의 코드 워드들의 비트들 간의 차이는 획득되지 않는다. 노이즈-감소 데이터는 후자의 차이들을 포함하지 않는다. 따라서, 제 1 PUF 응답의 바이어싱된 부분들은 누설되지 않는다.
실시예에서, 노이즈-감소 데이터는 유지되는 것으로서 디바이어싱 정보에 의해 마킹되는 제 1 비트 문자열의 비트들의 연접과 하나 또는 그 초과의 코드 워드들 간의 차이를 포함한다.
디바이어싱 및 노이즈 감소 데이터를 인코딩하기 위한 다수의 방식들이 있다. 도 4a는 둘 모두의 데이터를 단일 비트 문자열로 조합하는 디바이어싱 및 노이즈-감소 데이터(440)를 도시한다. 하나 또는 그 초과의 코드 워드들의 각각의 비트는 제 1 비트 문자열의 유지되는 비트에 대응한다. 예컨대, 하나 또는 그 초과의 코드 워드들(415)은 함께, 1, 2, 3, 4, 5, 6 등의 비트가 제 1 응답(412)의 1, 2, 5, 6, 9, 10 등의 비트에 대응하는 문자열을 형성한다. 유지되는 비트에 대응하는 비트 문자열(440)의 인덱스들은 동일한 인덱스를 가지는 제 1 PUF 응답의 비트와 상기 유지되는 비트에 대응하는 하나 또는 그 초과의 코드 워드들의 비트 간의 차이를 저장한다.
예컨대, 'a'로 마킹된 비트 쌍은 문자열(412)의 제 1 두개의 유지되는 비트들과 하나 또는 그 초과의 코드 워드들(415)의 제 1 두개의 비트들 간의 차이에 대응한다.
폐기되는 비트의 인덱스를 가지는 문자열(440)의 비트 쌍들은 모두-제로 비트 쌍으로 채워질 수 있다. 대안적으로, 모두-1 쌍이 또한 사용될 수 있다. 예컨대, 'b'로 마킹된 비트 쌍은 모두 제로이다. 문자열(440)에서 동일한 비트 쌍들은 폐기되는 비트 쌍들을 마킹한다. 문자열(440)의 동일하지 않은 비트 쌍들은 노이즈-감소 데이터를 포함한다.
실시예에서, 조합된 디바이어싱 및 노이즈 감소 데이터(440)는 본래의 바이어싱된 제 1 PUF 응답(412)과 동일한 길이를 가질 수 있다.
이 정보를 레코딩하기 위한 많은 대안적인 방식들이 있고; 이중 몇 개가 도 4a에 도시된다. 예컨대, 디바이어싱 데이터(442)는, 1-비트들이 유지되는 비트들을 표시하고, 예컨대 나타내고, 제로-비트들이 폐기되는 비트들을 표시하는 비트 마스크이다. 예컨대, 디바이어싱 데이터(442')는 이 경우에 유지되는 비트 쌍들의 인덱스들의 리스트이다. 노이즈 감소 데이터(444)는 노이즈-감소 데이터만을 포함하는 비트 문자열이다. 노이즈 감소 데이터(444)는, 유지되는 비트들이, 말하자면, 문자열들(442 또는 442')을 사용하여 식별된 후에 사용될 수 있다. 명확성을 위하여, 노이즈 감소 데이터(444)는 대응하는 비트들 아래에 도시되었지만; 이들은 연접된 형태로 저장될 수 있다.
디바이어싱 데이터 및 노이즈 감소 데이터는, 말하자면, 저장소(140)에 저장될 수 있거나, 말하자면, 외부 서버(도시되지 않음) 상에 외부적으로 저장될 수 있다.
재구성 페이즈에서, 제 2 PUF 응답(422)은 제 1 PUF 응답(412)을 생성한 동일한 PUF에 의해, 말하자면, PUF(110)에 의해 생성된다. 제 2 PUF 응답은, 말하자면, 해밍 거리 내로 제 1 응답(412)에 가깝지만; 상당한 양의 노이즈가 존재한다. 제 2 응답(422)에서 비트들의 일부는 응답(412)과 상이하다. 도 4b에 도시된 예에서 상이한 비트들은 화살표로 표시된다.
제 2 PUF 응답(422)은 비트 쌍들로 파티셔닝된다. 디바이어싱 데이터에서 폐기되는 것으로 마킹되는 비트 쌍들은 폐기된다. 비교를 위하여, 데이터(440)는 제 2 응답(422) 아래에 도시되고, 여기서 폐기되는 비트 쌍들을 표시하는 제로 비트 쌍들은 오프셋된다. 유지되는 것으로 마킹되는 비트들은 디바이어싱된 제 2 PUF 응답(423)을 형성한다.
바이어스가 제 1 응답의 생성 동안보다, 말하자면, 환경, 예컨대 온도의 변화들로 인해 제 2 응답의 생성 동안과 약간 상이할 수 있다는 것을 주목하라. 그러나, 이것은 덜 중요한데, 그 이유는 노이즈-감소 데이터가 제 2 PUF 응답을 위해 생성되지 않고, 따라서 어떠한 부가적인 키 누설이 발생하지 않기 때문이다.
디바이어싱된 PUF 응답(423)의 비트 쌍들, 즉 유지되는 것으로서 마킹된 비트들은 노이즈 감소 데이터와 XOR되고, 이는 노이지 코드 워드들(424)을 유발한다. 예컨대, 정규화기(152)는 노이즈-감소 데이터를, 디바이어싱 데이터에 의해 유지되는 것으로 마킹된 제 2 노이지 비트 문자열의 비트들에 부가, 예컨대 XOR할 수 있다.
노이지 코드 워드들(424)은 노이즈가 부가되는 하나 또는 그 초과의 제 1 코드 워드들(415)이다. 어떠한 노이즈도 존재하지 않으면, 노이지 코드 워드들(424)은 코드 워드들(415)과 동일할 것이다. 예에서, 도 4b에서, 둘 모두의 코드 워드들은 에러를 포함한다.
노이지 코드 워드들(424)은, 말하자면, 에러 정정기(154)에 의해 정정되어, 정정된 코드 워드들(426)을 획득할 수 있다. 에러 정정기(154)는 하나 또는 그 초과의 디코딩된 코드 워드들(427)을 획득하기 위하여 정정된 코드 워드들(426)을 계속 디코딩할 수 있다. 이 경우에, 디코딩된 코드 워드들은, 이것이 k=1 코드이기 때문에, 코드워드 당 단일 비트이다. 하지만 이런 디코딩 단계는 필요하지 않다.
실시예에서, 키는 디코딩된 코드 워드들(427)로서 직접 취해질 수 있다. 그러나, 키 유도 함수를, 디코딩된 코드 워드들(427) 또는 정정된 코드 워드들(426) 중 어느 하나에 적용하는 것이 바람직하다. 후자는 키 유도 유닛(156)에 의해 수행될 수 있다.
대안적으로, 디코딩된 비트들(427)은 연접된 코드 구성의 경우에 상위-레벨 코드 워드의 코드 비트들로서 취해질 수 있다. 그 경우에, 반복 코드 워드들의 해밍 가중치는 또한 상위 레벨 디코더에 대한 연판정 정보로서 역할을 할 수 있다.
도 4a 및 4b를 참조하여 설명된 실시예의 장점은, 노이즈 감소 데이터가 컴퓨팅되기 전에 PUF 응답이 디바이어싱되기 때문에 바이어싱된 PUF 응답들로 인한 키 누설이 제거되었다는 것이다. 따라서, 이런 디바이어싱 퍼지 추출기는 키 누설 없이, 또는 적어도 감소된 키 누설로 바이어싱된 PUF들로부터 키 생성을 위해 사용될 수 있다.
다른 장점은, 동일하지 않은 비트 쌍의 둘 모두의 비트들이 고려된다는 사실로 인한 개선된 효율성이다. 처음에, 이것은 반직관적인데, 그 이유는 결과적인 디바이어싱된 PUF 응답이 정말로 바이어싱되지 않지만, 비트들의 각각의 쌍의 페리티가 홀수임으로 인해 더 이상 독립적인 비트들을 가지지 않기 때문이다. 이것은 디바이어싱된 PUF 응답에 대해 감소된 엔트로피를 유발하고; 유효 엔트로피는 응답 길이의 단지 절반이다. 고전적인 폰 노이만 디바이어싱은 또한 선택된 쌍들의 제 2 비트들을 폐기함으로써 이를 회피한다.
그러나, 여기서 노이즈-감소 데이터 개시내용 및 디바이어싱 손실의 지능적인 조합이 시행된다. 디바이어싱된 응답에서 비트 쌍들의 페리티가 공개적으로 알려져 있다는 사실은, 이 정보가 반복-코드-오프셋 노이즈 감소 데이터를 통하여 어쨌든 개시되므로 문제가 되지 않는다. 반복-코드-오프셋이 이미 짝수의 PUF 응답 비트들의 각각의 조합의 페리티를 개시한다는 것을 주목하라. 보안 관점에서, 가상의 공격자는 이들 페리티들의 지식을 이용하여 생산된 핵심 자료를 공격할 수 없는데, 그 이유는 공격자가 어쨌든 노이즈 감소 데이터로부터 동일한 정보를 얻기 때문이다. 퍼지 추출기에 의해 제공되는 핵심 자료가 노이즈-감소 데이터 개시내용을 고려해 볼 때 안전하기 때문에, 비트 쌍 페리티들의 개시로 인한 이런 엔트로피 감소가 제공되는 경우에도 계속 안전할 것이다. 따라서, 유지되는 비트 쌍의 둘 모두의 비트들을 사용함으로써 부가적인 엔트로피 손실이 없지만, 에러 정정은 개선된다.
디바이어싱된 PUF 응답에서 엔트로피는 예컨대 키 유도 함수에 의해, 말하자면, 유지되는 비트들의 길이의 절반 또는 그 미만의 키에 집중될 수 있다.
코드-오프셋 노이즈-감소 데이터가 어쨌든 비트 쌍 페리티 정보를 개시하기 때문에, 고전적인 폰 노이만 디바이어싱이 수행하는 바와 같은 동일하지 않은 쌍들의 제 2 비트들을 폐기함으로써 PUF 응답 엔트로피로부터 제 2 시간을 뺄 필요가 없다. 따라서, 바이어스의 동일한 레벨에 대해, 여기서 제시된 솔루션은 고전적인 폰 노이만 디바이어싱에 비교될 때 디바이어싱되는 비트들의 수를 두 배로 유지한다. 예컨대, 본래의 PUF 응답이 미리 바이어싱되지 않을 때, 고전적인 폰 노이만 디바이어싱은 평균하여 1/4의 비트들(3/4의 유효 디바이어싱 손실)을 유지하는 반면, 도 4a에 도시된 실시예는 1/2의 비트들(1/2의 유효 디바이어싱 손실)을 유지할 것이다. 유효 디바이어싱 손실의 이런 감소는, 실제 디바이어싱 손실 부분이 노이즈-감소 데이터 개시내용과 오버랩하고 따라서 더 이상 유효 손실이 없기 때문에, 가능하다.
도 4a 및 4b의 실시예들은 바이어싱된 PUF 응답들에 대한 키 누설 문제를 효과적으로 어드레싱(address)하고, 디바이어싱 손실을 노이즈 감소 데이터 개시내용과 지능적으로 조합하여, 상당한 개선을 유발한다.
노이즈-감소 유닛은 등록 페이즈 동안 디바이어싱된 PUF 응답(414)에 대한 노이즈-감소 데이터를 결정하도록 배열될 수 있고, 에러 정정기는 상기 노이즈-감소 데이터에 따라 재구성 페이즈 동안 디바이어싱된 PUF 응답(423)에서 비트들의 노이즈를 감소시키도록 배열될 수 있다. 예컨대, 노이즈-감소 데이터는, 말하자면, 정규화기에 의해 디바이어싱된 PUF 응답을 노이즈 코드 워드들에 맵핑하기 위하여 사용될 수 있다.
도 5a는 전자 암호화 디바이스의 실시예의 예에서 등록 페이즈를 개략적으로 예시한다. 도 5b는 전자 암호화 디바이스의 실시예의 예에서 재구성 페이즈를 개략적으로 예시한다. 도 5a 및 5b를 참조하여 개시된 방법은, 전자 암호화 디바이스(101 또는 100)의 실시예들에 의해 수행될 수 있는 도 4a 및 4b를 참조하여 논의된 것들에 기반한다.
도 4a에서와 같이, 등록은 비트 쌍들의 시퀀스로서 간주되는 제 1 PUF 응답(512)을 생성하는 것을 포함한다. 동일하지 않은 비트 쌍들은, 말하자면, 디바이어싱 유닛(120)에 의해 식별되고, 유지되는 것으로 마킹된다. 동일하지 않은 비트 쌍들은 참조번호 513a에서 동일하지 않은 부호로 마킹되었다. 동일한 비트 쌍들 중에서, 제 1 및 제 2 동일한 비트 쌍은 비트 쌍들의 시퀀스에서 식별되고, 제 1 동일한 비트 쌍은 예컨대 디바이어싱 유닛(120)에 의해 제 2 동일한 비트 쌍의 역이다.
예컨대, 디바이어싱 유닛(120)은 제 1 PUF 응답(512)에서 제 1 동일한 비트 쌍을 식별하고, 제 1 PUF 응답(512)에서 그 다음의 동일한 비트 쌍을 식별하도록 배열될 수 있다. 제 1 동일한 비트 쌍이 그 다음의 동일한 비트 쌍과 동일하면, 둘 모두는 폐기되는 것으로 마킹되고; 그렇지 않으면 적어도 제 1 동일한 비트 쌍은 유지되는 것으로 마킹된다. 디바이어싱 유닛(120)은 다음의 2개의 동일한 비트 쌍들을 반복적으로 발견하고, 그리고 2개의 동일한 비트 쌍들이 동일하면 이들을 폐기하지만, 2개의 쌍들이 동일하지 않으면 적어도 제 1 쌍을 유지하도록 배열될 수 있다.
실시예에서, 디바이어싱은 다수의 라운드들에서 발생하고, 제 1 라운드에서 동일하지 않은 비트 쌍들은 유지되는 것으로 마킹되고 동일한 비트 쌍들은 폐기되는 것으로 마킹된다. 제 2 라운드에서, 이전 라운드에 의해 폐기된 동일한 비트 쌍들은 이제 디바이어싱의 제 2 라운드에서 다시 고려된다. 폐기되는 비트들은 4 개로 그룹화된다. 형태 (0, 0, 1, 1) 및 (1, 1, 0, 0)의 4 쌍들은 유지될 수 있고 유지되는 것으로 이들을 마킹함으로써 디바이어싱된 PUF에 부가되고; 형태 (0, 0, 0, 0) 및 (1, 1, 1, 1)의 4 쌍들은 여전히 폐기된다.
디바이어싱된 PUF 응답이 이제 쌍들 및 4 쌍들의 리스트로 이루어지기 때문에(랜덤 순서로), 짝수-길이 반복 코드 워드의 엔드(end)가 4 쌍의 엔드와 정렬하지 않는 것이 있을 수 있다. 그러나, 이 실시예의 보안은, 단일 선택된 그룹(쌍, 4쌍, ... 등)의 비트들이 항상 동일한 코드 워드(반복 코드 워드 같은) 내에서 사용되는 경우 개선된다. 그 이유는, 비트 선택(예컨대, 4쌍)이 상이한 코드 워드들에 걸쳐 사용되는 경우, 공격자가 이들 코드 워드들에 걸쳐 페리티들을 학습하는데 이를 이용할 수 있기 때문이다. 반복 코드들의 경우에, 공격자는 예컨대, 2개의 연속적인 반복 코드 워드들이 동일한지 상이한지를 학습할 수 있다. 이것은 엔트로피의 손실 및 따라서 키 누설을 유도한다.
단일 선택된 그룹(쌍, 4쌍 ...)의 비트들이 항상 동일한 코드 워드 내에서 사용되는 것을 보장하기 위하여, 아마도 반복 코드에 속하는 그룹의 후행(trailing) 비트들은 폐기될 수 있다. 도 5의 예에서, 이것은 예시적인 PUF 응답의 엔드('e')에서 발생하고: 마지막 선택된 4쌍에 대해, 단지 제 1 비트 쌍만이 현재 반복 코드 워드를 위해 사용될 수 있다. 이 경우에, 그 4쌍 중 마지막 비트 쌍은 폐기되어야 하고, 이는 그 다음의 반복 코드 워드에 대한 시작으로서 사용될 수 없다.
실시예에서, 비트들의 동일하지 않은 쌍의 둘 모두의 비트들은 유지되는 것으로 마킹된다. 그러나, 실시예에서, 한 쌍의 동일한 비트 쌍들에서 제 2 동일한 비트 쌍은, 제 1 및 제 2 비트 쌍이 하나 또는 그 초과의 코드 워드들의 동일한 코드 워드와의 차이에서 사용되는 경우만 디바이어싱 데이터에 의해 유지되는 것으로 마킹되고 그렇지 않으면 폐기되는 것으로 마킹된다.
제 1 코드 워드들(515)은 도 5a에 도시된다. 제 1 코드 워드들의 비트들은 제 1 응답(512)의 대응하는 유지되는 비트들, 즉 차이가 컴퓨팅될 비트들과 정렬된다.
제 1 응답(512)에서 제 1 두 개의 동일한 비트 쌍들은 'c'로 지칭된다. 이들이 둘 모두 동일하기 때문에, 이 경우에, 둘 모두는 0이고, 이들은 둘 모두 폐기된다. 제 2 두 개의 동일한 비트 쌍들은 'd'로 지칭되고; 2개의 쌍들은 동일하지 않아서, 적어도 제 1 쌍은 유지된다. 제 2 쌍이 제 1 쌍과 동일한 코드 워드의 비트들과 대응함에 따라, 제 2 쌍은 또한 유지된다. 제 3 쌍은 'e'로 지칭되고; 2개의 쌍들은 동일하지 않아서, 적어도 제 1 쌍은 유지된다. 제 2 쌍이 제 1 쌍과 상이한 코드 워드의 비트들과 대응함에 따라, 제 2 쌍은 또한 폐기된다. 디바이어싱된 제 1 PUF 응답(514)의 'f'에서, 즉 제 1 PUF 응답(512)의 유지되는 비트들에서, 동일한 비트 쌍들의 유지되는 쌍의 모두 4개의 비트들은, 이들이 동일한 코드 워드에 속하면 유지되지만; 'g'에서, 단지 제 1 비트 쌍은 이들이 동일한 코드 워드에 속하지 않으면 유지된다는 것을 주목하라. 2개의 제로 비트들은, 제 1 응답(512)의 최종 2개의 비트들이 폐기되는 것, 예컨대 더 많은 코드 워드들이 뒤따르는 경우를 표시하기 위하여 디바이어싱 데이터(542)에 첨부될 수 있다.
대안적으로, 그룹의 후행 비트들을 폐기하는 것에 대해, 그룹들은 재순서화될 수 있어서, 예컨대, 그룹(쌍, 4쌍 또는 세트)의 엔드는 항상 반복 코드 워드 엔드와 정렬된다. 예컨대, 디바이어싱 유닛(120)은 제 1 PUF 응답(110) 내의 비트들의 순열(또한 청구항들에서 제 1 순열로서 지칭됨)을 선택하고 순열을 디바이어싱 데이터(142)의 일부로서 저장할 수 있다. 키를 재구성할 때, 순열은 먼저, 예컨대 재구성 유닛에 의해 제 2 PUF 응답에 적용되고, 그 후 디바이어싱 및 노이즈 제거(denosing)가 본원에 설명된 바와 같이 진행된다. 예컨대, 상기 순열은 코드 워드들의 시작에 쌍들, 말하자면, 4쌍들보다 더 큰 그룹들을 배치할 수 있고; 이것은 후행 비트들(도면에 도시되지 않음)을 회피시킨다. 실시예에서, 디바이어싱 유닛은, 제 1 및 제 2 동일한 비트 쌍이 하나 또는 그 초과의 코드 워드들의 동일한 코드 워드와의 차이에 사용되도록, 제 1 비트 쌍들의 시퀀스의 순열을 결정하도록 배열된다. 순열은, 제 1 PUF 응답의 더 많은 비트들이 노이즈 감소 데이터를 생성하기 위하여 사용될 수 있고, 따라서 디바이어싱 손실을 감소시킬 수 있다는 장점을 가진다.
비트 쌍들 또는 4쌍들을 식별하는 위의 디바이어싱 방법은 2보다 더 많은 라운드들로 확장될 수 있다. 8쌍들(8 비트들)에서 작동하는 제 3 라운드는 더 많은 라운드들을 위하여 직접 부가될 수 있고 등등이 있을 수 있다. 이것은 심지어 추가로 디바이어싱 손실을 감소시킬 것이다. 그러나, 더 많은 라운드들을 부가하는 것의 부가적인 이득은 빠르게 매우 작게될 것이다. 예컨대, 제 1 라운드는 동일하지 않은 비트 쌍들을 식별할 수 있다. 제 2 라운드는 나머지 쌍들 중 동일하지 않은 4쌍들을 식별할 수 있다. 제 3 라운드는, 제 2 라운드 동일하지 않은 8쌍들 이후 아직 유지되지 않은 비트 쌍들 간을 식별할 수 있다.
예컨대, 실시예에서, 디바이어싱 유닛은 비트 쌍들의 시퀀스에서 동일한 비트 쌍들의 제 1 및 제 2 세트를 식별하도록 배열되고, 제 1 및 제 2 세트는 동일한 사이즈를 가지며, 제 1 세트 내의 모든 동일한 비트 쌍들은 동일하고, 제 2 세트의 모든 동일한 비트 쌍들은 동일하고, 제 1 세트의 비트 쌍들은 제 2 세트의 비트 쌍들의 역이고, 디바이어싱 데이터는 적어도 제 1 세트의 동일한 비트 쌍을 유지되는 것으로 마킹한다.
부가적인 선택들의 결과는 디바이어싱된 제 1 PUF 응답(514)이다. 제 1 PUF 응답은 도 4a의 방법보다 더 작은 디바이어싱 손실을 가지는데, 그 이유는 동일한 비트 쌍들 중 일부가 유지되기 때문이다. 도 4a에서와 같이, 제 1 코드 워드들(515)이 획득된다. 도 5b의 예에서, 6 비트 반복 코드가 사용된다. 디바이어싱 데이터(542)의 가능한 표현은 도 5a에 도시된다. 디바이어싱 데이터(542)는 유지되는 비트들을 표시하기 위하여 1-비트들을 사용하고 폐기되는 비트들을 표시하기 위하여 제로 비트들을 사용한다. 하나 또는 그 초과의 코드 워드들(515)의 각각의 비트는 제 1 PUF 응답(512)에서 유지되는 비트에 대응한다. 노이즈-감소 데이터(544)는 유지되는 비트들과 하나 또는 그 초과의 코드 워드들(515)의 대응하는 비트들 간의 차이들을 포함한다. 노이즈 감소 데이터(544)는, 제 1 응답 비트와 코드 워드 비트 간의 차이를 표현하는 노이즈 감소 데이터(544)의 비트 인덱스가 제 1 응답에서 상기 제 1 응답 비트의 인덱스와 동일하도록, 저장될 수 있다. 데이터(544)에서 나머지 비트들은 임의적일 수 있고, 예컨대 랜덤하게 채워질 수 있고, 제로로 세팅될 수 있고, 빈 채로 남겨질 수 있고 등등일 수 있고; 도 5a에서, 나머지 비트들은 0으로 채워진다.
도 4a 및 5a에서, 하나 또는 그 초과의 코드 워드들(예컨대, 415, 515)의 각각의 비트가 제 1 PUF 응답에서 유지되는 비트에 대응하고; 노이즈 감소 데이터가 유지되는 비트들과 대응하는 코드 워드 비트 간의 차이를 포함하는 것을 주목하라.
도 5b에 의해 예시된 재구성 페이즈는 대체로 도 4b에 대한 것과 동일하다. 제 2 PUF 응답(522)은 예컨대 PUF(110)로부터 획득되고; 등록된 응답에 관한 비트 에러들은 설명 목적들을 위하여 화살표로 마킹된다. 이 응답(522)으로부터 유지되는 비트들은 디바이어싱 데이터를 사용하여 선택되어, 디바이어싱된 제 2 PUF 응답(523)이 획득된다. 디바이어싱된 제 2 PUF 응답(523)은 노이즈 감소 데이터에 부가되어 노이지 코드 워드들(524)이 획득된다. 도 4a에서와 같이, 정정된 코드 워드들은 디코딩된 코드 워드들(527)을 획득하기 위하여 디코딩될 수 있다. 대안적으로, 코드 워드들은, 말하자면, 이들을 해싱하는 것 등등에 의해 직접 사용될 수 있다.
디바이어싱 데이터(542, 442), 노이즈 감소 데이터(544, 444), 그러나 또한 조합된 데이터(440)가 오히려 높은 레벨의 구조를 가지며 결과적으로 더 효과적인 프로세싱 및 통신을 위하여 압축될 수 있다는 것을 주목하라.
예컨대, 반복 코드가 제 1 코드를 위해 사용되고 비트 쌍이 디바이어싱의 제 1 라운드에 의해 선택되면, 대응하는 노이즈 감소 데이터 비트 쌍은 항상 홀수 페리티를 가질 것이고 따라서 단일 비트에 의해 표현될 수 있고, 이는 그 쌍에 대해 50% 압축을 유발한다. 유사한 압축들은 8쌍들의 코드-오프셋 노이즈-감소 데이터에 가능하다.
도 5a 및 5b에 의해 예시된 디바이어싱은 도 4a 및 4b에 예시된 방법의 모든 장점들을 가지며 게다가 디바이어싱 손실이 추가로 감소되기 때문에 개선된 효율성을 가진다. 이런 감소는, 기본 추출기에 의해 폐기되는 비트 쌍들 중 일부가 이제 유지된다는 사실로부터 발생한다.
제 2 라운드에서 선택된 8쌍들이 단지 단일 비트 대신 전체로서 다시 사용될 수 있다는 것을 주목하라. 즉, 동일한 비트 쌍들의 유지되는 쌍의 모든 비트들은 유지되는 것으로 마킹된다. 비트들의 각각의 선택된 8쌍은 하나의 비트의 정보만을 사실상 포함하여, 3개의 비트들의 엔트로피 감소가 존재한다. 그러나, 이런 감소는 다시 반복 코드-오프셋 노이즈-감소 데이터에 의해 개시된 정보와 완전히 오버랩하고 따라서 다시 뺄 필요가 없다. 다른 말로, 또한 선택된 8쌍들에 대해, 디바이어싱 손실 및 반복 코드-오프셋 노이즈-감소 데이터 개시내용은 조합된다.
도 6a는 전자 암호화 디바이스의 실시예의 예에서 등록 페이즈를 개략적으로 예시한다. 도 6b는 전자 암호화 디바이스의 실시예의 예에서 재구성 페이즈를 개략적으로 예시한다. 도 6a 및 6b를 참조하여 개시된 방법은 전자 암호화 디바이스(101 또는 100)의 실시예들에 의해 수행될 수 있다.
도 4a 및 5a의 방법들은, 우리가 다중-등록 개시 문제로서 지칭하는 특정 공격 시나리오에 대해 취약성을 가진다.
다중-등록 개시 문제는, 동일한 PUF가 디바이어싱 코드-오프셋 퍼지 추출기에서 두 번 이상 사용될 때 발생한다. 따라서, 등록된 PUF 응답들은 일부 랜덤 비트 에러들까지 동일하다. 예컨대, 공격자는, 디바이어싱 및 노이즈 감소 데이터가 동일한 PUF에 대해 두 번 컴퓨팅되도록 디바이스를 조종한다.
다중-등록 개시 문제의 근본적인 원인은, 디바이어싱 단계가 확률론적이라는 사실이고, 즉 동일한 PUF를 두 번 디바이어싱하는 것은 특정 포인트까지 랜덤한 2개의 상이한 디바이어싱 선택들을 유발하고; 상이한 인덱스들을 가지는 상이한 비트들은 유지된다. 디바이어싱 선택의 랜덤성은 PUF 응답 상의 노이즈에 의해 유발된다. 이런 확률론적 성질로 인해, 둘 모두의 등록들에서 디바이어싱된 PUF 응답들은 본래의 PUF 응답의 상이한 선택들에 기반할 수 있다. 결과적으로, 또한 둘 모두의 등록들 시 디바이어싱 손실 및 노이즈-감소 데이터 개시는 본래의 PUF 응답 엔트로피의 상이한 부분들을 개시할 것이다. 결과로서, 둘 모두의 등록들의 디바이어싱 손실과 노이즈-감소 데이터에 의해 개시된 조합된 정보는 하나의 단일 등록의 것보다 더 크다.
다중-등록 문제는 일부 실시예들에서 발생할 필요가 없다. 예컨대, 등록은 예컨대 단지 거기서만 이용 가능한 일부 장비를 요구하는 안전 위치에서 행해질 수 있다. 예컨대, 디바이스는 동일한 PUF에 기반하여 하나보다 많은 등록을 방지하도록 배열될 수 있다. 이것은, 말하자면, 1회 프로그램가능(OTP) 메모리 엘리먼트(예컨대, PUF가 등록될 때 퓨즈가 나가게 됨)에 의해 PUF의 등록 상태를 저장함으로써 행해질 수 있다.
도 6a 및 6b에서, 다중-등록 개시 문제에 대해 감소된 취약성으로 PUF 응답을 디바이어싱하는 실시예들이 예시된다. 도 6a 및 6b의 실시예들은 도 4a 및 4b의 것들을 기반으로 한다.
도 6a에는 비트 쌍들의 시퀀스로 파티셔닝되는 것으로 간주되는 제 1 PUF 응답(612)이 도시된다. 비트 쌍들 내의 동일한 및 동일하지 않은 비트 쌍들은, 말하자면, 디바이어싱 유닛(120)에 의해 식별된다. 동일하지 않은 비트들의 쌍들은 유지되고, 동일한 비트들의 쌍들은 폐기된다. 유지되는 비트 쌍에서 둘 모두의 비트들은 유지된다.
폐기되는 비트 포지션들이 등록 동안 계속 역할을 한다는 것이 도 4a 및 5a와 상이하다. 개념적으로, 동일한 비트들의 폐기되는 쌍들은 한 쌍의 삭제 심볼들(ε)에 의해 대체된다. 삭제는 특정 제 3 심볼(0 및 1과 상이함)로서 간주될 수 있다. 아래에서, 삭제 심볼을 구현하기 위한 다양한 방식들이 논의된다. 예컨대, 심볼들(0, 1 및 ε)은 각각 2개의 비트들로 인코딩될 수 있다. 대안적으로, 삭제 심볼들의 효과는 삭제 심볼 위치들, 등을 표시하는 인덱스들의 리스트를 저장함으로써 구현될 수 있다.
결과적인 디바이어싱된 제 1 PUF 응답(614)은 도 6a에 도시된다. 결과적인 디바이어싱된 제 1 PUF 응답(614)은 동일하지 않은 비트들의 쌍들, 및 삭제 심볼들의 쌍들을 포함한다. 디바이어싱된 PUF 응답(614)은 본래의 바이어싱된 PUF 응답(612)과 동일한 길이를 가지지만; 그러나 디바이어싱된 PUF 응답(614)이 2개보다 오히려 3개의 심볼들을 가지는 더 큰 알파벳 위에 있다는 것이 고려된다.
제 1 에러 정정 코드로부터의 하나 또는 그 초과의 제 1 코드 워드들(615)은, 말하자면, 노이즈-감소 유닛(130)에 의해 획득된다. 도 4a 및 5a에 대해 주목되는 바와 같이, 제 1 에러 정정 코드는 제 2 에러 정정 코드로부터의 하나 또는 그 초과의 제 2 코드 워드들의 비트들을 인코딩함으로써 획득될 수 있다. 이런 후자의 옵션은 도 6a에 사용되었고, 도 6c 및 6d를 참조하여 아래에 추가로 논의될 것이다. 도 6a에서, 다시 반복 코드는 예로서 사용된다. 그러나, 다른 에러 정정 코드들이 대신 사용될 수 있다. 제 1 에러 정정 코드는 바람직하게 짝수 길이 코드이고; (n,k) 표기법에서, n은 짝수이다. 홀수 코드들이 또한, 예컨대 각각의 코드 워드에 대한 디바이어싱된 문자열(614)에 패딩 비트를 부가하거나, 또는 각각의 코드 워드의 하나의 비트를 폐기함으로써, 등등에 의해 사용될 수 있음을 주목한다. 패딩 비트는 제로일 수 있다.
도 6a에서, 제 1 PUF 응답(612), 및 디바이어싱된 PUF 응답(614)의 각각의 비트는 하나 또는 그 초과의 코드 워드들(615)의 비트에 대응한다. 이것은 도 4a 및 5a와 중요한 차이이고, 도 4a 및 5a에서 제 1 PUF 응답의 유지되는 비트들 간에 단지 대응만을 가지는 반면, 도 6a에서 제 1 PUF 응답의 모든 비트들, 즉 유지되는 비트와 폐기되는 비트 둘 모두와 하나 또는 그 초과의 코드 워드들(615)의 비트들 간에 대응이 존재한다. 이것은, 제 1 PUF 응답(612)의 임의의 비트가 심지어 상이한 등록들에 걸쳐 동일한 코드 워드에 사용될 것임을 의미한다.
조합된 디바이어싱 및 노이즈 감소 데이터는 디바이어싱된 제 1 PUF 응답(614)과 하나 또는 그 초과의 코드 워드들(615) 간의 차이를 결정함으로써 획득된다. 도 6a의 예에서, 코드는 길이 6의 반복 코드이지만; 다른 에러 정정 코드들, 말하자면, 아미다르, BCH, 등은 적용가능하다.
조합된 디바이어싱 및 노이즈 감소 데이터는 디바이어싱된 PUF 응답(614)을 하나 또는 그 초과의 코드 워드들(615)과 XOR한 차이를 획득함으로써 획득된다. XOR-연산은 부가적인 삭제 심볼(ε)을 허용하도록 확장된다. 우리는 때때로 확장된 XOR을 ε-XOR 연산으로 지칭할 것이고: 단지 0 비트 및 1 비트에 대해서만 연산할 때, ε-XOR 연산은 XOR 연산과 동일하지만, 피연산자들 중 하나가 ε일 때, 결과는 다른 피연산자에 무관하게 항상 ε일 것이다. 따라서, ε-XOR(0, 0) = ε-XOR(1, 1) = 0, 및 ε-XOR(0, 1) = ε-XOR(1, 0) = 1, 및 ε-XOR(ε, 0) = ε-XOR(ε, 1) = ε이다.
짝수 길이 에러 정정 코드가 사용되면, 바람직한 바와 같이, 디바이어싱된 PUF 응답들의 자연수의 쌍들이 항상 존재할 것이다(후행 비트들이 없음). 도 6a에서, 디바이어싱 및 노이즈-감소 데이터(640)는 디바이어싱된 PUF 응답(614)과 하나 또는 그 초과의 코드 워드들(615)에 대한 ε-XOR 연산의 결과를 도시한다.
제 1 PUF 응답으로부터 비트들을 스킵(skip)하는 대신, 하나 또는 그 초과의 코드 워드들의 각각의 코드 워드가 비트들의 전체 세트와 조합되도록 도 4a 및 5a에서 행해진 바와 같이, 도 6a에서 비트들은, 이들이 삭제 심볼에 의해 표시된 바와 같은 폐기되는 비트들에 대응하면 코드-워드들로부터 삭제된다. 도 6a에 따른 실시예들에서, 제 1 PUF 응답의 비트들과 하나 또는 그 초과의 코드 워드들의 비트들 간에 고정된 일대일 대응이 존재하고; 비트를 폐기되는 것 또는 유지되는 것으로 마킹하는 것은 관계를 변경시키지 않는다.
조합된 디바이어싱 및 노이즈 감소 데이터(640)는 본래(바이어싱된) PUF 응답(612)과 동일한 길이를 가진다. 2진 포맷의 0, 1 및 ε-심볼의 임의의 표현은 문자열(640)을 인코딩하기 위하여 사용될 수 있다. 문자열(640)의 구조로 인해, 문자열(640)은 바람직할 때 동작 및 통신을 용이하게 하기 위하여 상당히 압축될 수 있다. 압축은 문자열(640)에 특정한 압축 포맷을 사용할 수 있지만, 임의의 비-손실 압축 알고리즘이 사용될 수 있다.
비록 삭제 심볼이 개념적으로 이해하기 더 쉽지만, 그럼에도 불구하고 실시예들에서 부가적인 심볼의 사용을 회피하는 것은 가능하다. 예컨대, 도 6a는 조합된 노이즈 및 디바이어싱 데이터(640)에 대한 대안으로서, 디바이어싱 데이터(642) 및 노이즈 감소 데이터(644)를 도시한다.
디바이어싱 데이터(642)는, 어느 제 1 노이지 비트 문자열의 비트들이 유지되는 것으로 마킹되는지 또는 폐기되는 것으로 마킹되는지를 표시한다. 도 6a의 경우에, 디바이어싱 데이터(642)는 비트 마스크이고, 여기서 1 비트들은 유지되는 비트들을 표시하고 0 비트들은 폐기되는 비트들을 표시한다. 이 경우에, 폐기되는 비트는 ε 심볼로서 간주될 수 있다. 노이즈 감소 데이터(644)는 유지되는 비트 및 하나 또는 그 초과의 코드 워드들의 대응하는 비트들의 차이들을 포함한다. 예에서, 도 6a의 노이즈 감소 데이터(644)는 유지되는 비트와 대응하는 비트들의 차이들을 제 1 노이지 응답(612)에서 유지되는 비트의 인덱스와 동일한 인덱스로서 저장하고; 폐기되는 비트들에 대응하는 노이즈 감소 데이터(644)의 비트들은 임의적으로 채워질 수 있고, 이 경우에 0으로 채워질 수 있거나, 빈 채로 남겨질 수 있다. 노이즈 감소 데이터(644)는 코드 워드 비트들과 폐기되는 비트들 간의 차이들을 포함하지 않는다.
실시예에서, 제 1 노이지 비트 문자열의 비트들, 하나 또는 그 초과의 코드 워드들의 비트들 및 노이즈-감소 데이터의 비트들 모두는 인덱스를 가진다. 인덱스의 목적을 위하여, 하나 또는 그 초과의 코드 워드들은 예컨대 코드 워드들을 연접시킴으로써 하나의 긴 문자열로서 간주된다. 모두 3개의 문자열들은 동일한 길이일 수 있거나, 예컨대 제 1 노이지 PUF 응답을 패딩함으로써 동일한 길이 이도록 만들어질 수 있다. 인덱스들은 편리하게 1 내지 n으로, 등등으로 이어질 수 있다. 제 1 PUF 응답의 비트들과 하나 또는 그 초과의 코드 워드들의 동일한 인덱스를 가지는 비트들 간의 차이는 노이즈 감소 데이터에 저장된다(예컨대 동일한 인덱스를 가지는 비트들에 저장됨). 제 1 PUF 응답에서 폐기되는 비트와 동일한 인덱스를 가지는 노이즈 감소 데이터의 비트들은 제로로, 1로 세팅될 수 있거나, 또는 랜덤하게 채워질 수 있거나, 등등이다.
디바이어싱 및 노이즈 감소 데이터는 다음과 같이 획득될 수 있다: 제 1 PUF 응답의 각각의 비트 쌍에 대해 비트 쌍을 동일하거나 동일하지 않은 것으로 식별한다. 비트 쌍이 동일하면, 비트 쌍을 디바이어싱 데이터에서 폐기되는 것으로 마킹한다. 비트 쌍이 동일하지 않으면, 제 1 PUF 응답의 비트 쌍과 하나 또는 그 초과의 코드 워드들의 대응하는 비트 쌍 간에 차이, 예컨대 XOR을 컴퓨팅하고 예컨대 대응하는 위치에 있는 비트 쌍에, 노이즈 감소 데이터의 차이를 저장한다. 예컨대, 디바이어싱 데이터, 예컨대 디바이어싱 데이터(642) 및 노이즈 감소 데이터, 예컨대 노이즈 감소 데이터(644)는 다음 알고리즘(의사 코드로 나타내짐)에 의해 획득될 수 있다:
제 1 PUF 응답에서 비트 쌍들의 수에 대한 i=1에 대해
비트 쌍(i)이 동일하면, 비트 쌍(i)을 디바이어싱 데이터에서 폐기되는 것으로 마킹하고,
그렇지 않으면 제 1 PUF 응답에서 비트 쌍(i)과 하나 또는 그 초과의 코드 워드들의 비트 쌍(i) 간의 차이, 예컨대 XOR을 컴퓨팅하고 그 차이를 노이즈 감소 데이터에 저장함.
다음;
비트 쌍(i)은 비트들(2i-1 및 2i)(1로부터 시작하여 카운팅하여)로서 간주될 수 있다. 제 1 노이지 비트 문자열의 비트들은 동일한 인덱스를 가지는 하나 또는 그 초과의 코드 워드들의 비트들에 대응할 수 있다. 노이즈 감소 데이터에 비트를 저장하는 것은 차이 비트 쌍을 첨부함으로써 행해질 수 있다. 대안적으로, 비트를 노이즈 감소 데이터에 저장하는 것은 대응하는 비트 쌍 위치들에 차이를 저장하는 것 등에 의해 행해질 수 있다. 비트 쌍을 폐기되는 것으로 마킹하는 것은 다수의 방식들, 예컨대 리스트에 인덱스를 리스팅하거나, 비트들을 마킹하거나, 또는 비트 마스크의 비트 쌍 등에 의할 수 있다.
재구성 스테이지는 도 6b에 따라 다음과 같이 동작할 수 있다. 등록 PUF 응답(612)와의 차이들이 화살표들로 표시되는 제 2 PUF 응답(622)이 도시된다. 제 2 PUF 응답(622) 아래에는, 등록 스테이지 동안 생성된 디바이어싱 및 노이즈-감소 데이터(640)가 다시 도시된다.
노이지 제 2 PUF 응답(622)은 여기서 디바이어싱 및 노이즈-감소 데이터(640)와 ε-XOR을 사용함으로써 삭제 심볼들을 고려하여 부가되고, 이는 디바이어싱되고 정규화된 제 2 PUF 응답(624)을 유발한다. 디바이어싱된 제 2 PUF 응답(624)은 디바이어싱 및 노이즈-감소 데이터(640)의 삭제 심볼에 대응하는 각각의 비트에 대해 삭제 심볼들(ε)을 포함한다는 것을 주목하라.
비트 문자열(624)은 노이즈 및 삭제들 둘 모두에 의해 영향을 받는 하나 또는 그 초과의 코드 워드들로서 간주될 수 있다. 에러 정정 코드의 삭제 심볼은, 위치가 알려진 노이즈 타입으로서 간주될 수 있다. 노이즈에 의해서만 영향을 받은 코드 워드들이 정정되는 도 4b 및 5b의 상황과 같이, 또한 노이즈 및 삭제에 의해 영향을 받는 코드 워드들은 정정될 수 있다. 임의의 코드와 마찬가지로, 정정은, 노이즈 및 삭제 양이 너무 많지 않을 때만 가능하다. 상위 레벨의 바이어스 또는 노이즈를 가지는 PUF는 예컨대 더 높은 최소 거리(d)를 가지는 더 강력한 에러 정정 코드를 사용함으로써 정정될 수 있다.
도 6a 및 6b의 예에서, 제 1 코드 워드들은 길이 6 반복 코드이다. 반복 코드는 비교적 쉬운 정정 알고리즘을 허용하지만, 더 복잡한 에러 정정 코드들이 또한 노이즈 및/또는 삭제들의 존재에서 정정을 허용한다는 것이 주목된다. 반복 코드에 대하여, 코드 워드는, 0 및 1 중 어느 것이 비-삭제된 심볼들 중에서 과반수인지를 카운팅함으로써 디코딩될 수 있다. 과반수가 존재하지 않으면, 코드 워드가 디코딩될 수 없고; 즉 0 또는 1 둘 모두가 디코딩된 심볼은 똑같이 있을 공산이 있다는 것을 주목하라. 요구되면, 본래의 코드 워드들(615)은 필요한 경우 디코딩을 인코딩함으로써 복원될 수 있다.
하나의 특정 디코딩이 각각의 코드 워드에 대해 판정되는 이런 후자 타입의 디코딩은 경판정(hard decision) 디코딩이라 지칭된다. 하드 디코딩된 코드 워드들(627)은 도 6b에 도시된다. 제 2 코드 워드에 대해, 경판정이 올바르지 않다는 것을 주목하라. 제 3 코드 워드에 대해 0 및 1 둘 모두는 똑같이 있을 공산이 있다. 경판정이 요구되면, 랜덤 선정이 이루어질 수 있다. 제 3 코드 워드들에 대해 0을 선택하기 위하여 경판정 디코딩이 우연히 발생되면, 결과적인 제 2 코드 워드(0,0,0,1)가 (0,1,0,1)로 올바르게 정정될 것이라는 것을 주목하라. 그러나, 1을 선택하기 위하여 경판정 디코딩이 우연히 발생하면, 에러들의 수는 제 2 에러 정정 코드가 정정하기에는 너무 클 것이다. 더 강력한 에러 정정 코드는 이들 에러들을 방지할 수 있었지만; 더 낮은 코드 레이트(분율 k/n)의 대가를 치룰 공산이 있다.
도 6은 도 4a 및 5a에 예시된 실시예들에 대해 또한 언급된 에러 정정 코드의 다른 사용을 예시한다.
도 6c에는 제 2 에러 정정 코드가 도시되고, 이의 모든 코드 워드들(650)이 리스트된다. 이 예시적 코드는 (n,k,d)-타입(4, 2, 2) 코드이다. 예컨대, 제 2 에러 정정 코드는 리드-솔로몬(Reed-Solomon) 에러 정정 코드일 수 있다. 도 6c에는 또한 시드들(630)이라 지칭되는 코드 워드들의 디코딩들이 도시된다.
등록 동안, 하나 또는 그 초과의 랜덤 코드 워드들은 제 2 에러 정정 코드(650)로부터 선택될 수 있다. 대안적으로, 하나 또는 그 초과의 랜덤 시드들은 시드들(630)로부터 선택될 수 있고 제 2 에러 정정 코드에 따라 인코딩될 수 있다. 도 6a의 경우에, 시드(0, 1)는 하나 또는 그 초과의(이 경우에 하나의) 코드 워드(0,1,0,1)를 획득하기 위하여 랜덤하게 선택되고 인코딩되었다. 하나 또는 그 초과의 제 2 코드 워드들의 비트들은 제 1 에러 정정 코드에 따라 인코딩된다. 길이 6 반복 코드에 따라 비트들(0,1,0,1)을 인코딩하는 것은 하나 또는 그 초과의 제 1 코드 워드들(615)을 제공한다.
디코딩 동안, 이런 연접된 코드 구성은 장점으로 사용될 수 있다. 노이지 및 삭제된 코드 워드들(624)을 경판정 디코딩하는 대신, 하나 또는 그 초과의 노이지 제 1 코드 워드들의 정정 신뢰성을 표시하는 신뢰성 정보, 즉 소프트 디코딩된 코드 워드들(628)이 컴퓨팅된다. 소프트 디코딩된 코드 워드들(628)은 디코딩 신뢰성의 표시를 제공한다. 이 경우에, 소프트 디코딩된 코드 워드들(628)은, 0이 네거티브 값에 의해 디코딩되고 1 디코딩이 포지티브 값에 의해 표시되는 것을 표시한다. 판정가능하지 않은 디코딩은 0 값으로 표시된다. 소프트 디코딩된 코드 워드들(628)의 크기는 정정 신뢰성을 표시한다. 더 큰 크기는 더 신뢰성 있는 값을 표시한다. 도 6a에 사용된 반복 코드에 대해, 예상된 디코딩 및 상기 디코딩의 신뢰성 둘 모두는 단일, 예컨대 포지티브 또는 네거티브 정수로 인코딩될 수 있다. 더 복잡한 제 1 에러 정정 코드들에 대하여, 각각의 코드 워드에 대해 2개의 값들, 예상된 디코딩, 예컨대 다수의 비트들, 및 신뢰성 값, 예컨대 정수가 사용될 수 있다.
도 6b에서, 소프트 디코딩은 1-비트들을 +1로서 그리고 0-비트들을 -1로서 카운팅하고, 삭제들을 무시함으로써 획득되었다.
하나 또는 그 초과의 노이지 제 1 코드 워드들의 정정 신뢰성을 표시하는 신뢰성 정보는 에러 정정기의 일부이거나 조합될 수 있는 신뢰성 정보 추출기에 의해 결정될 수 있다. 신뢰성 정보 추출기는 도 3에 별도로 도시되지 않는다. 연판정 디코더는 신뢰성 정보를 사용하여 하나 또는 그 초과의 제 2 코드 워드들을 디코딩하도록 구성될 수 있다. 연판정 디코더는 최소 거리 리스트 디코더일 수 있다. 대안적으로, 연판정 디코더는 상이한 타입의 연판정 디코딩, 예컨대 터보 디코더, 트렐리스(trellis)-기반 디코더 등일 수 있다. 실시예에서, 최소 거리 리스트 디코더는 신뢰성 정보와 제 2 에러 정정 코드 워드들 중 각각 하나 간의 거리를 컴퓨팅하고, 그리고 최소 거리를 디코딩으로서 선택하도록 구성된다.
또한 연판정 정보로서 알려진 신뢰성 정보는 제 2 코드 워드를 디코딩하기 위하여 사용될 수 있다. 도 6a의 예에서, 연판정 값은 외부(제 2) 코드 워드의 연판정 디코딩을 수행하기 위해 사용된다. 예에서, 이것은 최소 거리 리스트 디코더에 의해 행해진다.
제 2 에러 정정 코드(650)의 제 2 코드 워드 간의 근접도는 연판정 정보(628)와 코드 워드들의 각각 하나 간의 내적(inner product), 즉 도트 프러덕트(dot product)를 컴퓨팅함으로써 획득될 수 있다. 연판정 디코딩, 예컨대 최소 거리, 또는 최대 상관 디코딩은 도 6d에 예시된다. 내적에 대해, 0-비트들은 -1 값들로서 간주된다. 상관들의 결과들은 651에 도시된다. 코드 워드(0,1,0,1)가 가장 높은 내적을 가지며 따라서 가장 공산이 높은 디코딩인 것을 주목하라. 근접도 값들은 예컨대 일부 최대 상관 값으로부터 이들을 뺌으로써 거리 값으로 변환될 수 있고, 이 경우에, 상관들은 24로부터 빼진다. 거리 값들은 652에 도시된다. 제 2 코드 워드 코드(0,1,0,1)는 최소 거리를 가진다.
이 경우에, 연판정 디코딩은, 4개의 반복 코드 워드들 중 2개가 올바르게 디코딩될 수 없다는 사실에도 불구하고, 올바르게 디코딩된 시드를 리턴한다.
도 6a 및 6b에 예시된 삭제-디바이어싱 코드-오프셋 퍼지 추출기는 도 4a 및 4b에 관하여 예시된 디바이어싱의 모든 장점들을 가지며 게다가 다수의 등록 문제를 겪지 않거나, 적어도 그렇게 덜 겪는다. 삭제들이 에러 정정 효율성과 무관하고; 삭제들이 에러-정정에 기여하지도 더 나쁘게 만들지도 않는 것을 주목하라. 또한, 디바이어싱, 예컨대 삭제들에 의해 유도된 손실이 또한 코드-오프셋 노이즈-감소 데이터에 완전히 포함되기 때문에, 이 경우에 디바이어싱 손실이 노이즈-감소 데이터 개시와 완전히 오버랩하는 것이 관찰될 수 있다.
중요하게, 삭제-디바이어싱 코드-오프셋 퍼지 추출기는 다중-등록 개시 문제를 겪지 않는다. 이에 대한 이유는, 본래의 PUF 응답의 모든 비트 쌍들이 변경되지 않거나 삭제들로 유지되기 때문에, 디바이어싱 절차가 더 이상 확률론적이 아니기 때문이다. 따라서, 동일한 PUF의 다수의 등록들이 고려될 때 정보 누설이 축적되지 않을 수 있다.
논의된 실시예들은 독립적으로 분포되는 바이어스를 어드레싱한다. 즉, 실시예들은, 바이어스가 균일하지 않는 경우 가장 잘 작동하는 것으로 나타난다. 그럼에도 불구하고, 심지어 비-균일한 바이어스의 일부 형태들은 도 4-6에 따른 실시예들을 사용하여 어드레싱된다. 예컨대, 제 1 비트들의 시퀀스가 제 1 바이어스를 갖고 다음의 제 2 비트들의 시퀀스가 제 2 바이어스를 갖는다면, 바이어스는 올바르게 어드레싱된다. 이것은, 이들 실시예들이 어느 비트들을 유지하고 어느 비트들을 폐기할지를 판정하기 위하여 로컬 비트 쌍들을 사용하기 때문이다. 아마도, 제 1 및 제 2 시퀀스 간의 영역에는 일부 엔트로피 손실이 있을 수 있다. 따라서, 상이한 바이어스 레벨들을 가지는 다수의 존들을 가지는 것은 큰 문제인 것으로 보이지 않는다.
그러나, 다른 형태들의 비-균일한 바이어스는 더 큰 엔트로피 손실을 유발할 수 있다. 예컨대, 홀수 인덱스를 가지는 비트들에 대한 바이어스 레벨이 짝수 인덱스를 가지는 비트들에 대한 바이어스와 상이한 PUF를 고려하자. 심지어 디바이어싱 후에도, 그런 PUF는 바이어스가 짝수/홀수 인덱스들에 따르지 않는 다른 유사한 PUF보다 더 낮은 엔트로피를 가질 수 있다. 디바이어싱은 디바이어싱 데이터를 선택하기 전에 순열을 수행함으로써 개선될 수 있고; 이런 순열은 또한 제 2 순열로서 지칭된다. 일반적으로, 제 2 순열이 제 1 순열 이전에 수행될 것이라는 것을 주목하라.
예컨대, 실시예에서, 디바이어싱 유닛(120)은 제 1 노이지 비트 문자열의 비트들을 유지되는 것 또는 폐기되는 것으로 마킹하기 전에 제 1 노이지 비트 문자열의 제 1 및 제 2 부분의 비트들을 함께 그룹화하기 위하여 제 2 순열에 의해 제 1 노이지 비트 문자열을 순열화하도록 배열되고, 제 1 노이지 비트 문자열의 제 1 및 제 2 부분은 각각 제 1 및 제 2 바이어스 레벨을 가진다. 키 재구성 유닛(150)은 디바이어싱 데이터에 의해 유지되는 것으로 마킹된 제 2 노이지 비트 문자열의 비트들을 결정하기 전에 제 1 노이지 비트 문자열의 제 1 및 제 2 부분의 비트들을 함께 그룹화하기 위하여 제 2 순열에 의해 제 1 노이지 비트 문자열을 순열화하도록 배열된다.
예컨대, 제 1 부분은 제 1 또는 제 2 노이지 비트 문자열의 짝수 비트들, 즉 짝수 인덱스를 가지는 비트들일 수 있고, 제 2 부분은 홀수 비트들, 즉 홀수 인덱스를 가지는 비트들일 수 있거나; 또는 그 반대도 가능하다. 예컨대, 제 2 순열은 제 1 또는 제 2 노이지 비트 문자열의 전방에 제 1 부분의 모든 비트들을 순열시킬 수 있다. 예컨대, 순열은 인덱스들의 벡터, 예컨대 어레이로서 표현될 수 있고, 인덱스들의 각각의 인덱스는 비트 위치를 나타낸다. 예컨대, 벡터는 짝수 및 홀수 비트 위치들을 함께 그룹화하기 위하여 [0,2,4,6,8,10,...,2l,1,3,5,7,9,...,2l-1]일 수 있고; 여기서 n=2l 비트들이 사용된다. 실시예에서, 임의의 코드 워드는 단지 짝수 비트 위치들로부터의 또는 단지 홀수 비트 위치들로부터의 비트들로부터만 단지 빼진다.
제 2 순열은 디바이어싱 데이터에 포함될 수 있다. 그러나, 제 2 순열은 예컨대 동일한 타입의 메모리-기반 PUF를 공유하는 유사한 PUF들을 가지는 디바이스들의 클래스(class)에 대해 고정되게 선정될 수 있다. 후자의 경우에, 제 2 순열은 미리 결정된 및 예컨대 디바이스에 저장되어 포함될 수 있다. 제 2 순열은 PUF를 판독하기 위하여 사용되는 PUF의 어드레스 디코더에 포함될 수 있다.
제 1 순열도 제 2 순열도, 비트들이 메모리에서 상이한 위치로 이동되는 것(비록 가능하지만)을 요구하지 않지만, 이는 또한 비트들을 상이하게 어드레싱함으로써 구현될 수 있다는 것을 주목하라. 상이한 어드레싱은 예컨대 순열화된 어드레스들을 사용하여 소프트웨어로, 또는 예컨대 순열 어드레스 디코더를 사용하여 하드웨어로 행해질 수 있다.
도 9a는 전자 암호화 디바이스(102)의 실시예의 예를 개략적으로 도시한다. 암호화 디바이스(102)는 아래에 설명되는 것을 제외하고 디바이스(101)와 동일하다.
흥미롭게도, PUF 응답은 2개의 상이한 용도들을 위해 사용될 수 있다. 한편으로, 헬퍼 데이터를 사용하여 노이즈를 억제함으로써, PUF 응답은 암호화 키를 생성하기 위하여 사용될 수 있다. 다른 한편, 노이즈는 PUF 응답으로부터 랜덤 시드를 생성함으로써 이용될 수 있다. 제 1의 경우에서, PUF 응답의 안정성이 사용되고, 제 2 경우에서, PUF 응답의 노이즈가 사용된다.
바람직하지 않게, PUF(110)가 사양 내에 있지 않은 응답들을 생성하는 것이 발생할 수 있다. 난수를 생성하기 위하여, 특히 PUF의 노이즈 엔트로피가 중요하다. 노이즈 엔트로피는, 동일한 PUF 인스턴스를 반복적으로 측정할 때 노이즈 양에 관련된 엔트로피이다. 이것은, 난수 생성을 위하여 PUF를 사용할 때 중요하다. 고품질 랜덤 시드들이 PUF로부터 유도되는 것을 보장하기 위하여 반복된 측정들에 충분한 랜덤성이 있어야 한다.
우수한 PUF에 대해, 통상적으로, 인터(inter)-디바이스 엔트로피(디바이스들 간의 PUF 응답들의 차이들에 관련된 엔트로피)는 노이즈 엔트로피를 지배한다. 바람직하지 않게, 따라서 제 2 노이지 비트 문자열에 대한 종래의 난수 테스트, 예컨대 FIPS 140-1 테스트들은, 노이즈 엔트로피가 너무 작더라도 높은 확률로 성공할 것이다.
암호화 디바이스(102)는 물리적 복제방지 기능의 노이즈 레벨을 검증하기 위하여 재구성 페이즈 동안 통계적 테스트를 실행하도록 배열된 통계 유닛(160)을 포함한다. 통계적 테스트는 위에 표시된 제 2 문제, 즉 PUF가 랜덤 시드의 신뢰적인 생성을 위하여 너무 작은 노이즈 엔트로피를 가지는 것을 검출하는 것을 어드레싱한다.
통계적 테스트는 디바이어싱 데이터 및 제 2 노이지 비트 문자열에 대해 액세스를 가진다. 비록 디바이어싱 데이터가 제 1 노이지 비트 문자열의 비트들을 직접적으로 식별하도록 허용하지 않을 것이지만, 디바이어싱은 제 2 노이지 비트 문자열에 비교될 수 있는 제 1 노이지 비트 문자열에 관한 정보를 제공할 것이다. 실시예에서, 디바이어싱 데이터는, 어느 비트 쌍들이 제 1 노이지 비트 문자열에서 동일한지 동일하지 않은지를 표시한다. 통계적 테스트는, 제 2 노이지 비트 문자열의 동일한 비트 쌍들이 여전히 동일한지 동일하지 않은지를 검증할 수 있다. 이것이, 비트 쌍들이 변경되는 반드시 것을 불가능하게 하는 것은 아니며: 예컨대, 비트 쌍은 00에서 11로 또는 01로부터 10으로 변경되었을 수 있고; 그런 변경들을 검출하는 것은 이런 디바이어싱 데이터로 가능하지 않다. 그럼에도 불구하고, 제 1 및 제 2 노이즈 비트 문자열 간에 단지 약간의 변경들이 검출되면, PUF는 낮은 노이즈 엔트로피를 가질 공산이 있다.
실시예에서, 통계적 테스트는, 제 1 노이지 비트 문자열에서 동일하지만 제 2 노이지 비트 문자열에서 동일하지 않고 및/또는 제 1 노이지 비트 문자열에서 동일하지 않지만 제 2 노이지 비트 문자열에서 동일한 비트 쌍들의 수를 카운팅하기 위하여 디바이어싱 데이터 및 제 2 노이지 비트 문자열을 사용하도록 배열된다. 통계적 테스트는, 카운트가 임계치를 초과하면 물리적 복제방지 기능의 노이즈 레벨이 충분하다는 것을 결정한다.
임계치는 PUF의 통계적 분포, 예컨대 그의 사양에 따른 PUF의 노이즈 레이트로부터 결정될 수 있다. 게다가, 제 2 노이지 비트 문자열에서 비트들의 수 및 원하는 오탐 레이트(false positive rate)가 알려진다. 이들 파라미터들로부터, 임계치가 결정될 수 있다.
예컨대, 제 1 노이지 비트 문자열은 네거티브가 아닌 정수들(i)에 대해 비트 쌍들(b2ib2i + 1)로 나누어진 비트들(bob1b2b3 )로서 간주될 수 있다. 제 2 노이지 비트 문자열은 비트 쌍들(s2is2i +1))로 나누어진 비트들(sos1s2s3 )로서 간주될 수 있다. 통계적 테스트는, b2ib2i +1가 동일한 쌍이지만 s2is2i +1가 동일하지 않은 쌍인 i의 수 및/또는 그 정반대인 i의 수를 카운팅한다.
암호화 디바이스(102)는, 통계적 테스트가 올바르게 기능한다는 것을 표시하는 경우만 물리적 복제방지 기능에 의해 생성되는 노이즈 비트 문자열에 엔트로피 집중 함수를 적용함으로써 랜덤 시드를 생성하도록 배열된 랜덤 시드 생성 유닛(165)을 포함한다. 엔트로피 집중 함수는 더 큰 문자열, 이 경우에 더 작은 문자열(이 경우에, 랜덤 시드)의 제 2 노이지 비트 문자열(114)에 엔트로피를 집중시킨다. 엔트로피 집중 함수들의 예들은 해시 함수들, 특히 암호화 해시 함수들, 이를테면 SHA-1, 압축 함수들, 및 예컨대 NIST-SP800-90에서 정의된 바와 같은 시드를 유도하기 위한 유도 함수들 등이다.
랜덤 시드는 랜덤 시드에 따라 난수의 시퀀스를 생성하도록 배열된 의사 난수 생성기에 사용될 수 있다. 난수들은 많은 암호화 프로토콜들에 사용될 수 있고, 또한 비-암호화 애플리케이션들을 가질 수 있다. 의사 난수 생성기는 도 9a에 별도로 도시되지 않는다.
예컨대, 의사 난수 생성기는 랜덤 시트로부터 시작하여 카운터 모드에서 실행되는 블록 사이퍼(cipher), 말하자면, AES, 또는 랜덤 시트로 키잉(key)되는 RC4 같은 스트림 사이퍼, 랜덤 시드로 시드닝(seed)되는 포르투나(Fortuna) 등일 수 있다.
이론적으로, PUF가 올바르게 작동하면, 예컨대 충분히 안정적이고 랜덤하면, 동일한 제 2 노이지 비트 문자열은 암호화 키를 재구성하고 랜덤 시드를 유도하기 위하여 사용될 수 있다. 랜덤 시드는 정정되지 않은 제 2 노이지 비트 문자열로부터 컴퓨팅되는 반면, 암호화 키는 정정된 제 2 노이지 비트 문자열로부터 재구성된다. 예컨대, 실시예에서, 랜덤 시드 생성 유닛(165)은, 통계적 테스트가 올바르게 기능하고 있는 것을 표시하는 경우만, 엔트로피 집중 함수를 제 2 노이지 비트 문자열에 적용함으로써 랜덤 시드를 생성하도록 배열된다. 랜덤 시드가 충분히 길고 충분히 랜덤하면, 정정되지 않은 제 2 노이지 비트 문자열의 노이즈는 정정되지 않은 제 2 노이지 비트에 존재하는 임의의 정보를 지배할 것이다. 이 경우에, 강한 비-가역적 엔트로피 집중 함수, 예컨대 암호화 해시 함수가 바람직하다.
그러나, 암호화 키에 대한 정보가 난수 생성을 통해 누설될 수 있는 임의의 기회를 회피시키기 위하여, 상이한 PUF 응답이 랜덤 시드를 생성하기 위하여 사용될 수 있다. 예컨대, 실시예에서, 물리적 복제방지 기능(110)은 재구성 페이즈 동안 제 2 노이지 비트 문자열(114) 및 추가 노이지 비트 문자열(116)을 생성하도록 배열되고, 제 2 노이지 비트 문자열(114) 및 추가 노이지 비트 문자열(116)은 오버랩핑하지 않는다. 랜덤 시드 생성 유닛(165)은, 통계적 테스트가 올바르게 기능하고 있다는 것을 표시하는 경우만 엔트로피 집중 함수를 추가 노이지 비트 문자열에 적용하도록 배열된다. 이것은, 난수들이 암호화 키에 대한 정보를 누설할 수 없다는 장점을 가진다.
예컨대, 실시예에서, PUF는 메모리 기반이고, 제 1 및 제 2 노이지 비트 문자열은 제 1 메모리 어드레스들로부터 획득되고, 그리고 추가 노이지 비트 문자열은 제 2 메모리 어드레스들로부터 획득되고, 제 1 및 제 2 메모리 어드레스들은 상이하고 바람직하게 오버랩핑하지 않는다. 제 1 및 제 2 노이지 비트 문자열은 동일한 제 1 챌린지에 대한 응답, 예컨대 동일한 어드레스들로서 간주될 수 있고; 추가 노이지 비트 문자열은 제 1 챌린지와 상이한 제 2 챌린지에 대한 응답, 예컨대 상이한 어드레스들로서 간주될 수 있다. 다른 PUF들은 상기 방식으로 사용될 수 있고, 예컨대 지연 PUF는 제 1 및 제 2 노이지 비트 문자열들을 생성하기 위하여 제 1 챌린지로 챌린지되고 추가 노이지 비트 문자열을 생성하기 위하여 재구성 동안 제 2 챌린지로 챌린지될 수 있다.
도 9a는 추가 노이지 비트 문자열(116)을 사용하는 실시예를 도시한다. 예컨대, 통계적 테스트 또는 테스트들은 제 2 노이지 비트 문자열(114) 및 디바이어싱 데이터(142)에 대해 수행된다. PUF가 그의 사양 내에서 작동하고 있다는 것, 예컨대 충분한 엔트로피 또는 충분한 노이즈를 갖는다는 것 등을 통계적 테스트가 표시하면, 랜덤 시드가 이제 추가 노이지 비트 문자열(116)로부터 유도된다. 실시예에서, 제 2 및 추가 노이지 비트 문자열들은, 그들이 PUF의 다른 부분으로부터 획득됨에 따라 통계적으로 무관한 반면, 제 1 및 제 2 비트 문자열들은 노이즈를 제외하고 동일하다.
실험들은, 제 2 노이지 비트 문자열로부터 컴퓨팅된 통계들이 전체 PUF 및 따라서 또한 추가 노이지 비트 문자열을 표현한다는 것을 나타낸다. 이런 관계는 제 2 및 추가 노이지 비트 문자열을 인터리빙(interleaving)함으로써 추가로 개선될 수 있다. 예컨대, PUF는 메모리 기반 PUF일 수 있고, 제 1 및 제 3 메모리 어드레스는 추가 비트 문자열에 기여하고, 제 2 및 제 4 메모리 어드레스는 제 2 비트 문자열에 기여하고, 제 1 어드레스는 제 2 어드레스보다 작고, 제 2 어드레스는 제 3 어드레스보다 작고, 제 3 어드레스는 제 4 어드레스보다 작다.
도 9b는 도 6의 데이터를 사용하는 상이한 실시예들을 예시한다. 도 9b는 비트 쌍들의 시퀀스(613), 디바이어싱 데이터(642) 및 제 2 PUF 응답(622)으로 나누어진 제 1 PUF 응답(612)을 도시한다. 비록 이(전체) 제 1 노이지 비트 문자열이 재구성 동안 이용가능하지 않을 수 있지만, 디바이어싱 데이터(642)로부터, 제 1 노이지 비트 문자열에서 어느 비트 쌍들이 동일하고 어느 비트 쌍들이 동일하지 않은지가 결정될 수 있고; 이 경우에 디바이어싱 데이터(642)의 제로 쌍들은 제 1 노이지 비트 문자열(612)의 동일한 쌍을 표시하고 디바이어싱 데이터(642)에서 하나의 쌍들은 제 1 노이지 비트 문자열(612)에서 동일하지 않은 쌍을 표시한다.
실시예에서, 통계 유닛은,
- 디바이어싱 데이터로부터, 제 1 비트 문자열에서 동일하지 않은 비트 쌍들을 결정하고,
- 제 2 노이지 비트 문자열의 비트 쌍과 동일하고 그리고 제 1 비트 문자열의 비트 쌍과 동일하지 않은 제 2 노이지 비트 문자열의 비트 쌍들의 수를 카운팅하여, 제 1 수를 획득하고 ― 도 9b에서, 이런 쌍들은 중괄호로 표시됨. 제 1 수는 참조번호 632로 주어지고, 이는 이 예에서 1임 ―,
- 제 1 수가 제 1 임계치를 초과하면 물리적 복제방지 기능의 노이즈 레벨을 검증하도록 배열되고,
실시예에서, 통계 유닛은,
- 디바이어싱 데이터로부터, 제 1 비트 문자열에서 동일한 비트 쌍들을 결정하고,
- 제 2 노이지 비트 문자열의 비트 쌍과 동일하지 않고 그리고 제 1 비트 문자열의 비트 쌍과 동일한 제 2 노이지 비트 문자열의 비트 쌍들의 수를 카운팅하여, 제 2 수를 획득하고 ― 도 9b에서, 이런 쌍들은 중괄호로 표시됨. 제 2 수는 참조번호 634로 주어지고, 이는 이 예에서 4임 ―,
- 제 2 수가 제 2 임계치를 초과하면 물리적 복제방지 기능의 노이즈 레벨을 검증하도록 배열된다.
실시예에서, 이 두 개의 결합이 카운팅되며, 이는 카운트에 대한 제 1 및 제 2 수의 합산이 될 것이며; 이 경우에 5이다.
실제 예
본원에 설명된 바와 같은 디바이어싱 솔루션들의 실시예는, 이후에 폐기되거나 재구성 동안 삭제되어야 하는 동일한 비트들의 쌍들을 등록 동안 식별한다. 테스트의 실시예는, 재구성 동안, 특정 사이즈의 PUF 블록의 이들 마킹된 쌍들이 효과적으로 동일한 비트들을 포함하는지 체킹하고, 그렇지 않은 쌍들의 수를 카운팅하고, 그리고 이 수가 마킹된 쌍들의 총 수에 관하여 특정 임계치를 초과하는 것을 검증한다. 이런 임계치는 블록 사이즈, 요구된 PUF 노이즈-엔트로피 파라미터들 및 원하는 오탐 레이트에 기반하여 미리 결정될 수 있다.
동일한 작동에 기반하는 다른 테스트 통계치들(동일하게 마킹된 동일하지 않은 쌍들의 총 수 대신), 예컨대 동일하게 마킹된 동일하지 않은 쌍들 간의/간에서 가장 긴 것이 사용될 수 있다.
이런 테스트는, PUF 응답이 등록과 재구성 간에 재평가되는 것을 요구한다. 그렇지 않은 경우, 이 테스트는 의미있는 결과를 생성할 수 없고 수행되지 않거나 무시된다.
이 예에서: PUF 응답의 1 킬로바이트(8192 비트) 부분(추가 노이지 비트 문자열)은 보안 강도 128-비트로 DRBG를 시딩하기 위하여 사용된다. [NIST, SP800-90A, Recommendation for Random Number Generation Using Deterministic Random Bit Generators]에 따라, 이런 PUF 응답 데이터의 노이즈의 최소-엔트로피는 적어도 192 비트여야 한다. 이런 PUF가 최대 [30%-70%]까지 바이어싱될 수 있다는 것은 알려졌다. 그런 PUF가 8192 비트들을 갖는 충분한 노이즈 최소-엔트로피를 제공하게 하기 위하여, 이의 (평균) 비트 에러 레이트는 적어도 2.9%이도록 결정된다.
이런 PUF 응답의 다른 부분(6864 비트)(제 1 및 제 2 노이지 비트 문자열)은 키 생성을 위해 사용된다. 이 부분은 DRBG를 시딩하기 위하여 사용된 부분과 완전히 분리될 수 있지만, 이들이 동일한 PUF로부터 발생하기 때문에, 이들이 바이어스 및 비트 에러 레이트에 관하여 동일한 품질들을 가지는 것이 가정된다. 키 생성에 사용되는 부분은 폰 노이만-기반 디바이어싱 사전-프로세싱(본원에서 설명된 바와 같은)과 조합하여 코드-오프셋 헬퍼 데이터 구성을 전개하는 에러-정정 메커니즘을 통과한다. 디바이어싱 사전-프로세싱은, 이후 재구성들 동안 결과적으로 무시되는(폐기되거나 삭제되는) 동일한 비트들의 쌍들을 등록 동안 검출한다.
테스트 세부사항들:
키 재구성 동안, 디바이어싱을 가지는 키 생성기가 동일하여야 하는 비트 쌍들의 지식을 가지기 때문에, 동일한 것으로 마킹되지만 재구성 동안 더 이상 동일하지 않은 비트 쌍들의 수를 관찰함으로써 평균 비트 에러 레이트의 추정치를 얻을 수 있다. 분석에서, 본 발명자들은 PUF를 독립적이고 동일하게 분포된 비트들을 가지는 것으로 모델링했다.
바이어스(p) 및 평균 비트 에러 레이트(pe)를 가지는 동일하게 독립적으로 분포된(i.i.d.) 비트들을 가진 PUF 응답에 대해, 동일한 비트 쌍을 관찰할 확률은 (1-p)2 + p2이고, n-비트 PUF 응답에서 관찰된 동일한 비트 쌍들의 수는 파라미터들 (floor(n/2), (1-p)2 + p2)로 이항식으로 분포된다. 이런 쌍이 등록 동안 동일한 것으로 마킹되었다면, 재구성 동안 동일하지 않은 비트 쌍을 관찰할 확률은 다음과 같이 결정될 수 있다:
Prob(동일하지 않은 쌍 @ 재구성 | 동일한 쌍 @ 등록)
= 2*(1-pe/(2(1-p)))*(pe/(2(1-p)))*(1-p)2/((1-p)2+p2)+2*(1-pe/(2p))*(pe/(2p))*p2/((1-p)2+p2)
= pe*(1-pe)/(p2+(1-p)2).
결과적으로, 재구성에서 동일하지 않은 동일한 쌍을 등록에서 관찰할 확률은 아래와 같이 된다:
Prob(동일하지 않은 쌍@재구성 및 동일한 쌍@등록)
= Prob(동일하지 않은 쌍@재구성|동일한 쌍@등록) * Prob(동일한 쌍@등록)
= (pe*(1-pe))/(p2+(1-p)2)*((1-p)2+p2)
= pe*(1-pe).
흥미롭게, 이런 확률은 PUF 응답의 바이어스에 무관하지만, 평균 비트 에러 레이트에만 따른다. 이것은, 이것이 발생하는 비트 쌍들의 수가 단지 평균 비트 에러 레이트에만 따른다는 것을 의미하며, 이 수의 관찰은 평균 비트 에러 레이트 레벨을 평가하기 위하여 사용될 수 있다.
이 결과에 기반하여, 등록 동안 동일한 것으로 마킹되었지만 재구성에서 동일하지 않은 관찰된 쌍들의 수에 대한 하한 임계치는 다음과 같이 세팅될 수 있는데, 주어진 예에 대해:
T = BinoCDF-1(10-6; 6864/2, 2.9% * (1 - 2.9%)) = 54이다.
따라서, 평균 비트 에러 레이트가 충분히 높으면, 높은 확률(> 1-10- 6)로, 54보다 많은 이들 비트 쌍들이 관찰되어야 한다. 그렇지 않으면, 폰 노이만 디바이어싱 쌍 동일성 테스트가 오류를 출력할 것이다. 이 예시적 키 생성기에 대한 이런 테스트의 기본적인 흐름은 도 10에 도시된다. 이런 상황에서 오류 테스트가 원칙적으로 디바이어싱 및/또는 키 생성 자체에 어떠한 결과도 갖지 않고; 테스트 결과(디바이어싱에 기반함)가 DRBG의 시딩을 위해서만 중요성을 가지는 것을 주목하라.
도 11은 허용가능한 비트 에러 레이트 ≥ 2.9%에 대해 오류 레이트가 < 10-6을 갖도록 조정된 폰 노이만 디바이어싱 쌍 동일성 테스트에 대한 오류 레이트 곡선을 도시한다. 이런 특정 테스트는, 6864-비트 PUF 응답 부분에서 등록시 동일하다고 마킹된 관찰된 동일한 비트 쌍들의 수가 54보다 작으면 오류를 출력한다. 테스트의 오류는 이 테스트에 따라, 비트 에러 레이트(노이즈 최소-엔트로피)가 수용가능하지 않다는 것을 의미한다.
오류를 출력하는 테스트의 확률은 PUF의 실제 리얼(real) 비트 에러 레이트에 따른다. 제시된 예에 대해, 이런 관계는 도 11에 도시된다. 이 곡선은, 2.9% 보다 큰 수용가능한 비트 에러 레이트들에 대해, 테스트의 오류 레이트가 < 10-6인 것을 도시한다(따라서, 테스트는 수용가능한 비트 에러 레이트를 가진 PUF를 잘못 거절하는 것에 대해 매우 작은 오류-거절 레이트 < 10- 6를 가짐). 그러나, 평균 비트 에러 레이트가 수용가능한 제한보다 더 작으면, 테스트의 오류 레이트는 10-6을 초과하여 상승하고 평균 비트 에러 레이트 < 1.3%에 대해 100%에 근사한다(수용가능하지 않은 평균 비트 에러 레이트들의 특정 인터벌이 존재하는데, 이는 대략 [1.3%...2.6%]이며, 이것은 테스트에 의해 100%-확실성으로 검출되지 않음).
통상적으로, 디바이어싱 데이터 생성, 노이즈 감소 데이터 생성, 및/또는 키 재구성을 실행하기 위한 디바이스, 이를테면 디바이스들(100 및 101) 각각은 디바이스들(100, 101)에 저장된 적절한 소프트웨어를 실행하는 마이크로프로세서(도시되지 않음)를 포함하고; 예컨대, 그 소프트웨어는 대응하는 메모리, 예컨대 휘발성 메모리 이를테면 RAM 또는 비-휘발성 메모리 이를테면 플래시(도시되지 않음)에 다운로드되고 및/또는 저장될 수 있다. 대안적으로, 디바이스들(100 및 101)은, 전체적으로 또는 부분적으로, 프로그램가능 로직, 예컨대 FPGA(field-programmable gate array)로 구현될 수 있다. 디바이스들(100 및 101)은, 전체적으로 또는 부분적으로, 소위 ASIC(application-specific integrated circuit), 즉 이들 특정 용도를 위하여 맞추어진 집적 회로(IC)로서 구현될 수 있다.
실시예에서, 전자 암호화 디바이스는 디바이어싱 회로 및 키 재구성 회로를 포함한다. 전자 암호화 디바이스는 또한 노이즈-감소 회로, 에러 정정기 회로, 신뢰성 정보 추출기 회로, 연판정 디코더 회로, 통계적 테스트 회로, 랜덤 시드 생성기 회로 중 하나 또는 그 초과를 포함할 수 있다. 회로들은 본원에 설명되는 대응하는 유닛들을 구현한다. 회로들은 프로세서 회로 및 저장 회로일 수 있고, 프로세서 회로는 저장 회로들에 전자적으로 표현된 명령들을 실행한다. 회로들은 또한 FPGA, ASIC 등일 수 있다.
도 7은 암호화 키를 결정하도록 배열된 전자 암호화 방법(700)의 실시예를 개략적으로 예시한다. 방법(700)은 등록 페이즈(710) 및 추후 재구성 페이즈(720)를 가진다.
등록 페이즈(710)는,
- 물리적 복제방지 기능(PUF)(110)을 사용하여 제 1 노이지 비트 문자열을 생성하는 단계(712),
- 제 1 노이지 비트 문자열에서 바이어스를 감소시키기 위하여 제 1 노이지 비트 문자열로부터 디바이어싱 데이터를 결정하는 단계(714)를 포함하고, 디바이어싱 데이터는 제 1 노이지 비트 문자열의 비트들을 유지되는 것 또는 폐기되는 것으로 마킹하고,
재구성 페이즈(720)는,
- 물리적 복제방지 기능(PUF)(110)을 사용하여 제 2 노이지 비트 문자열을 생성하는 단계(722),
- 디바이어싱 데이터에 의해 유지되는 것으로 마킹된 제 2 노이지 비트 문자열의 비트들로부터 암호화 키를 결정하는 단계(724)를 포함하고, 암호화 키는 디바이어싱 데이터에 의해 폐기되는 것으로 마킹된 제 2 노이지 비트 문자열의 비트들과 무관하다.
암호화 키는 또한 등록 페이즈 동안, 그것이 편리하다면, 예컨대 유지되는 것으로 마킹되는 제 1 노이지 비트 문자열의 비트들로부터 결정될 수 있다.
당업자에게 자명할 바와 같이, 방법(700)을 실행하는 많은 상이한 방식들이 가능하다. 예컨대, 단계들의 순서는 가변되거나 일부 단계들은 동시에 실행될 수 있다. 게다가, 단계들 중간에(in between) 다른 방법 단계들이 삽입될 수 있다. 삽입된 단계들은 본원에 설명된 바와 같은 방법의 개선dks들을 표현할 수 있거나, 또는 그 방법과 관련되지 않을 수 있다. 게다가, 주어진 단계는, 다음 단계가 시작되기 전에 완전히 완료되지 않을 수 있다.
본 발명에 따른 방법은 프로세서 시스템으로 하여금 방법(700)을 수행하게 하기 위한 명령들을 포함하는 소프트웨어를 사용하여 실행될 수 있다. 소프트웨어는 단지 시스템의 특정 서브-엔티티에 의해 취해지는 그런 단계들만을 포함할 수 있다. 소프트웨어는 적절한 저장 매체, 이를테면 하드 디스크, 플로피, 메모리 등에 저장될 수 있다. 소프트웨어는 신호로서 유선, 또는 무선을 따라, 또는 데이터 네트워크, 예컨대 인터넷을 사용하여 전송될 수 있다. 소프트웨어는 다운로드를 위하여 및/또는 서버상에서의 원격 사용을 위하여 이용가능해질 수 있다. 본 발명에 따른 방법은, 방법을 수행하기 위하여, 프로그램가능 로직, 예컨대 FPGA(field-programmable gate array)를 구성하도록 배열된 비트 스트림을 사용하여 실행될 수 있다.
본 발명이 또한 컴퓨터 프로그램들, 본 발명을 실시하게 하도록 적응된 특히 캐리어(carrier) 상의 또는 캐리어 내의 컴퓨터 프로그램들로 확장된다는 것이 인지될 것이다. 프로그램은 소스 코드, 객체 코드, 코드 중간 소스 및 객체 코드 이를테면 부분적으로 컴파일링된 형태, 또는 본 발명에 따른 방법의 구현에 사용하기에 적절한 임의의 다른 형태일 수 있다. 컴퓨터 프로그램 제품에 관련된 실시예는 설명된 방법들 중 적어도 하나의 방법에 대한 프로세싱 단계들 각각에 대응하는 컴퓨터 실행가능 명령들을 포함한다. 이들 명령들은 서브루틴들로 세분될 수 있고 및/또는 정적으로 또는 동적으로 링크될 수 있는 하나 또는 그 초과의 파일들에 저장될 수 있다. 컴퓨터 프로그램 제품에 관련된 다른 실시예는 설명된 시스템들 및/또는 제품들 중 적어도 하나의 시스템 및/또는 방법에 대한 수단들 각각에 대응하는 컴퓨터 실행가능 명령들을 포함한다.
도 8a는 컴퓨터 프로그램(1020)을 포함하는 기입가능 부분(1010)을 가지는 컴퓨터 판독가능 매체(1000)를 도시하고, 컴퓨터 프로그램(1020)은, 프로세서 시스템으로 하여금, 실시예에 따라 암호화 키를 결정하기 위한 방법을 수행하게 하기 위한 명령들을 포함한다. 컴퓨터 프로그램(1020)은 컴퓨터 판독가능 매체(1000) 상에 물리적 마크들로서 또는 컴퓨터 판독가능 매체(1000)의 자화에 의해 구현될 수 있다. 그러나, 임의의 다른 적절한 실시예가 또한 고려가능하다. 게다가, 비록 컴퓨터 판독가능 매체(1000)가 여기에서 광학 디스크로서 도시되지만, 컴퓨터 판독가능 매체(1000)가 임의의 적절한 컴퓨터 판독가능 매체, 이를테면 하드 디스크, 고체 상태 메모리, 플래시 메모리 등일 수 있고, 그리고 레코딩가능하지 않거나 레코딩가능할 수 있다는 것이 인지될 것이다. 컴퓨터 프로그램(1020)은, 프로세서 시스템으로 하여금, 암호화 키를 결정하기 위한 방법의 상기 방법을 수행하게 하기 위한 명령들을 포함한다.
도 8b는 실시예에 따른 프로세서 시스템(1100)의 개략 표현을 도시한다. 프로세서 시스템은 하나 또는 그 초과의 집적 회로들(1110)을 포함한다. 하나 또는 그 초과의 집적 회로들(1110)의 아키텍처는 도 8b에 개략적으로 도시된다. 회로(1110)는 실시예에 따른 방법을 실행하고 및/또는 이의 모듈들 또는 유닛들을 구현하기 위한 컴퓨터 프로그램 컴포넌트들을 실행하기 위한 프로세싱 유닛(1120), 예컨대 CPU를 포함한다. 회로(1110)는 프로그래밍 코드, 데이터 등을 저장하기 위한 메모리(1122)를 포함한다. 메모리(1122)의 일부는 판독-전용일 수 있다. 회로(1110)는 통신 엘리먼트(1126), 예컨대 안테나, 연결기들 또는 이 둘 모두 등을 포함할 수 있다. 회로(1110)는 방법에서 정의된 프로세싱의 일부 또는 모두를 수행하기 위한 전용 집적 회로(1124)를 포함할 수 있다. 프로세서 시스템(1100)은 실시예에 사용하기 위한 PUF(1128)를 포함할 수 있다. 프로세서(1120), 메모리(1122), 전용 IC(1124), PUF(1128) 및 통신 엘리먼트(1126)는 상호연결부(1130), 말하자면, 버스를 통하여 서로 연결될 수 있다. 프로세서 시스템(1110)은 각각 안테나 및/또는 연결기들을 사용하여 접촉 및/또는 무접촉 통신을 위하여 배열될 수 있다.
위에서-언급된 실시예들은 본 발명을 제한하기 보다 오히려 예시하고, 당업자들이 많은 대안적인 실시예들을 설계할 수 있을 것이라는 것이 주목되어야 한다.
청구항들에서, 괄호 간에 배치된 임의의 참조 부호들은 청구항을 제한하는 것으로 해석되지 않을 것이다. 동사 "포함하다" 및 이의 활용형들의 사용은 청구항에 언급된 것들 이외의 엘리먼트들 또는 단계들의 존재를 배제하지 않는다. 엘리먼트에 선행하는 단수 표현은 복수의 그런 엘리먼트들의 존재를 배제하지 않는다. 본 발명은 몇몇 별개의 엘리먼트들을 포함하는 하드웨어에 의해, 및 적절히 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 몇몇 수단을 열거하는 디바이스 청구항에서, 이들 수단 중 몇몇은 하드웨어 중 하나 및 동일한 아이템에 의해 구현될 수 있다. 단지 특정 조치들이 상호 상이한 종속항들에 나열된다는 단순한 사실은, 이들 조치들의 결합이 장점으로 사용될 수 없다는 것을 표시하지 않는다.
청구항들에서, 괄호 내의 참조부들은 실시예들의 도면들에서의 참조 부호들 또는 실시예들의 식을 지칭하여, 청구항의 명료성을 증가시킨다. 이들 참조부들은 청구항을 제한하는 것으로 이해되지 않을 것이다.
10 물리적 복제방지 기능(PUF)
11 노이지 비트 문자열
12 노이즈-감소 데이터
13 키 데이터
15 엔트로피 손실
100 전자 암호화 디바이스
101 전자 암호화 디바이스
110 물리적 복제방지 기능(PUF)
112 제 1 노이지 비트 문자열
114 제 2 노이지 비트 문자열
116 추가 노이지 비트 문자열
120 디바이어싱 유닛
130 노이즈-감소 유닛
140 저장소
142 디바이어싱 데이터
144 노이즈-감소 데이터
150 키 재구성 유닛
152 정규화기
154 에러 정정기
156 키 유도 유닛
160 통계 유닛
165 랜덤 시드(seed) 생성 유닛
412 제 1 PUF 응답
413 비트 쌍들의 시퀀스
414 디바이어싱된 제 1 PUF 응답
415 제 1 코드 워드들
422 제 2 PUF 응답
423 디바이어싱된 제 2 PUF 응답
424 노이지 코드 워드들
426 정정된 코드 워드들
427 디코딩된 코드 워드들
440 디바이어싱 및 노이즈-감소 데이터
442 디바이어싱 데이터
442' 디바이어싱 데이터
444 노이즈 감소 데이터
512 제 1 PUF 응답
513a, 513b 비트 쌍들의 시퀀스
514 디바이어싱된 제 1 PUF 응답
515 제 1 코드 워드들
522 제 2 PUF 응답
523 디바이어싱된 제 2 PUF 응답
524 노이지 코드 워드들
527 디코딩된 코드 워드들
542 디바이어싱 데이터
544 노이즈 감소 데이터
612 제 1 PUF 응답
613 비트 쌍들의 시퀀스
614 디바이어싱된 제 1 PUF 응답
615 제 1 코드 워드들
622 제 2 PUF 응답
624 디바이어싱되고 정규화된 제 2 PUF 응답
627 하드(hard) 디코딩된 코드 워드들
628 소프트(soft) 디코딩된 코드 워드들
640 디바이어싱 및 노이즈-감소 데이터
642 디바이어싱 데이터
644 노이즈 감소 데이터
630 시드들
650 제 2 코드 워드들
651 상관
652 연판정 거리

Claims (20)

  1. 암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100)로서,
    상기 암호화 디바이스는 등록 페이즈(phase) 및 이후 재구성 페이즈를 위해 배열되고, 상기 암호화 디바이스는,
    - 상기 등록 페이즈 동안 제 1 노이지(noisy) 비트 문자열(112) 및 상기 재구성 페이즈 동안 제 2 노이지 비트 문자열(114)을 생성하도록 배열된 물리적 복제방지 기능(PUF: physically unclonable function)(110),
    - 상기 제 1 노이지 비트 문자열에서 바이어스를 감소시키도록 배열된 디바이어싱 유닛(debiasing unit)(120) ― 상기 디바이어싱 유닛은 상기 등록 페이즈 동안 상기 제 1 노이지 비트 문자열로부터 디바이어싱 데이터(142)를 결정하도록 배열되고, 상기 디바이어싱 데이터는 상기 제 1 노이지 비트 문자열의 비트들을 유지되는 것 또는 폐기되는 것으로 마킹(mark)함 ―,
    - 상기 디바이어싱 데이터에 의해 유지되는 것으로 마킹된 상기 제 2 노이지 비트 문자열의 비트들로부터 상기 암호화 키를 결정하도록 배열된 키 재구성 유닛(150)
    을 포함하고,
    상기 암호화 키는 상기 디바이어싱 데이터에 의해 폐기되는 것으로 마킹된 상기 제 2 노이지 비트 문자열의 비트들과 무관한,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100).
  2. 제 1 항에 있어서,
    상기 제 1 노이지 비트 문자열 및 상기 제 2 노이지 비트 문자열은 각각 상기 제 1 비트 쌍들의 시퀀스 및 상기 제 2 비트 쌍들의 시퀀스로 파티셔닝(partition)되고,
    - 상기 디바이어싱 유닛은 상기 제 1 비트 쌍들의 시퀀스에서 동일하지 않은 비트 쌍들을 식별하도록 배열되고, 동일하지 않은 비트 쌍은 2개의 동일하지 않은 비트들을 포함하고, 동일한 비트 쌍은 2개의 동일한 비트들을 포함하고, 상기 디바이어싱 데이터는 상기 제 1 노이지 비트 문자열의 동일하지 않은 비트 쌍들을 유지되는 것으로 마킹하는,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100).
  3. 제 2 항에 있어서,
    - 상기 디바이어싱 유닛은 상기 비트 쌍들의 시퀀스에서 제 1 동일한 비트 쌍 및 제 2 동일한 비트 쌍을 식별하도록 배열되고, 상기 제 1 동일한 비트 쌍은 상기 제 2 동일한 비트 쌍의 역(inverse)이고, 상기 디바이어싱 데이터는 적어도 상기 제 1 동일한 비트 쌍을 유지되는 것으로 마킹하는,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100).
  4. 제 2 항에 있어서,
    - 상기 디바이어싱 유닛은 상기 비트 쌍들의 시퀀스에서 제 1 세트의 동일한 비트 쌍들 및 제 2 세트의 동일한 비트 쌍들을 식별하도록 배열되고, 상기 제 1 세트 및 상기 제 2 세트는 동일한 사이즈를 가지며, 상기 제 1 세트의 모든 동일한 비트 쌍들은 동일하고, 상기 제 2 세트의 모든 동일한 비트 쌍들은 동일하고, 상기 제 1 세트의 비트 쌍들은 상기 제 2 세트의 비트 쌍들의 역이고, 상기 디바이어싱 데이터는 적어도 상기 제 1 세트의 동일한 비트 쌍을 유지되는 것으로 마킹하는,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100).
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    유지되는 것으로 상기 디바이어싱 정보에 의해 마킹되는 상기 제 1 비트 문자열의 비트들은 상기 제 1 노이지 비트 문자열보다 더 낮은 바이어스를 가지는,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100).
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    - 상기 등록 페이즈 동안, 제 1 에러 정정 코드로부터 하나 또는 그 초과의 제 1 코드 워드들을 획득하고, 상기 하나 또는 그 초과의 코드 워드들로부터, 유지되는 것으로 상기 디바이어싱 데이터에 의해 마킹된 상기 제 1 노이지 비트 문자열의 비트들에 대한 노이즈-감소 데이터(144)를 결정하도록 배열된 노이즈-감소 유닛(130),
    - 재구성 페이즈 동안, 상기 디바이어싱 데이터에 의해 유지되는 것으로 마킹된 상기 제 2 노이지 비트 문자열의 비트들에 노이즈-감소 데이터를 적용하도록 배열된, 상기 하나 또는 그 초과의 제 1 코드 워드들 및 노이즈를 결정하는 정규화기(152), 및
    - 상기 하나 또는 그 초과의 노이지 제 1 코드 워드들을 정정하도록 배열된 에러 정정기(154)
    를 포함하는,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100).
  7. 제 6 항에 있어서,
    - 상기 노이즈-감소 데이터는 상기 디바이어싱 정보에 의해 유지되는 것으로 마킹된 상기 제 1 비트 문자열의 비트들과 상기 하나 또는 그 초과의 코드 워드들 간의 차이를 포함하고, 상기 노이즈-감소 데이터는 상기 디바이어싱 정보에 의해 폐기되는 것으로 마킹된 상기 제 1 비트 문자열의 비트들과 상기 하나 또는 그 초과의 코드 워드들의 비트들 간의 차이를 포함하지 않는,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100).
  8. 제 6 항 또는 제 7 항에 있어서,
    - 상기 하나 또는 그 초과의 코드 워드들의 비트들은 상기 제 1 노이지 비트 문자열의 비트들에 대응하고, 상기 노이즈-감소 데이터는 상기 디바이어싱 정보에 의해 유지되는 것으로 마킹된 상기 제 1 비트 문자열의 비트들과, 상기 제 1 노이지 비트 문자열의 유지되는 비트들에 대응하는 상기 하나 또는 그 초과의 코드 워드들의 비트들 간의 차이를 포함하는,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100).
  9. 제 8 항에 있어서,
    - 상기 제 1 노이지 비트 문자열의 유지되는 비트들에 대응하는 하나 또는 그 초과의 코드 워드들의 비트들은 각각 하나 또는 그 초과의 코드 워드들 및 상기 제 1 노이지 비트 문자열에서 동일한 인덱스를 가지는,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100).
  10. 제 8 항 또는 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 디바이어싱 유닛은 상기 제 1 노이지 비트 문자열의 모든 동일하지 않은 비트 쌍들을 유지되는 것으로 마킹하고 모든 동일한 비트 쌍들을 상기 디바이어싱 데이터에서 폐기되는 것으로 마킹하도록 배열되는,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100).
  11. 제 3 항 또는 제 6 항에 있어서,
    - 상기 비트 쌍들의 시퀀스에서 제 2 동일한 비트 쌍은, 상기 제 1 비트 쌍 및 상기 제 2 비트 쌍이 상기 하나 또는 그 초과의 코드 워드들의 동일한 코드 워드와의 차이에 사용되는 경우 상기 디바이어싱 데이터에 의해 유지되는 것으로 마킹되고 그렇지 않으면 폐기되는 것으로 마킹되는,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100).
  12. 제 3 항 또는 제 6 항에 있어서,
    - 상기 디바이어싱 유닛은, 상기 제 1 동일한 비트 쌍 및 상기 제 2 동일한 비트 쌍이 상기 하나 또는 그 초과의 코드 워드들의 동일한 코드 워드와의 차이에 사용되도록, 상기 제 1 비트 쌍들의 시퀀스의 제 1 순열(permutation)을 결정하도록 배열되고, 상기 키 재구성 유닛은 제 1 순열을 상기 제 2 비트 쌍들의 시퀀스에 적용하도록 배열되는,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100).
  13. 제 6 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 노이즈-감소 유닛은 제 2 에러 정정 코드로부터 하나 또는 그 초과의 제 2 코드 워드들을 인코딩함으로써 상기 제 1 에러 정정 코드로부터 상기 하나 또는 그 초과의 제 1 코드 워드들을 선택하도록 배열되는,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100).
  14. 제 13 항에 있어서,
    - 상기 하나 또는 그 초과의 노이지 제 1 코드 워드들의 정정 신뢰성을 표시하는 신뢰성 정보를 결정하도록 구성된 신뢰성 정보 추출기,
    - 상기 신뢰성 정보를 사용하여 상기 하나 또는 그 초과의 제 2 코드 워드들을 디코딩하도록 구성된 연판정(soft decision) 디코더
    를 포함하는,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100).
  15. 제 6 항 내지 제 14 항 중 어느 한 항에 있어서,
    상기 디바이어싱 유닛(120)은,
    - 상기 제 1 노이지 비트 문자열의 비트들을 유지되는 것 또는 폐기되는 것으로 마킹하기 전에, 상기 제 1 노이지 비트 문자열의 제 1 부분 및 제 2 부분의 비트들을 함께 그룹화하기 위하여 제 2 순열에 의해 상기 제 1 노이지 비트 문자열을 순열화하도록 배열되고, 상기 제 1 노이지 비트 문자열의 제 1 부분 및 제 2 부분은 각각 제 1 바이어스 레벨 및 제 2 바이어스 레벨을 가지며,
    상기 키 재구성 유닛(150)은,
    - 상기 제 2 노이지 비트 문자열의 비트들을 상기 디바이어싱 데이터에 의해 유지되는 것으로 결정하기 전에, 상기 제 2 노이지 비트 문자열의 제 1 부분 및 제 2 부분의 비트들을 함께 그룹화하기 위하여 상기 제 2 순열에 의해 상기 제 2 노이지 비트 문자열을 순열화하도록 배열되는,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100).
  16. 제 6 항 내지 제 15 항 중 어느 한 항에 있어서,
    상기 제 1 에러 정정 코드는 반복 코드인,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(100).
  17. 제 2 항 또는 제 10 항에 있어서,
    - 상기 물리적 복제방지 기능의 노이즈 레벨을 검증하기 위하여 상기 재구성 페이즈 동안 통계적 테스트를 실행하도록 배열된 통계 유닛(160)을 포함하고,
    - 상기 통계적 테스트는, 상기 제 1 노이지 비트 문자열에서 동일하지만 상기 제 2 노이지 비트 문자열에서 동일하지 않고 및/또는 상기 제 1 노이지 비트 문자열에서 동일하지 않지만 상기 제 2 노이지 비트 문자열에서 동일한 비트 쌍들의 수를 카운팅(count)하기 위하여 상기 디바이어싱 데이터 및 상기 제 2 노이지 비트 문자열을 사용하고, 그리고 카운트가 임계치를 초과하면 상기 물리적 복제방지 기능의 노이즈 레벨을 충분한 것으로 검증하도록 배열되는,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(102).
  18. 제 17 항에 있어서,
    - 상기 통계적 테스트가 올바르게 기능한다는 것을 표시하는 경우만, 상기 물리적 복제방지 기능에 의해 생성된 노이즈 비트 문자열에 엔트로피 집중 기능(entropy concentration function)을 적용함으로써 랜덤 시드(random seed)를 생성하도록 배열된 랜덤 시드 생성 유닛(165)을 포함하고,
    - 상기 랜덤 시드 생성 유닛(165)은 상기 제 2 노이지 비트 문자열에 상기 엔트로피 집중 기능을 적용하도록 배열되거나,
    또는,
    - 상기 물리적 복제방지 기능(PUF)(110)은 상기 재구성 페이즈 동안 추가 노이지 비트 문자열(116)을 생성하도록 배열되고, 상기 제 2 노이지 비트 문자열(114)은 상기 추가 노이지 비트 문자열과 상이하고, 그리고
    - 상기 랜덤 시드 생성 유닛(165)은 상기 추가 노이지 비트 문자열에 상기 엔트로피 집중 함수를 적용하도록 배열되는,
    암호화 키를 결정하도록 배열된 전자 암호화 디바이스(102).
  19. 암호화 키를 결정하도록 배열되는 전자 암호화 방법으로서,
    상기 암호화 방법은 등록 페이즈 및 이후 재구성 페이즈를 포함하고,
    - 상기 등록 페이즈는,
    - 물리적 복제방지 기능(PUF)(110)을 사용하여 제 1 노이지 비트 문자열을 생성하는 단계,
    - 상기 제 1 노이지 비트 문자열에서 바이어스를 감소시키기 위하여 상기 제 1 노이지 비트 문자열로부터 디바이어싱 데이터를 결정하는 단계를 포함하고, 상기 디바이어싱 데이터는 상기 제 1 노이지 비트 문자열의 비트들을 유지되는 것 또는 폐기되는 것으로 마킹하고,
    - 상기 재구성 페이즈는,
    - 상기 물리적 복제방지 기능(PUF)(110)을 사용하여 제 2 노이지 비트 문자열을 생성하는 단계,
    - 상기 디바이어싱 데이터에 의해 유지되는 것으로 마킹된 상기 제 2 노이지 비트 문자열의 비트들로부터 상기 암호화 키를 결정하는 단계를 포함하고, 상기 암호화 키는 상기 디바이어싱 데이터에 의해 폐기되는 것으로 마킹된 상기 제 2 노이지 비트 문자열의 비트들과 무관한,
    암호화 키를 결정하도록 배열되는 전자 암호화 방법.
  20. 프로그램가능 장치에 로딩가능한 데이터를 포함하는 비-일시적 유형의 컴퓨터 판독가능 저장 매체로서,
    상기 데이터는 상기 프로그램가능 장치에 의해 실행가능한 명령들을 표현하고, 상기 명령들은:
    - 물리적 복제방지 기능(PUF)(110)으로부터 제 1 노이지 비트 문자열을 획득하도록 배열된 하나 또는 그 초과의 획득 명령들,
    - 상기 제 1 노이지 비트 문자열에서 바이어스를 감소시키기 위하여 상기 제 1 노이지 비트 문자열로부터 디바이어싱 데이터를 결정하도록 배열된 하나 또는 그 초과의 결정 명령들 ― 상기 디바이어싱 데이터는 상기 제 1 노이지 비트 문자열의 비트들을 유지되는 것 또는 폐기되는 것으로 마킹함 ―,
    - 상기 물리적 복제방지 기능(PUF)(110)으로부터 제 2 노이지 비트 문자열을 획득하도록 배열된 하나 또는 그 초과의 획득 명령들,
    - 상기 디바이어싱 데이터에 의해 유지되는 것으로 마킹된 상기 제 2 노이지 비트 문자열의 비트들로부터 암호화 키를 결정하기 위한 하나 또는 그 초과의 결정 명령
    을 포함하고,
    상기 암호화 키는 상기 디바이어싱 데이터에 의해 폐기되는 것으로 마킹된 상기 제 2 노이지 비트 문자열의 비트들과 무관한,
    비-일시적 유형의 컴퓨터 판독가능 저장 매체.
KR1020177020609A 2014-12-24 2015-12-03 물리적 복제방지 기능으로부터 암호화 키 생성 KR102458727B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP14200283 2014-12-24
EP14200283.1 2014-12-24
EP15179941.8 2015-08-06
EP15179941 2015-08-06
PCT/EP2015/078454 WO2016102164A1 (en) 2014-12-24 2015-12-03 Cryptographic key production from a physical unclonable function

Publications (2)

Publication Number Publication Date
KR20170100602A true KR20170100602A (ko) 2017-09-04
KR102458727B1 KR102458727B1 (ko) 2022-10-24

Family

ID=54771120

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177020609A KR102458727B1 (ko) 2014-12-24 2015-12-03 물리적 복제방지 기능으로부터 암호화 키 생성

Country Status (6)

Country Link
US (1) US10554398B2 (ko)
EP (1) EP3238199B1 (ko)
JP (1) JP6929776B2 (ko)
KR (1) KR102458727B1 (ko)
CN (1) CN107251475B (ko)
WO (1) WO2016102164A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10476681B2 (en) 2017-10-13 2019-11-12 Samsung Electronics Co., Ltd. Semiconductor device generating security key, method of generating security key, and method of enrolling security key

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102656990B1 (ko) * 2015-08-06 2024-04-12 인트린직 아이디 비브이 물리적 복제 방지 기능을 갖는 암호화 디바이스
US10454691B2 (en) * 2016-05-24 2019-10-22 Arizona Board Of Regents On Behalf Of Northern Arizona University Systems implementing hierarchical levels of security
US10146464B2 (en) * 2016-06-30 2018-12-04 Nxp B.V. Method for performing multiple enrollments of a physically uncloneable function
US11012230B2 (en) * 2016-12-13 2021-05-18 Renesas Electronics Corporation Communication apparatus and cryptographic processing system
US11522725B2 (en) * 2017-03-29 2022-12-06 Board Of Regents, The University Of Texas System Reducing amount of helper data in silicon physical unclonable functions via lossy compression without production-time error characterization
CN107194285B (zh) * 2017-04-29 2020-05-12 苏州芯动科技有限公司 一种基于puf的密钥生成方法及数据存储方法
US10740733B2 (en) 2017-05-25 2020-08-11 Oracle International Corporaton Sharded permissioned distributed ledgers
CN110869997B (zh) * 2017-07-10 2023-08-11 本质Id有限责任公司 电子加密设备、电子登记和重构方法及计算机可读介质
US10915464B2 (en) 2017-09-12 2021-02-09 Ememory Technology Inc. Security system using random number bit string
US10649735B2 (en) * 2017-09-12 2020-05-12 Ememory Technology Inc. Security system with entropy bits
US10521616B2 (en) 2017-11-08 2019-12-31 Analog Devices, Inc. Remote re-enrollment of physical unclonable functions
JP6752247B2 (ja) * 2018-03-09 2020-09-09 三菱重工業株式会社 情報配信装置、配信対象装置、情報配信システム、情報配信方法及びプログラム
US10880101B2 (en) * 2018-04-11 2020-12-29 Taiwan Semiconductor Manufacturing Co., Ltd. Method and circuit for de-biasing PUF bits
EP3562092A1 (en) * 2018-04-26 2019-10-30 Thales Dis Design Services Sas Method for generating on-board a cryptographic key using a physically unclonable function
US10749694B2 (en) 2018-05-01 2020-08-18 Analog Devices, Inc. Device authentication based on analog characteristics without error correction
US11044107B2 (en) 2018-05-01 2021-06-22 Analog Devices, Inc. Device authentication based on analog characteristics without error correction
WO2019212849A1 (en) * 2018-05-01 2019-11-07 Analog Devices, Inc. Device authentication based on analog characteristics without error correction
WO2019241007A1 (en) 2018-06-11 2019-12-19 Cryptography Research, Inc. Generating a target data based on a function associated with a physical variation of a device
CN109035590A (zh) * 2018-06-21 2018-12-18 广东工业大学 一种智能电表及电费充值系统
CN109002883B (zh) * 2018-07-04 2020-12-29 中国科学院计算技术研究所 卷积神经网络模型计算装置及计算方法
US11277272B2 (en) * 2018-11-07 2022-03-15 Samsung Electronics Co., Ltd. Integrated circuit and method for challenge-response physically unclonable function
US11245680B2 (en) 2019-03-01 2022-02-08 Analog Devices, Inc. Garbled circuit for device authentication
US10924112B2 (en) * 2019-04-11 2021-02-16 Ememory Technology Inc. Bandgap reference circuit
GB201919297D0 (en) 2019-12-24 2020-02-05 Aronson Bill Temperature sensing physical unclonable function (puf) authenication system
US11516028B2 (en) 2019-12-24 2022-11-29 CERA Licensing Limited Temperature sensing physical unclonable function (PUF) authentication system
AU2020202883B1 (en) * 2020-01-10 2021-01-07 Mesinja Pty Ltd Systems and computer-implemented methods for generating pseudo random numbers
CA3180770A1 (en) * 2020-06-02 2021-12-09 James Plusquellic System and methods for puf-based authentication
CN112422273B (zh) * 2020-10-15 2021-09-14 湖北工业大学 一种基于比特自检puf的无偏响应去偏结构及生成方法
CN112434064B (zh) * 2020-11-19 2023-09-29 脸萌有限公司 数据处理方法、装置、介质及电子设备
US11917089B2 (en) 2021-09-28 2024-02-27 Nxp B.V. Reducing helper data size for physical unclonable function device
CN117478327B (zh) * 2023-12-27 2024-03-19 湖北工业大学 一种基于puf的冯诺依曼密钥生成器去偏算法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1510914A1 (fr) * 2003-08-28 2005-03-02 STMicroelectronics S.A. Normalisation à flux constant d'une source de bruit pour génération de nombres aléatoires
EP1610462A1 (fr) * 2004-06-24 2005-12-28 St Microelectronics S.A. Circuit et procédé de vérification de la constance de biais d'un flux de bits
EP1610463A1 (fr) * 2004-06-24 2005-12-28 STMicroelectronics S.A. Vérification d'un flux de bits

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5248328B2 (ja) 2006-01-24 2013-07-31 ヴェラヨ インク 信号発生器をベースとした装置セキュリティ
US8595274B2 (en) 2007-12-31 2013-11-26 Intel Corporation Random number generator
JP5074359B2 (ja) 2008-11-12 2012-11-14 日本電信電話株式会社 乱数生成回路
CN102783028B (zh) 2010-01-15 2016-02-03 三菱电机株式会社 比特列生成装置以及比特列生成方法
WO2013173729A1 (en) 2012-05-18 2013-11-21 Cornell University Methods and systems for providing hardware security functions using flash memories
US10129036B2 (en) * 2014-09-18 2018-11-13 Intel Corporation Post-processing mechanism for physically unclonable functions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1510914A1 (fr) * 2003-08-28 2005-03-02 STMicroelectronics S.A. Normalisation à flux constant d'une source de bruit pour génération de nombres aléatoires
EP1610462A1 (fr) * 2004-06-24 2005-12-28 St Microelectronics S.A. Circuit et procédé de vérification de la constance de biais d'un flux de bits
EP1610463A1 (fr) * 2004-06-24 2005-12-28 STMicroelectronics S.A. Vérification d'un flux de bits
US20050288925A1 (en) * 2004-06-24 2005-12-29 Stmicroelectronics, S.A. Checking of a bit flow

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Patrick Koeberl et al, "Evaluation of a PUF Device Authentication Scheme on a Discrete 0.13um SRAM", Trusted Systems (2011.11.27.)* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10476681B2 (en) 2017-10-13 2019-11-12 Samsung Electronics Co., Ltd. Semiconductor device generating security key, method of generating security key, and method of enrolling security key

Also Published As

Publication number Publication date
KR102458727B1 (ko) 2022-10-24
EP3238199A1 (en) 2017-11-01
CN107251475B (zh) 2020-07-28
US10554398B2 (en) 2020-02-04
WO2016102164A1 (en) 2016-06-30
US20180006813A1 (en) 2018-01-04
CN107251475A (zh) 2017-10-13
JP2018504827A (ja) 2018-02-15
JP6929776B2 (ja) 2021-09-01
EP3238199B1 (en) 2020-06-17

Similar Documents

Publication Publication Date Title
KR102458727B1 (ko) 물리적 복제방지 기능으로부터 암호화 키 생성
KR102656990B1 (ko) 물리적 복제 방지 기능을 갖는 암호화 디바이스
CN107004380B (zh) 包括物理不可克隆功能的加密设备
Maes et al. Secure key generation from biased PUFs
Bösch et al. Efficient helper data key extractor on FPGAs
EP2789116B1 (en) Soft decision error correction for memory based puf using a single enrollment
Van der Leest et al. Soft decision error correction for compact memory-based PUFs using a single enrollment
Maes et al. PUFKY: A fully functional PUF-based cryptographic key generator
Hiller et al. Breaking through fixed PUF block limitations with differential sequence coding and convolutional codes
US11258597B2 (en) Key derivation from PUFs
Maes et al. Secure key generation from biased PUFs: extended version
JP6588048B2 (ja) 情報処理装置
Hiller et al. Hiding secrecy leakage in leaky helper data
Hiller et al. Systematic low leakage coding for physical unclonable functions
Hiller et al. Online reliability testing for PUF key derivation
Maes et al. Puf-based key generation
Willems Secure Key Generation from Biased PUFs

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant