KR102026757B1 - 단일 등록을 이용한 메모리 기반 puf에 대한 소프트 결정 에러 정정 - Google Patents

단일 등록을 이용한 메모리 기반 puf에 대한 소프트 결정 에러 정정 Download PDF

Info

Publication number
KR102026757B1
KR102026757B1 KR1020147018626A KR20147018626A KR102026757B1 KR 102026757 B1 KR102026757 B1 KR 102026757B1 KR 1020147018626 A KR1020147018626 A KR 1020147018626A KR 20147018626 A KR20147018626 A KR 20147018626A KR 102026757 B1 KR102026757 B1 KR 102026757B1
Authority
KR
South Korea
Prior art keywords
data
corrected
reliability
correctable
decoded
Prior art date
Application number
KR1020147018626A
Other languages
English (en)
Other versions
KR20140099327A (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 KR20140099327A publication Critical patent/KR20140099327A/ko
Application granted granted Critical
Publication of KR102026757B1 publication Critical patent/KR102026757B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)

Abstract

잡음있는 물리적 복제방지 기능(PUF, 110)으로부터, 암호 키와 같은 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호 시스템이 제공된다. 시스템은 제 2 다수의 정정되고 디코딩된 데이터 워드들을 획득하기 위해 제 1 다수의 에러 정정가능한 데이터 워드들을 디코딩하기 위한 하드 결정 디코더(150) 및 정정되고 디코딩된 데이터 워드들의 신뢰성을 표시하는 신뢰성 정보, 예를 들어 소프트 결정 정보를 결정하기 위한 신뢰성 정보 추출기(180)를 포함한다. 시스템은 적어도 하나의 추가적인 정정가능한 데이터 워드를 디코딩하기 위해 신뢰성 정보를 이용하도록 구성되는 소프트 결정 디코더(160)를 더 포함한다. 신뢰성 정보를 이용하여 PUF를 에러 정정하는 것은 거짓 거부 레이트를 감소시킨다.

Description

단일 등록을 이용한 메모리 기반 PUF에 대한 소프트 결정 에러 정정{SOFT DECISION ERROR CORRECTION FOR MEMORY BASED PUF USING A SINGLE ENROLLMENT}
본 발명은 잡음있는 물리적 복제방지 기능(PUF)으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호 시스템에 관한 것이며, 물리적 복제방지 기능은 물리적 복제방지 기능의 부분적으로 랜덤한 물리적 특성들에 적어도 부분적으로 의존하여 초기 데이터 스트링을 설정하도록 구성되며, 시스템은 초기 데이터 스트링에 기초하여 제 1 다수의 에러 정정가능한 데이터 워드들을 결정하도록 구성되는 노멀라이저(normalizer), 및 제 2 다수의 정정되고 디코딩된 데이터 워드들을 획득하기 위해 제 1 다수의 에러 정정가능한 데이터 워드들을 디코딩하도록 구성되는 하드 판정(hard decision) 디코더를 포함한다.
본 발명은 잡음있는 물리적 복제방지 기능으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호화 방법에 더 관련한다. 본 발명은 또한 대응하는 컴퓨터 프로그램에 관련한다.
물리적 복제방지기능(PUF)은 물리적 복제방지 기능의 부분적으로 랜덤한 물리적 특성들에 의존하는, 초기 데이터 스트링과 같은 데이터 스트링을 설정한다. 물리적 특성들은 PUF의 제조 동안의 변화들에 의해 야기된다. 프로세스 변화들이 불가피할 수 있음에 따라 PUF는 비교적 만들기가 용이하지만, 고유한 변화들을 재생성하고, 따라서 PUF를 복제하는 것은 불가능하지는 않더라도, 매우 어려운 일이다. PUF는 따라서 클로닝(cloning)에 대한 고유한 보호를 제공한다. 다른 한편으로 PUF의 컨텐츠는 미리 결정될 수 없으며, PUF 응답들은 다소 잡음이 있다.
물리적 복제방지기능들은 보안 메모리들에 키들, 식별자들 등을 저장하는 것을 비롯하여, 보안 식별의 많은 형태들을 위한 유용한 대안들인 것으로 증명되었다.
데이터 스트링은 PUF의 컴포넌트들의 구성이 컴포넌트의 파워-업(power-up)을 정하는 안정 상태에 의존할 수 있다. 그 구성이 정하는 특정 안정 상태는 특정 컴포넌트들의 적어도 부분적으로 랜덤한 물리적 특성들에 적어도 부분적으로 의존한다. PUF의 일 예는 메모리의 부분적으로 랜덤한 물리적 특성들에 의존하는 파워-업 컨텐츠를 보여주는 휘발성 메모리이다. 제조 변동들은 서로 다른 메모리들에 대한 서로 다른 물리적 특성들을 유도한다.
PUF들의 이러한 특성은 이들이 다양한 애플리케이션들에 대해 적합하게 만든다. 예를 들어, PUF들은 위조를 방지하기 위해 이용될 수 있다. 추가적인 예로서, PUF들은 암호 키들을 생성하기 위해 이용된다. PUF를 이용하면 키를 저장하기 위한 보안 메모리가 필요하지 않게 한다. PUF는 추가로, 물리적 리버스 엔지니어링(reverse engineering)(또한 탬퍼링(tampering)으로 알려짐)을 통해 암호 키를 획득하려는 비인증된 시도 동안 PUF 상에 가해지는 손상이 수리할 수 없을 정도로 초기 데이터 스트링을 변경할 것이기 때문에, 이 시도들에 대한 고유의 보호를 제공한다.
PUF들은 전자 디바이스들에 유용하게 적용되어왔다. IC의 제조 동안 불가피한 작은 제조 변화들조차 IC의 서로 다른 특성들을 야기한다. 동일한 방식으로 동작하는 IC들의 배치(batch)를 획득하기 위한 노력으로, 이들 서로 다른 특성들은 통상적으로 억제된다. 그러나, PUF를 생성하기 위해 IC들의 배치에서 개별 IC들 사이의 차이들이 활용된다.
PUF의 행동(behavior)은 작은 변화들에 의존하기 때문에, 특정 에러 퍼센티지는 불가피하다. 에러 정정 절차는 이들 변동들을 정정하기 위해 이용될 수 있으며, PUF로부터 도출될 때마다, 신뢰성있는 데이터 스트링이 동일함을 확인한다. 소위 조력자 데이터(helper data)를 이용하면 초기 데이터 스트링이 하나 또는 그 초과의 에러 정정가능한 데이터 워드들로 맵핑된다. 에러 정정가능한 데이터 워드는 에러 정정 코드의 코드워드에 가까운 데이터 워드이다. 에러 정정가능한 데이터 워드는 코드워드 및 에러 워드의 합계로서 확인될 수 있다. 에러 정정 코드에 대응하는 에러 정정 알고리즘을 적용함으로써, 에러 정정가능한 데이터 워드들은 정정되고 디코딩된 데이터 워드들로 디코딩된다. 가능하게는 에러 정정가능한 데이터 워드들에 가까운 코드워드들이 중간 단계로서 컴퓨팅된다.
기존의 물리적 복제방지 기능의 문제점은 그들의 잠재적인 높은 에러 레이트이다. 온도 및 인가된 전압과 같은 극도의 외부 변화들에 대처하기 위해, 시스템은 최대 25%의 에러 레이트에 대처할 수 있어야 한다. 즉, 초기 비트 스트링에서의 비트들의 25%는 PUF의 후속적인 판독들(read-outs) 사이에서 다를 수 있다. 따라서, 높은 에러 레이트를 갖는 데이터 스트링을 정정할 수 있는 강력한 에러 정정 코드들에 대한 필요성이 존재한다. 다른 한편, 감소된 자원들, 예를 들어, 스마트 카드들과 같은 제한된 컴퓨팅 능력들을 갖는 시스템들에서 PUF들을 이용하려는 요망이 존재한다. 이것은 원격통신 시스템들과 같은, 다른 필드들에서 이용되는 에러 정정 코드들의 이용을 배제한다.
본 발명에 따른 암호 시스템은 잡음있는 물리적 복제방지 기능(PUF)으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하도록 구성된다. 물리적 복제방지 기능은 물리적 복제방지 기능의 부분적으로 랜덤한 물리적 특성들에 적어도 부분적으로 의존하여 초기 데이터 스트링을 설정하도록 구성된다. 예를 들어, 초기 데이터 스트링은 물리적인, 적어도 부분적으로 랜덤한, 컴포넌트들의 구성 또는 도핑 레벨들에서의 변화들에 의존할 수 있다.
암호 시스템은 초기 데이터 스트링에 기초하여 제 1 복수의 에러 정정가능한 데이터 워드들을 결정하도록 구성되는 노멀라이저, 제 2 복수의 정정되고 디코딩된 데이터 워드들을 획득하기 위해 제 1 복수의 에러 정정가능한 데이터 워드들을 디코딩하도록 구성되는 하드 결정 디코더, 제 1 복수의 에러 정정가능한 데이터 워드들의 디코딩의 신뢰성을 표시하는 신뢰성 정보를 결정하도록 구성되는 신뢰성 정보 추출기, 적어도 하나의 추가적인 정정가능한 데이터 워드를 획득하기 위해 제 2 복수의 정정되고 디코딩되는 데이터 워드들을 배열하도록 구성되는 데이터 배열기, 및 적어도 하나의 추가적인 정정되고 디코딩된 데이터 워드를 획득하기 위해 신뢰성 정보를 이용하여 적어도 하나의 추가적인 정정가능한 데이터 워드를 디코딩하도록 구성되는 소프트 결정 디코더를 포함하며, 신뢰성있는 데이터 스트링은 적어도 하나의 추가적인 정정되고 디코딩된 데이터 워드로부터 획득된다.
암호 시스템은 소프트-결정 에러 디코딩에 기초하는 물리적 복제방지기능으로부터, 암호 키와 같은 신뢰성있는 데이터 스트링을 추출한다. 추출된 데이터 스트링은 2개의(또는 그 초과의) 코드들의 조합을 통해 에러 정정되기 때문에 높은 신뢰성을 갖는다. 제 1 디코딩 동안, 하드 결정 디코더에 의해, 정보량에서의 감소가 발생한다. 어떤 의미에서, 제 2 다수의 정정되고 디코딩된 데이터 워드들에 포함되는 정보량은 초기 비트 스트링에서보다 적다. 제 1 다수의 에러 정정가능한 데이터 워드들의 디코딩의 신뢰성에 관한 정보를 추출함으로써, 손실된 정보 중 일부가 복구된다. 즉 제 2 다수의 정정되고 디코딩된 데이터 워드들과 함께 신뢰성 정보는 제 2 다수의 것들 단독으로보다 더 많은 정보를 보유한다. 소프트 결정 디코더는 제 2 하드 디코더가 할 수 있는 것보다 더 신뢰성있는 디코딩을 획득하기 위해 신뢰성 정보를 이용할 수 있다.
PUF에 대한 소프트 데이터를 직접 획득하는 것은 많은 타입들의 PUF들에 대해 불가능하거나 문제가 있다. 예를 들어, 휘발성 메모리에서의 파워-업 콘텐츠에 기초한 PUF에 대해, 컨텐츠를 위한 소프트 데이터를 획득하는 것은 메모리의 다수의 판독들을 획득하기 위해, 반복되는 파워 사이클들, 즉 순차적 파워 다운 및 파워 업을 수반할 것이다. 중간에 파워 사이클들로 다수의 PUF 응답들을 측정하는 것을 허용하기 위해, PUF의 판독 및 프로세싱 부분은 서로 다른 파워 도메인들에 있어야 한다. 다수의 파워 도메인들을 갖는 것은 문제가 있는 것으로 알려졌다. 파워 도메인들 사이의 누설을 회피하기 위한 주의가 필요하다; 격리 셀들과 파워 라우팅을 포함하기 위해 추가적인 칩 영역이 요구된다. 이것은 또한 (레이아웃, 네트리스트(netlist) 발생, 합성 및 레이아웃의 관점에서) 추가적인 설계 노력을 요구한다. 본 발명에 따른 PUF는 다수의 파워 사이클들을 필요로 하지 않고서 소프트 데이터를 발생시킨다. 하나의 PUF 응답은 소프트 데이터 값들을 발생시키기 위해 충분하다. 하드 디코더의 결과에 기초하여, PUF의 부분의 총체적(collective) 신뢰성을 표시하는 소프트 데이터 값이 발생된다. 파워 사이클들에 걸쳐 중간 데이터를 유지하기 위해 비-휘발성 메모리를 이용하는 것은 보안성을 감소시킬 것이며, 실제로 종종 PUF가 스토리지를 보호하기 위한 대안으로서 이용된다는 것이 주목된다.
일 실시예에서, 물리적 복제방지 기능 및 노멀라이저가 동일한 파워 도메인에 있다. 개선된 실시예에서, 하드 결정 디코더는 또한 동일한 파워 도메인에 있다. 또 추가적인 개선된 실시예에서, 신뢰성 정보 추출기, 데이터 배열기 및 소프트 결정 디코더가 또한 동일한 파워 도메인에 있다.
2개의 컴포넌트들은 이들이 동일한 파워 라인에 접속됨으로써 동일한 파워 도메인에 있을 수 있다. 예를 들어, 시스템은 CMOS 기술로, 말하자면 SRAM과 같은 PUF로 구현될 수 있으며, 노멀라이저는 프로세서상에 실행되는 소프트웨어로서 또는 하드웨어로서 구현될 수 있다. 노멀라이저(하드웨어 또는 프로세서) 및 PUF(SRAM을 칭함)는 동일한 파워 도메인에 있을 수 있다. 동일한 파워 도메인에 있는 2개의 컴포넌트들은 반드시 함께 파워-다운되고 파워-업된다.
본 발명은 신뢰성 데이터를 결정하기 위해 PUF 응답들의 반복된 측정들을 필요로 하지 않는다.
대안적으로, 물리적 복제방지 기능이 별개의 파워 도메인에 있다. 예를 들어, 물리적 복제방지 기능 및 노멀라이저는 서로 다른 파워 도메인들에 있을 수 있다. 개선된 실시예에서, 하드 결정 디코더는 또한 다른 파워 도메인에 있다. 물리적 복제방지 기능이 별개의 파워 도메인에 있는 경우에, 소프트 결정 데이터는 다수의 파워 사이클들에서 PUF의 다수의 판독들을 획득하고, 말하자면, 그 후에 다수의 판독들에 대해 평균화함으로써 획득될 수 있다. 그러나, 이런 경우에도 본 발명을 적용하는 것이 유리하다. 파워 사이클들은 비교적 긴 시간을 소요한다. SRAM 메모리는 종종 (데이터 리머넌스(remanence) 효과들로 인해) 낮은 온도들에서 양호한 PUF 판독을 보장하기 위해 측정들 사이에서 대략 1초 파워 오프되어야 한다. 고객 애플리케이션의 경우, 이는 수용가능하지 않게 긴 것일 것이다. 더욱이, 다수의 판독들을 이용하는 것은 더 많은 버퍼 공간을 요구한다. 심지어 파워 도메인들이 PUF의 다수의 판독들을 획득하기 위해 이용되지 않더라도, 이들은 여전히 다른 목적들을 위해 이용될 수 있다. 예를 들어, 별개의 파워 도메인에서 PUF, 예를 들어 SRAM을 갖는 것은 PUF가 응답을 얻기 위해 이용된 후에 메모리가 턴 오프될 수 있기 때문에 메모리의 에이징(aging)을 최소화한다. 더욱이, PUF가 랜덤 번호 발생기에서 이용되는 경우에 다중 판독이 요구될 수 있다.
소프트 결정 디코더는 또한 PUF로부터 신뢰성있는 데이터 스트링을 획득하는 효율성을 증가시킨다. 일부 PUF들은 초기 스트링의 신뢰성에 관한 소프트 결정 정보를 제공하기 위해 고유하게 적응될 수 있다. 예를 들어, 잡음있는 물리적 복제방지 기능(PUF)으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 유용한 시스템에서, 시스템은 초기 데이터 스트링에 기초하여 에러 정정가능한 데이터 워드를 결정하도록 구성되는 노멀라이저, 초기 데이터 스트링의 신뢰성을 표시하는 신뢰성 정보를 결정하도록 구성되는 신뢰성 정보 추출기, 및 정정되고 디코딩된 데이터 워드를 획득하기 위해 신뢰성 정보를 이용하여 에러 정정가능한 데이터 워드를 디코딩하도록 구성되는 소프트 결정 디코더를 포함하며, 신뢰성있는 데이터 스트링은 정정되고 디코딩된 데이터 워드로부터 획득된다.
상기 유용한 시스템에서, 물리적 복제방지 기능은 물리적 프로세스의 카운팅 또는 타이밍에 의존할 수 있다. 예를 들어, 물리적 복제방지 기능은 발진기, 또는 지연 회로를 포함할 수 있다. 초기 데이터 스트링은 물리적 프로세스를 임계값과 비교함으로써 획득될 수 있다. 신뢰성 정보는 거리를 임계값으로 분류함으로써 획득될 수 있다.
그러나, PUF들의 출력에 관한 신뢰성 정보를 제공하기 위해 모든 PUF들이 용이하게 적응되는 것은 아니다. 특히, 기존의 집적된 회로 엘리먼트들이 PUF로서 이용되는 경우, 통상적으로 PUF는 단지 정량화된 출력, 예를 들어 이진 데이터를 갖는다. 예를 들어, SRAM이라 칭하는 메모리 엘리먼트, 플립플롭, 버스-키퍼(bus-keeper), 또는 버터플라이 PUF가 이용되는 경우, 각각의 엘리먼트들이 1인지 0인지에 대해 임계값에 얼마나 가까운지를 표시하는 어떠한 정보도 용이하게 이용가능하지 않다. 발명자는 신뢰성 정보의 이용이 그와 같은 PUF와 어떻게 조합될 수 있는지를 더 알게되었다. 소프트 결정 디코더와 노멀라이저 사이에 추가적인 코드를 삽입함으로써, 적어도 신뢰성 정보가 디코딩된 데이터 워드들의 레벨 상에서 획득될 수 있다. 신뢰성 정보가 디코딩된 데이터 워드들에 걸쳐 평균화되더라도, 후속적인 소프트 결정 디코더에서의 이용을 위한 정보량은 증가하였으며, 따라서 디코딩 및 궁극적으로 데이터 스트링의 신뢰성을 개선한다.
물리적 복제방지기능(PUF)은, 그 기능이 만들기는 쉽지만 물리적 시스템이 특성화하기 어렵고 클론화하기 어렵도록, 물리적 시스템에 의해 실현되는 기능이다. PUF는 카피되거나 모델링될 수 없기 때문에, PUF를 구비한 디바이스는 클론불가능하게 된다. (즉, 일부 랜덤성을 포함하는) 제어되지 않는 생산 프로세스에 의해 생산되는 물리적 시스템들은 PUF들에 대한 양호한 후보들인 것으로 판명된다.
PUF는 또한 챌린지(challenge)라 칭해지는, 입력을 취할 수 있지만, 그래야 하는 것은 아니다. 많은 실용적인 PUF는 소위 단일-챌린지 입력들이다. 이들은 디지털 식별자로서 효과적으로 동작한다. 더 진보된 PUF들은 입력을 취한다. 그와 같은 멀티-챌린지 PUF는 챌린지, 즉 자극과 복잡한 방식으로 상호작용하도록 설계되며 각 챌린지에 대해 예측가능하지 않은 응답들을 유도한다. 본 발명은 단일 및 멀티 챌린지 PUF들 둘 다로 이용될 수 있다. 심지어 단일-챌린지 PUF들은 특히 PUF를 포함하는 디바이스의 바깥으로 알려질 필요가 없는 비밀들에 대해, 시스템의 보안성을 증가시킨다. 예를 들어, 보안 스토리지, 메모리 암호화 등, 부트-업(boot-up) 보호 등을 위해 이용되는 키는 디바이스의 바깥으로 반드시 알려질 필요가 없다.
소프트 결정 디코딩을 이용하지 않는 에러 정정 코드들의 조합들은 합리적인 거짓 거부 레이트(false rejection rate)로, 신뢰성있는 데이터 스트링, 예를 들어 특정 암호 키를 도출하기 위해, 예를 들어, 큰 SRAM을 갖는 PUF를 이용함으로써 큰 초기 데이터 스트링을 요구한다. 제 1 에러 정정 코드를 디코딩하는 것은 코드워드 당 약간의 정보 비트들만을 발생시키기 때문에 많은 정보가 소실된다. 거짓 거부 레이트(FRR)는 측정된 PUF 응답에서의 에러들로 인해, 신뢰성있는 데이터 스트링이 재구성될 수 없는 확률이다. 낮은 FRR이 바람직하다.
본 발명은 따라서 소프트-결정 에러 정정 알고리즘을 이용하여 물리적 복제방지기능으로부터 식별자 또는 키를 추출하는 유용한 방법을 제공한다. 또한 확실성 또는 신뢰성 정보로 알려진 소프트-결정 정보는 입력(잡음있는) 코드워드와, 이전의 디코딩 단계의 그의 에러 정정된 출력 간의 차이로부터 도출될 수 있다.
PUF는 동일한 PUF의 2개의 판독들이 거의 동일한 초기의 비트 스트링을 제공하지 않을 것이라는 점에서 전형적으로 '비신뢰적'이다. 신뢰성있는 데이터 스트링은 신뢰성있는 데이터 스트링의 거의 모든 재구성 후에 동일하다. 신뢰성의 레벨은 본 발명의 애플리케이션에 의존한다. 예를 들어, 액세스 제어, 재정 제어 등에서의 민간 이용의 경우, 예를 들어 군사적 이용에서보다 더 큰 FRR이 수용가능할 것이다. FRR은 더 많은 수의 에러들을 정정할 수 있는 코드들을 이용함으로써 감소될 수 있다.
바람직하게, 신뢰성있는 데이터 스트링, 예를 들어 비트 스트링은 전자 디바이스를 위해 고유하며 물리적 복제방지기능이 임베디드된다. 엄격하게 요구되지 않더라도, 이것은 식별을 더 신뢰성있게 하며 키들을 더 보안적으로 만든다. 일 실시예에서, 암호 시스템은 키 도출 알고리즘을 신뢰성있는 데이터 스트링에 적용함으로써 암호 키를 설정하기 위한 키 설정기를 포함한다.
일 실시예에서, 초기 데이터 스트링은 컴포넌트들의 물리적인, 적어도 부분적으로 랜덤한 구성에 의존할 수 있다. 일 실시예에서, PUF는 초기의 비트 스트링을 도출하기 위해 SRAM, 플립-플롭, 버스-키퍼, 버터-플라이 PUF 중 임의의 것을 포함한다.
전형적으로, PUF는 메모리 엘리먼트의 물리적 특성들에 의존하는 파워-업 시의 상태로 정착된 다수의 휘발성 메모리 엘리먼트들을 포함한다. 전형적으로 초기의 비트 스트링은 디지털 형태, 즉, 비트들의 시퀀스로서 획득된다.
SRAM PUF는 표준 이용가능한 컴포넌트, 즉 SRAM에 기초하는 알려진 PUF이다. SRAM 또는 정적 랜덤 액세스 메모리는 오늘날 대부분의 디바이스들(예를 들어, ASIC들, 마이크로프로세서들, DSP들, ASSP들 등)에 이용되는 표준 컴포넌트이다. 이것은 외부 접속을 위해 2개의 크로스-커플링된 인버터들 및 2개의 추가적인 트랜지스터들, 따라서 총 6개의 트랜지스터들을 포함한다. 이는 그의 속도로 인해 단기간 데이터 저장을 위해 광범위하게 사용된다. 전압이 메모리 셀에 인가될 때, 이는 자신의 논리적 선호 상태를 선택한다: 논리적 1-상태 또는 논리적 0-상태. 각 셀은 2개의 크로스-커플링된 인버터들을 구성하는 트랜지스터들의 임계 전압들에 의해 결정되는 고유한 선호 상태를 갖는다. 서로 다른 트랜지스터드의 임계 전압들은 제조 동안 비제어가능한 프로세스 변화들 때문에 약간 다르다. SRAM 메모리 어레이의 메모리 셀들의 모든 선호 스타트-업 값들에 의해 결정되는 스트링은 SRAM 메모리를 고유하게 식별하는 랜덤 식별자를 형성한다. 식별자는 PUF 응답, 즉 초기 데이터 스트링이다. 이러한 현상은 많은 실험들 및 많은 SRAM 타입들에서 검증되었다.
다른 메모리-기반된 PUF는 소위 플립-플롭 PUF이다. 이러한 PUF는 플립-플롭들 또는 레지스터들의 스타트업 값을 이용한다. 플립-플롭, 버스-키퍼 및 레지스터 PUF들은 2010년 11월 24일에 출원된 출원번호 EP10192352.2인 명칭 'PHYSICAL UNCLONABLE FUNCTION'으로 동일한 출원인의 EP 특허 출원에 설명된다.
일 실시예에서, 노멀라이저가 제 1 다수의 에러 정정가능한 데이터 워드들을 결정하는 단계는 소위 조력자 데이터와 초기 데이터 스트링을 조합하는 단계를 포함한다.
예를 들어, 초기의 비트 스트링 및 조력자 데이터는 둘 다 디지털 값으로서 나타날 수 있으며, 조력자 데이터는 초기의 비트 스트링을 하나 또는 다수의 정정가능한 코드워드들의 이웃에 맵핑한다. 예를 들어, 조력자 데이터는 초기의 비트 스트링에 추가될 수 있다. 예를 들어, 초기의 비트 스트링 및 조력자 데이터는 XOR 연산을 이용함으로써 조합될 수 있다. 조력자 데이터는 또한 예를 들어, 조력자 데이터가 리던던시 정보를 나타내는 경우에, 초기의 비트 스트링에 연결될 수 있다.
정보 이론에서, 하드- 및 소프트-결정 디코더 둘 다는 에러 정정 코드로 인코딩된 데이터를 디코딩한다. 하드- 및 소프트-결정 디코더 사이의 차이는 신뢰성 정보의 이용에 관련한다. 하드-결정 디코더는 입력으로서 가능한 값들의 고정된 세트(전형적으로 이진 코드에서의 0 또는 1)를 취하는 에러 정정 디코더이다. 하드 결정 디코더는 입력으로서 신뢰성 정보를 취하지 않는다. 소프트-결정 디코더는 각 입력 데이터 포인트의 신뢰성을 표시하는 입력 추가 정보를 취해 원래 데이터의 더 양호한 추정치들을 형성하도록 이용한다. 소프트-결정 디코더는 전형적으로, 손상된 데이터의 존재시에 그 하드-결정 대응부(counterpart)보다 더 양호하게 수행할 것이다.
서로 다른 에러 정정 코드들이 시스템에 이용될 수 있다. 또한 한번은 하드 결정 디코더로 그리고 한번은 소프트 결정 디코더로 동일한 에러 정정 코드를 두번 이용할 수 있다. 또한 하드 결정 디코더 후에 2개 또는 그 초과의, 가능하게는 서로다른 소프트 결정 에러 정정 디코더들을 갖는 2개 또는 멀티-스테이지 방식을 가질 수 있다. 멀티-스테이지 방식에서 에러 정정 코드들을 조합하는 것은 동일한 FRR을 갖는 특정 길이의 키를 추출하기 위해 필요한 PUF 데이터량의 관점에서 더 효율적인 솔루션들을 야기한다.
일 실시예에서, 하드 결정 디코더는 제 2 다수의 대응하는 정정되며 디코딩되는 데이터 워드를 획득하기 위해 제 1 다수의 에러 정정가능한 데이터 워드들의 각 에러 정정가능한 데이터 워드를 디코딩하도록 구성된다. 예를 들어, 초기의 스트링을 변환하기 위한 일 방식은 조력자 데이터를 초기 데이터 스트링에 XOR하는 것이다. 최종 스트링은 에러 정정가능한 데이터 워드들로 분할된다.
PUF의 에러 레이트가 높을 수 있기 때문에, (하드 결정 디코더에서 이용되는) 제 1 코드가 비교적 낮은 코드 레이트(또한 알려진 또는 정보 레이트)를 갖는 경우에 특히 유용하며, 이는 비교적 많은 수의 에러들을 정정할 수 있다. 실험들이 이것을 확인하였다. 일 실시예에서, 하드 결정 디코더는 반복 코드를 디코딩하도록 구성된다. 일 실시예에서, 하드 결정 디코더는 하다마드(Hadamard) 코드를 디코딩하도록 구성된다. 일 실시예에서 하드 결정 디코더 및/또는 소프트 결정 디코더는 선형 코드들, 바람직하게는 이진 코드들을 이용한다.
낮은 코드 레이트 코드들은 비교적 적은 코드워드들을 갖는 경향이 있기 때문에, 목록 디코딩이 하드 결정 디코더에서의 이용을 위한 양호한 옵션이다.
신뢰성 정보는 또한 특정성 정보로서 또는 소프트-결정 정보로서 알려져 있다.
일 실시예에서, 신뢰성 정보는 (제 1 다수의 일부인) 에러 정정 이전에 에러-정정된 코드워드와 잡음있는 코드워드 사이의 차이로부터 도출된다. 잡음있는 코드워드는 또한 에러 정정가능한 데이터 워드로서 지칭되며, 그것은 다수의 에러들을 갖는 코드워드이다. 잡음있는 코드워드로부터 정정된 코드워드로 진행하도록 변경되는 비트들의 수는 정정된 코드워드의 신뢰성의 표시이다. 더 많은 비트들이 변경될수록 코드워드가 잘못될 가능성이 더 높아지며, 신뢰성이 더 낮아진다.
이러한 소프트-결정 정보는 연속적인 소프트-결정 에러 정정 모듈 또는 알고리즘을 위한 입력으로서 이용된다. 이러한 소프트-결정 정보를 이용하는 것은 특정 길이의 키를 도출하기 위해 더 적은 PUF 입력을 요구하는 더 효율적인 퍼지 추출기들의 이용을 가능하게 한다.
제 1 디코더에 대한 이러한 구성을 이용하면, 제 2 디코더는 입력에 관한 더 많은 정보를 가질 것이며(입력의 하드웨어에 관하여 더 알 것이며) 따라서 이전에 알려지는 방식들에서보다 더 낮은 FRR로 요구되는 코드워드를 재구성할 수 있다.
일 실시예에서, 신뢰성 정보는, 제 1 다수의 에러 정정가능한 데이터 워드들중 특정 에러 정정가능한 데이터 워드를 제 2 다수의 정정되고 디코딩된 데이터 워드들 중 특정의 정정되고 디코딩된 데이터 워드로 디코딩하는 것의 신뢰성을 표시하는 신뢰성 값을 포함한다.
특정 에러 정정가능한 데이터 워드를 정정하는 것은 직접 또는 최종 데이터 워드를 인코딩함으로써 대응하는 코드워드를 제공한다. 에러 정정가능한 데이터 워드를 대응하는 코드워드와 비교함으로써, 디코딩의 신뢰성의 표시가 획득된다.
PUF가 판독될 때, 임의의 특정 코드워드에서의 에러들의 수는 정정가능한 에러들의 수보다 높을 수 있다. 그와 같은 상황에서 하드 결정 디코더는 여전히 정정되고 디코딩된 데이터 워드를 제공하지만, 올바른 데이터 워드가 아니다. 그와 같은 상황에서 잡음있는 코드워드와 대응하는 코드워드 사이의 차이는 그것이 작기보다는 크기 쉽다. 코드워드가 다른 코드워드로 거의 완전히 변경하도록 많은 에러들이 발생할 수 있더라도, 코드워드가 에러 정정 한계를 막 넘어섰을 가능성이 훨씬 더 높다. 따라서, 잡음있는 코드워드와 대응하는 코드워드 사이의 차이는 디코딩 신뢰성의 양호한 표시이다.
일 실시예에서, 신뢰성 정보 추출기는 특정 정정되고 디코딩된 데이터 워드에 대응하는 특정 코드워드와 특정 에러 정정가능한 데이터 워드 사이의 거리를 결정하기 위한 거리 결정기를 포함하며, 신뢰성 값은 거리로부터 도출된다.
에러 정정 후의 코드워드와 에러 정정 전의 잡음있는 코드워드 사이의 차이는 해밍(hamming) 거리로서 컴퓨팅될 수 있다. 거리가 멀수록(higher) 신뢰성은 낮아진다.
작용하는 양자화의 가장 간단한 형태는 하드 결정 디코더가 반복 코드를 이용하는 경우에 직접적으로 비트들의 시퀀스의 해밍 가중치를 이용하는 것이다. 다른 코드들에 대해, 정정가능한 코드워드와 정정된 코드워드 사이의 차이(즉 xor 차이)의 해밍 가중치가 이용될 수 있다. 서로 다른 임계값들이 양자화기에 이용될 수 있다. 예를 들어, 해밍 가중치 공간은 동일한 부분들로 분할될 수 있다. 대안적으로 이용되는 임계값들은 예를 들어, 서로 다른 임계값들로 시뮬레이팅하고 최적 값들을 선택함으로써, 정해진 제 2 디코더에 대해 최적화될 수 있다. 예를 들어, 신뢰성 값을 획득하기 위해 잡음있는 코드워드와 대응하는 코드워드의 XOR 합계에서 제로들의 수(높을수록, 즉 제로들이 많을수록, 더 신뢰성있음)를 카운트할 수 있다.
신뢰성 정보는 제한된 세트의 이산 레벨들로 양자화될 수 있다. 심지어 이산 레벨들의 수는 코드워드의 길이보다 낮을 수 있다. 예를 들어, 하드 결정 디코더에 의해 이용되는 코드가 더 길다하더라도, 신뢰성의 8개 레벨들을 나타내기 위해 3개의 비트들이 이용될 수 있다.
일 실시예에서, 하드 결정 디코더의 디코딩된 워드의 모든 비트들에는 동일한 신뢰성 정보가 할당된다. 일 실시예에서, 신뢰성 값은 유리수이다.
일 실시예에서, 하드 결정 디코더는 제 2 다수의 대응하는 정정되고 디코딩된 데이터 워드를 획득하기 위해 제 1 다수의 에러 정정가능한 데이터 워드들의 각 에러 정정가능한 데이터 워드를 디코딩하도록 구성되며, 신뢰성 정보 추출기는 제 1 다수의 에러 정정가능한 데이터 워드들의 대응하는 디코딩의 신뢰성을 표시하는 제 2 다수의 정정되고 디코딩된 데이터 워드들의 각 하나에 대한 신뢰성 값을 결정하도록 구성된다.
데이터 배열기는 제 2 다수의 디코딩된 데이터 워드들을 취하며 그들을 새로운 에러 정정가능한 코드워드들로 어셈블링한다. 일 실시예에서, 데이터 배열기는 디코딩된 데이터 워드에서의 모든 비트들에 디코딩된 데이터 워드의 신뢰성 값을 할당한다. 동일한 디코딩된 데이터 워드에서의 모든 비트들은 따라서 동일한 신뢰성 값을 수신한다. 일 실시예에서, 데이터 배열기는 제 2 다수에서 수집된 비트들을 하나 또는 추가적인 에러 정정가능한 데이터 워드들로 치환한다. 추가적인 에러 정정가능한 데이터 워드들에서의 비트들은 비트가 획득되었던 제 2 다수의 데이터 워드로부터 획득되는 신뢰성 값을 그들에게 할당하였다.
일 실시예에서, 데이터 배열기는 제 2 다수의 제 1 정정되고 디코딩된 데이터 워드의 적어도 일부 및 제 2 다수의 제 2 정정되고 디코딩된 데이터 워드의 적어도 일부를 동일한 적어도 하나의 추가적인 정정가능한 데이터 워드로 배열하도록 구성된다.
일 실시예에서 제 2 다수의 특정 데이터 워드의 제 1 부분이 적어도 하나의 추가적인 정정가능한 데이터 워드들의 제 1 추가적인 에러 정정가능한 데이터 워드에 이용되며, 특정 데이터 워드의 제 2 부분은 적어도 하나의 추가적인 정정가능한 데이터 워드의 제 2 추가적인 에러 정정가능한 데이터 워드에 이용된다.
이것은 특정 데이터 워드가 잘못된 경우에, 다수의 정정가능한 데이터 워드들에 걸쳐 분배되며 따라서 FRR을 감소시킨다는 장점을 갖는다. 일 실시예에서, 데이터 배열기는 인터리버(interleaver)이다.
일 실시예에서, 데이터 배열기는 적어도 하나의 추가적인 정정되고 디코딩된 데이터 워드의 서로 다른 파트들에 다른 신뢰성 값을 할당하도록 구성된다. 예를 들어, 적어도 하나의 추가적인 정정가능한 데이터 워드는 다수의 비트들을 포함하며, 다수의 비트들의 각 비트는 제 2 다수의 정정되고 디코딩된 데이터 워드들의 대응하는 정정되고 디코딩된 데이터 워드로부터 데이터 배열기에 의해 획득된다. 일 실시예에서, 다수의 비트들의 각 비트는 신뢰성 값을 할당받는다.
추가적인 실시예에서, 다수의 비트들의 각 비트는 제 2 다수의 정정되고 디코딩된 데이터 워드들의 대응하는 정정되고 디코딩된 데이터 워드로부터 데이터 배열기에 의해 획득된다. 데이터 배열기는 다수의 비트들의 각 비트에 대한 신뢰성 값을 획득하기 위해 제 2 다수의 정정되고 디코딩된 데이터 워드들과 함께 신뢰성 정보를 배열하도록 구성될 수 있다. 다수의 비트들의 비트에 할당되는 신뢰성 값은 대응하는 정정되고 디코딩된 데이터 워드의 신뢰성 값이다.
코드들이 조합되고 및/또는 연결되는 경우에, 코드들 사이에 인터리빙이 이용될 수 있으며, 이는 제 1 코드의 디코딩 후에 출력 정보 비트들이 제 2 코드의 다수의 서로 다른(잡음있는) 코드워드들을 통해 분배되는 것을 의미한다. 이러한 방식에서 제 1 디코더에 의한 올바르지 않은 디코딩의 영향이 제 2 디코더의 입력에서 이용되는 서로 다른 코드워드들을 통해 확산된다. 이것은 예를 들어, 암호 키를 올바르게 디코딩하는 확률을 증가시킨다. 코드워드 당 비밀 비트들의 수가 1이기 때문에 제 1 코드는 반복 코드인 경우에는 이것이 필요하지 않음을 주목한다.
일 실시예에서, 소프트 결정 디코더는 입력 양자화 값들을 감안할 때 가장 가능성있는 코드워드를 결정하기 위해 최대 가능성 디코딩을 이용한다. 최대 가능성 디코딩은 높은 품질의 디코딩을 제공하지만 자원 집약적일 수 있다. 일 실시예에서 소프트 결정 디코더는 BCH 코드 또는 골레이(Golay) 코드를 디코딩하도록 구성된다.
일 실시예에서, 시스템은 추가적인 소프트 결정 디코더를 포함한다. 추가적인 소프트 결정 디코더는 적어도 하나의 추가적인 정정가능한 데이터 워드의 상기 디코딩의 신뢰성을 표시하는 추가적인 신뢰성 정보를 이용하여 적어도 하나의 더 추가적인 정정가능한 데이터 워드를 디코딩하도록 구성된다.
3개 또는 그 초과의 코드들을 이용하는 것은 발명자의 놀랄만한 식견에 기초한다. 2개보다 많은 코드들을 갖는 것은 사용된 코드들의 각각이 비교적 약하게, 즉 비교적 적은 에러들을 정정할 수 있게 허용한다. 3개의 코드들에 대해 이용되는 네트 자원은 비교할만한 강도의 2개의 코드들을 이용하는 것보다 낮은 것으로 판명된다. 따라서 일 실시예에서, 적어도 2개의 소프트-결정 디코더들이 이용된다.
제 3 코드를 이용할 때, 추가적인 소프트 결정 디코더를 제 2 소프트 결정 디코더로서 그리고 소프트 결정 디코더를 제 1 소프트 결정 디코더로서 지칭할 것이다. 제 1 소프트 결정 디코더는 제 2 소프트 결정 디코더에 대한 입력으로서 이용되는 "소프트" 출력 값을 가질 수 있다. 예를 들어, 디코더의 출력의 가능성에 관한 정보를 제공하기 위해 제 1 소프트 결정 디코더의 입력- 및 디코딩된 코드워드 사이의 유클리드 거리(Euclidean Distance)의 가능하게 양자화된 버전을 이용할 수 있다. 이러한 방식으로 제 2 소프트 결정 디코더는 그 입력 비트들의 각각에 관한 더 많은 정보를 가질 것이며 따라서 인코딩 동안 이용었던 올바른 정보 비트들을 더 디코딩할 수 있다.
암호 시스템은 예를 들어, 이동 전자 디바이스, 이동 전화, 셋-톱 박스, 컴퓨터, 스마트 카드 등에 포함되는 전자 암호 시스템일 수 있다.
일 실시예에서, 암호 시스템은 예를 들어, 터보 디코딩을 이용하여 반복적으로 디코딩하도록 구성된다. 예를 들어, 제 3 디코더, 즉 추가적인 소프트 결정 디코더가 추가될 수 있다. 추가적인 소프트 결정 디코더는 제 2 디코더로부터 소프트 데이터를 수신하도록 구성된다. 제 2 및 제 3 디코더들은 터보 디코딩 알고리즘을 반복적으로 실행하도록 구성된다.
다른 실시예에서, 하드 결정 디코더는 선택적으로 소프트 결정 입력을 허용한다. 제 1 반복에서 제 1 디코더는 하드 결정 디코더로서 구성되며 따라서 소프트 결정 데이터를 이용하지 않는다. 제 2 반복에서 제 1 디코더는 소프트 결정 디코더로서 구성되며 제 2 디코더로부터 소프트 결정 데이터를 수신한다.
본 발명의 추가적인 양상은 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호화 방법에 관한 것이다. 방법은,
- 컴포넌트들의 물리적인, 적어도 부분적으로 랜덤한 구성에 의존하여 초기 데이터 스트링을 설정하는 단계,
- 초기 데이터 스트링에 기초하여 제 1 다수의 에러 정정가능한 데이터 워드들을 결정하는 단계,
- 제 2 다수의 정정되고 디코딩된 데이터 워드들을 획득하기 위해 하드 결정 디코딩에 의해 제 1 다수의 에러 정정가능한 데이터 워드들을 디코딩하는 단계,
- 제 1 다수의 에러 정정가능한 데이터 워드들의 상기 디코딩의 신뢰성을 표시하는 신뢰성 정보를 결정하는 단계,
- 적어도 하나의 추가적인 정정가능한 데이터 워드를 획득하기 위해 제 2 다수의 정정되고 디코딩된 데이터 워드들을 배열하는 단계, 및
- 적어도 하나의 추가적인 정정되고 디코딩된 데이터 워드를 획득하기 위해 신뢰성 정보를 이용하여 소프트 결정 디코딩에 의해 적어도 하나의 추가적인 정정가능한 데이터 워드를 디코딩하는 단계를 포함하며, 신뢰성있는 데이터 스트링은 적어도 하나의 추가적인 정정되고 디코딩된 데이터 워드로부터 획득된다.
본 발명에 따른 방법은 컴퓨터 구현된 방법으로서 컴퓨터 상에서, 또는 전용 하드웨어에서, 또는 이 둘 다의 조합으로서 구현될 수 있다. 본 발명에 따른 방법을 위한 실행가능한 코드는 컴퓨터 프로그램 물건 상에 저장될 수 있다. 컴퓨터 프로그램 물건들의 예들은 메모리 디바이스들, 광학 스토리지 디바이스들, 집적된 회로들, 서버들, 온라인 소프트웨어 등을 포함한다. 바람직하게는, 컴퓨터 프로그램 물건은 상기 프로그램 물건이 컴퓨터상에 실행될 때 본 발명에 따른 방법을 수행하기 위한 컴퓨터 판독가능한 매체상에 저장되는 비-일시적 프로그램 코드 수단을 포함한다.
바람직한 실시예에서, 컴퓨터 프로그램은 컴퓨터 프로그램이 컴퓨터 상에서 실행될 때 본 발명에 따른 방법의 모든 단계들을 수행하도록 적응되는 컴퓨터 프로그램 코드 수단을 포함한다. 바람직하게는, 컴퓨터 프로그램은 컴퓨터 판독가능한 매체 상에 구체화된다.
잡음있는 물리적 복제방지 기능(PUF)으로부터, 암호 키와 같은 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호 시스템이 제공된다. 시스템은 제 2 다수의 정정되고 디코딩된 데이터 워드들을 획득하기 위해 제 1 다수의 에러 정정가능한 데이터 워드들을 디코딩하기 위한 하드 결정 디코더 및 정정되고 디코딩된 데이터 워드들의 신뢰성을 표시하는 신뢰성 정보, 예를 들어 소프트 결정 정보를 결정하기 위한 신뢰성 정보 추출기를 포함한다. 시스템은 적어도 하나의 추가적인 정정가능한 데이터 워드를 디코딩하기 위해 신뢰성 정보를 이용하도록 구성되는 소프트 결정 디코더를 더 포함한다. 신뢰성 정보를 이용하여 PUF를 에러 정정하는 것은 거짓 거부 레이트를 감소시킨다.
본 발명은 예시에 의해 그리고 첨부하는 도면들을 참조하여 더 상세하게 설명된다:
도 1a는 암호 시스템을 예시하는 블록도이다.
도 1b는 암호 시스템에 이용되는 데이터를 예시하는 블록도이다.
도 2a는 하드 결정 디코더를 예시하는 블록도이다.
도 2b, 2c 및 2d는 신뢰성 정보 추출기와 조합하여 하드 결정 디코더를 예시하는 블록도들이다.
도 3a 및 3b는 소프트 결정 디코더를 예시하는 블록도들이다.
도 4는 암호 시스템을 예시하는 블록도이다.
도 5는 암호 시스템을 예시하는 블록도이다.
도 6a 및 6b는 암호 시스템을 포함하는 스마트 카드를 예시하는 블록도들이다.
도 7은 암호화 방법을 예시하는 흐름도이다.
도면들 전반에, 유사하거나 대응하는 피처들이 동일한 참조 부호들에 의해 표시된다.
참조 부호들의 목록:
100 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 시스템
110 물리적 복제방지기능
115 초기 데이터 스트링
120 노멀라이저
125 제 1 다수의 에러 정정가능한 데이터 워드들
122 제 1 에러 정정가능한 데이터 워드
130 메모리
140,140a,140b 데이터 배열기
145 추가적인 정정가능한 데이터 워드
150 하드 결정 디코더
152 신뢰성 정보와 조합되는 제 1 디코딩된 데이터 워드
154 제 1 디코딩된 데이터 워드
155 제 2 다수의 정정되고 디코딩된 데이터 워드들
156 신뢰성 값
160,160a,160b 소프트 결정 디코더
162 신뢰성 정보를 포함하는 추가적인 정정가능한 데이터 워드
164 추가적인 정정가능한 데이터 워드
165 추가적인 정정되고 디코딩된 데이터 워드
166 신뢰성 정보
172 인코더
180 신뢰성 정보 추출기
182 거리 결정기
184 신뢰성 값 계산기
185 신뢰성 정보
192 추가적인 정정되고 디코딩된 데이터 워드
212,214,216,218 제 1 정정가능한 스트링들
222,224,226,228 제 1 디코더들
232,234,236,238 제 1 데이터 스트링들
240 인터리버
252,254,256 제 2 정정가능한 스트링들
262,264,266 제 2 디코더들
272,274,276 제 2 데이터 스트링들
600 스마트 카드
610 집적된 회로
605 카드
620 프로세싱 유닛
622 메모리
624 물리적 복제방지기능
626 소프트 결정 디코더
630 버스
640 스마트 카드
700 흐름도
710 PUF 판독
720 PUF 데이터로부터 제 1 정정가능한 코드워드들을 획득함
730 제 1 에러 정정가능한 코드를 이용하여 제 1 정정가능한 코드워드들을 디코딩함
740 제 1 정정가능한 코드워드들의 제 1 신뢰성 값들을 획득함
750 디코딩된 제 1 정정가능한 코드워드들로부터 제 2 정정가능한 코드워드를 획득함
760 제 1 신뢰성 값들 및 제 2 에러 정정가능한 코드를 이용하여 제 2 정정가능한 코드워드들을 디코딩함
770 디코딩된 제 2 정정가능한 코드워드들로부터 신뢰성있는 데이터 스트링을 획득함
본 발명이 많은 서로 다른 형태들로 실시예를 허용지만, 본 개시물이 본 발명의 원리들의 예시로서 고려되는 것이며 본 발명을 도시되고 설명된 특정 실시예들에 제한하도록 의도되지 않는다는 점을 포함해서, 도면에 도시되며 본원에서 상세하게 하나 또는 그 초과의 특정 실시예들이 설명된다.
본 발명은 소프트-결정 정보가 임의의 에러 정정 디코더의 출력으로부터 도출될 수 있으며 다음의 에러 정정 디코더에서 에러들을 정정하기 위해 이용될 수 있다는 식견에 기초한다. 신뢰성 값은 예를 들어, 에러 정정된 출력 코드워드와 잡음있는 입력 코드워드 사이의 차이에 기초하여 컴퓨팅될 수 있다. 에러 정정된 출력 코드워드가 그의 k개의 정보 비트들로 디코딩될 때, 모든 정보 비트들이 신뢰성 값과 관련된다.
도 1a는 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 시스템(100)을 예시한다. 시스템(100)은 에러 정정을 개선하기 위해 소프트 결정 정보를 이용한다. 도 1b는 시스템(100)에 이용되는 데이터를 예시한다.
시스템(100)은 물리적 복제방지기능(110)을 포함한다. PUF(110)는 물리적 복제방지 기능의 부분적으로 랜덤한 물리적 특성들에 적어도 부분적으로 의존하여 초기 데이터 스트링(115)을 설정하도록 구성된다.
PUF(110)는 임의의 알려진 물리적 복제방지기능일 수 있다. 시스템(100)은 소프트 결정 정보를 필요로 하더라도, PUF(110)는 하드 정량화된 데이터(hard quantified data)만을 제공할 수 있다. 전형적으로, PUF(110)의 출력은 물리적 현상의 측정들을 임계값과 내부적으로 비교함으로써 획득된다. 그 경우에, 측정들이 어디서 임계값을 초과하거나 미만인지 여부의 정보만이 PUF(110)에 의해 출력되어야 한다. 전형적으로, PUF에서의 내부 측정들에 대한 액세스할 수 없다.
PUF(110)는 그 파워-업 컨텐츠가 제조 변화들에 의존하는 특성을 갖는 휘발성 메모리일 수 있다. 스타트-업 값들은 그 후에 초기 데이터 스트링(115)으로서 이용된다. 동일한 설계를 갖는 PUF(110)의 2개의 서로 다른 예시들의 2개의 스타트-업 값들 사이의 차이들은 동일한 PUF(110)의 2개의 서로 다른 스타트-업으로부터 획득되는 값들 사이에서보다 크다. 예를 들어, PUF(110)는 SRAM을 포함할 수 있어, 이로써 초기 데이터 스트링(115)은 파워-업 후에 SRAM의 컨텐츠가 된다.
시스템(100)은 노멀라이저(120)를 더 포함한다. 노멀라이저(120)는 PUF(110)로부터 초기 데이터 스트링(115)을 획득한다. 전형적인 초기 데이터 스트링은 특정 구조를 갖지 않는다. 노멀라이저(120)는 초기 데이터 스트링에 기초하여 제 1 다수의 에러 정정가능한 데이터 워드들(125)을 결정한다. 종종 노멀라이저(120)는 XOR들을 칭하는, 소위 조력자 데이터를 초기 데이터 스트링에 추가한다. 조력자 데이터의 구성은 이하에 더 설명된다. 노멀라이저(120)의 결과로서, 초기 데이터 스트링은 에러 정정가능한 데이터로 변환된다. 에러 정정가능한 데이터는 정정가능하며, 따라서 후속적으로 획득되는 초기 데이터 스트링들 사이의 차이에 대해 보상하여, 충분히 낮은 에러 데이터가 제공된다.
시스템(100)은 메모리(130)를 포함한다. 메모리(130)는 다수의 메모리들, 휘발성 및 비-휘발성 둘 다를 포함할 수 있다. 예를 들어, 비-휘발성 메모리는 노멀라이저(120)에 의한 이용을 위해 조력자 데이터를 포함할 수 있다. 메모리(130)의 다른 부분들은 휘발성일 수 있으며 제 1 다수의 에러 정정가능한 데이터 워드들을 저장하기 위해 이용될 수 있다. 공유되는 휘발성 메모리 대신에, 예를 들어, 버스 또는 파이프라인인 다른 인터페이스가 이용될 수 있다.
시스템(100)은 제 2 다수의 정정되고 디코딩된 데이터 워드들(155)을 획득하기 위해 제 1 다수의 에러 정정가능한 데이터 워드들(125)을 디코딩하도록 구성되는 하드 결정 디코더(150)를 포함한다. 하드 결정 디코더(150)는 조력자 데이터를 획득하기 위해 이용되는 에러 정정 코드에 대응하는 에러 정정 알고리즘에 기초하여 작동한다. 유용하게, 하드 결정 디코더(150)는 반복 코드와 같은 낮은 코드 레이트 코드이다. 하드 결정 디코더(150)에 의해 이용되는 에러 정정 코드는 C1으로 표시된다. 예를 들어, C1은 길이 23의 반복 코드이다. 이러한 코드는
Figure 112014063233804-pct00001
코드, 즉 코드 데이터 워드들이 길이 n1, 디멘션 k1 및 최소 거리 d1을 갖는 코드로서 표시된다. 전형적으로, 하드 결정 디코더(150)는 제 2 다수를 획득하기 위해 제 1 다수를 하나씩 디코딩한다.
시스템(100)은 제 1 다수의 에러 정정가능한 데이터 워드들의 상기 디코딩의 신뢰성을 표시하는 신뢰성 정보(185)를 결정하도록 구성되는 신뢰성 정보 추출기(180)를 포함한다. 신뢰성 정보 추출기(180)는 하드 결정 디코더(150)의 일부 또는 별개의 엔티티일 수 있다. 도 1a에서, 신뢰성 정보 추출기(180)는 별개로 도시되지 않는다. 도 1b는 신뢰성 정보(185)를 제 1 다수(125) 및 디코딩된 제 2 다수(155)에서의 잡음있는 코드워드들에 의존하는 것으로 도시한다. 이것은 이하에 설명된 바와 같은 인코더를 이용하여 가능하다. 대안적으로, 신뢰성 정보(185)는 하드 결정 디코더(150)에서, 획득되는 정정된 코드워드들을 이용하여 제 1 다수(125)로부터 직접 도출될 수 있다.
에러 정정가능한 데이터 워드에 대응하는 디코딩되고 정정된 데이터 워드를 제외하고, 정정된 코드워드에 대응한다. 전형적으로, 신뢰성 정보 추출기(180)는 제 1 다수의 대응하는 데이터 워드와 대응하는 정정된 코드워드를 비교함으로써 제 2 다수의 각각 정정되고 디코딩된 데이터 워드에 대한 신뢰성 값을 획득한다. 예를 들어, 제 1 다수의 데이터 워드와 대응하는 정정된 코드워드 사이의 차이, 예를 들어 거리가 더 작은 경우에 신뢰성 정보 추출기(180)에 의해 획득되는 신뢰성 값이 더 크다.
시스템(100)은 적어도 하나의 추가적인 정정가능한 데이터 워드(145)를 획득하기 위해 제 2 다수의 정정되고 디코딩된 데이터 워드들을 배열하도록 구성되는 데이터 배열기(140)를 포함한다. 제 2 다수에서 획득되는 조합된 데이터는 초기의 스트링보다 더 낮은 에러 레이트를 가지며 신뢰성 데이터를 갖는다. 따라서 이러한 데이터는 초기 데이터 스트링에 관하여 2가지 방식들로 개선된다. 데이터 배열기(140)는 새로운, 가능하게는 다른 코드에 관하여, 데이터를 새로운 에러 정정가능한 데이터 워드들로 배열한다. 이 스테이지에서 추가적인 조력자 데이터에 대한 필요성이 존재하지 않는다. 데이터 배열기(140)는 또한 신뢰성 정보를 파악한다. 제 2 다수 중 하나의 데이터 워드에 신뢰성 정보 추출기(180)에 의해 할당되는 신뢰성 정보는 그 하나의 데이터 워드로부터 획득되는 적어도 하나의 추가적인 정정가능한 데이터 워드의 일부에 데이터 배열기(140)에 의해 할당된다.
시스템(100)은 적어도 하나의 추가적인 정정되고 디코딩된 데이터 워드(165)를 획득하기 위해 신뢰성 정보(185)를 이용하여 적어도 하나의 추가적인 정정가능한 데이터 워드(145)를 디코딩하도록 구성되는 소프트 결정 디코더(160)를 포함한다. 많은 하드 결정 에러 정정 알고리즘들은 소프트 결정 변형들로 변환될 수 있다. 소프트 결정 디코더(160)에 의해 이용되는 에러 정정 코드는 C2로서 표시될 것이다. 예를 들어, C2는 파라미터들
Figure 112016115979485-pct00002
을 갖는 BCH 코드일 수 있다. 시스템(100)에서 이용하는데 적합한 다른 가능한 소프트 결정 코드들이 이하에 설명된다.
마지막으로, 신뢰성있는 데이터 스트링이 적어도 하나의 추가적인 정정되고 디코딩된 데이터 워드(165)로부터 획득된다. 예를 들어, 신뢰성있는 데이터 스트링은 적어도 하나의 추가적인 정정되고 디코딩된 데이터 워드이다. 예를 들어, 신뢰성있는 데이터 스트링은 추가적인 에러 정정기, 가능하게는 추가적인 소프트 결정 디코더에 의해 적어도 하나의 추가적인 정정되고 디코딩된 데이터 워드(165)로부터 획득된다.
소프트 결정 디코더(160)의 코드워드들은 하드 결정 디코더(150)에 의해 디코딩된 데이터 워드들로서 다른 길이인 경향이 있다. 이들 서로 다른 길이들 사이의 변환은 적어도 데이터 배열기(140)에 의해 이루어진다. 데이터 배열기(140)는 간단하게 제 2 다수를 연결할 수 있으며 소프트 결정 디코더(160)를 위해 정확한 크기의 데이터 워드들로 최종 스트링을 분할할 수 있다.
기호 C(S)는 에러 정정 코드로 값 S의 인코딩을 표시하도록 이용된다. 2개의 연속적인 에러 정정 코드들이 이용될 때, 값 S의 인코딩은 다음과 같이 기록될 수 있다:
Figure 112016115979485-pct00003
. 이러한 기호는 값 S가 먼저 에러 정정 코드 C2로 인코딩되며 최종 코드워드가 에러 정정 코드 C1으로 인코딩되는 것을 표시한다. 값 C(S)가 디코딩될 때, 먼저 코드 C1의 에러 디코딩이 행해져야 하며, 그 후에 코드 C2의 에러 디코딩이 후속된다. C1에 의해 정정될 수 없는 에러들은 여전히 코드 C2에 의해 정정가능할 수 있다. 시스템(100)의 경우에, C1은 하드 결정 디코더(150)에 의해 이용되는 코드를 표시하고, C2는 소프트 결정 디코더(160)에 의해 이용되는 코드를 표시한다.
시스템(100)의 동작은 2개의 페이즈들(phases)을 갖는다. 먼저 조력자 데이터가 획득되는 등록 페이즈, 그 다음에 신뢰성있는 데이터 스트링을 획득하기 위해 조력자 데이터가 이용되는 사용 페이즈. 전형적으로, 정해진 시스템(100)에 대해 등록 페이즈는 단지 한번 행해지는 한편 사용 페이즈는 여러번 행해질 수 있다.
등록 페이즈에서 일부 외부 또는 내부 메모리에 저장될 수 있는 조력자 데이터가 획득된다(또한 WO2004066296A1을 참조). 조력자 데이터는 PUF 응답, 즉 초기 데이터 스트링에서의 에러들을 정정하기 위해 이용될 수 있는 정보 및 가능하게는 PUF 응답 신호들을 올바르게 프로세싱하기 위해 요구되는 정보를 포함한다. 더욱이 조력자 데이터는 에러 정정된 데이터를 압축하고 및/또는 최종 암호 키를 리트리브하기 위해 이용되는 압축 함수(예를 들어, 해시 함수)의 선택에 관한 정보를 포함할 수 있다.
잘 알려진 구성인, 코드-오프셋 방법은 다음과 같이 작동한다. 등록 페이즈 동안 PUF(110)는 챌린지되며 응답 X는 초기 데이터 스트링(110)을 획득하기 위해 측정된다. 설명의 간략성을 위해 여기서 X는 이진 비트 스트링인 것으로 가정한다. (사실 실제 PUF 응답 R은 가능하게는 일부 종류의 프로세싱 조력자 데이터 W3을 이용하여, R로부터 비트 스트링 X를 도출하기 위해 일부 프로세싱을 먼저 필요로 할 수 있다). 비밀 비트 스트링 S는 랜덤하게 선택되며 코드워드 C(S)를 발생시키는 에러 정정 코드로 인코딩된다. 조력자 데이터 값들은 다음과 같이 발생된다:
Figure 112014063233804-pct00004
Figure 112014063233804-pct00005
Figure 112014063233804-pct00006
= 압축 또는 해시 함수
Figure 112014063233804-pct00007
의 패밀리에서 랜덤하게 선택된 인덱스
Figure 112014063233804-pct00008
Figure 112014063233804-pct00009
= 임의의 추가적인 신호 프로세싱 조력자 데이터(이용되는 PUF의 타입에 따라, 임의선택적)
Figure 112014063233804-pct00010
조력자 데이터는
Figure 112014063233804-pct00011
Figure 112014063233804-pct00012
을 포함하며 로컬로, 즉 메모리(130)에 또는 나중의 이용을 위해 외부적으로 저장될 수 있다.
Figure 112014063233804-pct00013
Figure 112014063233804-pct00014
은 임의선택적이다.
시스템(100)은 다음의 단계들을 이용하여, 예를 들어 키를 재구성하기 위해 조력자 데이터 값들
Figure 112014063233804-pct00015
Figure 112014063233804-pct00016
를 이용한다:
1. (PUF 응답 R'으로부터 비트 스트링 Y를 도출하기 위해 신호 프로세싱 블록에 대한 입력으로서 조력자 데이터
Figure 112016115979485-pct00017
를 임의선택적으로 이용하여) PUF(110)를 챌린지하고 응답 Y를 측정한다.
2. 노멀라이저(120)에서 재구성 코드워드
Figure 112016115979485-pct00018
:
Figure 112016115979485-pct00019
를 컴퓨팅함.
3. 소프트 결정 디코더(160)에서의 이용을 위한 신뢰성 데이터를 획득하기 위해 하드 결정 디코더(150)를 이용하여, 본원에 설명된 바와 같은 코드워드
Figure 112014063233804-pct00020
상의 에러들을 정정한다. X와 Y 사이의 해밍 거리가 조합된 에러 정정 코드들의 에러 정정 능력보다 작거나 동일한 경우에, 에러들은 정정될 수 있으며 값
Figure 112014063233804-pct00021
가 재구성된다.
4. 임의선택적으로, S를 획득하기 위해
Figure 112014063233804-pct00022
를 디코딩한다.
5. 임의선택적으로, 키
Figure 112014063233804-pct00023
를 재구성하기 위해 값 S 상에
Figure 112014063233804-pct00024
로 표시되는 해시 함수를 적용한다.
Figure 112016115979485-pct00025
Figure 112016115979485-pct00026
의 이용은 임의선택적이다. (예를 들어, 리던던트 정보를 첨부하여) 조력자 데이터를 생성하고 이용하는 다른 방식들이 존재한다.
대안적으로
Figure 112016115979485-pct00027
를 조력자 데이터
Figure 112016115979485-pct00028
로 XOR함으로써 원래의 PUF 데이터, 즉 SRAM 스타트업 데이터 X를 재구성하기 위해 단계 4에서
Figure 112016115979485-pct00134
를 이용한다; 그 경우에 단계5에서의 키는
Figure 112016115979485-pct00029
로서 컴퓨팅될 수 있다.
공격자가 조력자 데이터(
Figure 112016115979485-pct00030
,
Figure 112016115979485-pct00031
또는
Figure 112016115979485-pct00032
)를 조작하는 것을 방지하기 위해, 암호 일-방향 해시 함수를 이용하여 체크 값이 컴퓨팅될 수 있다:
Figure 112016115979485-pct00033
또는
Figure 112016115979485-pct00034
. 키 또는 S가 재구성된 후에 사용된 조력자 데이터 값들을 재구성된 값 S 또는 K와 함께 해싱함으로써 그리고 그 결과를 저장된 값 V와 비교함으로써 사용된 조력자 데이터 값들이 정정되었는지 여부가 컴퓨팅될 수 있다.
에러 정정 코드로 비밀 비트 스트링 S을 인코딩하는 것은 연결된 코드 C를 이용한다:
Figure 112016115979485-pct00035
. 즉 첫 번째 S는 소프트 결정 디코더의 에러 정정 코드로 인코딩되며, 그 후에 데이터 배열기(140)의 역에 따라 재배열되며, 마지막으로, 하드 결정 디코더의 에러 정정 코드로 인코딩된다. 더 많은 디코더들이 이용되는 경우에, 대응하는 인코더들은 인코딩동안 사용되는 역 순서로 적용된다.
일부 코드들은 랜덤 코드워드를 직접 획득하도록 허용한다. 그 경우에 비밀 비트 스트링 S를 발생시키고 인코딩하는 중간 단계가 스킵될 수 있으며, 대신에 랜덤 코드워드
Figure 112016115979485-pct00036
가 직접 선택될 수 있다.
등록 페이즈 후에, 사용 페이즈 동안, 시스템(100)은 다음과 같이 동작된다. 초기 데이터 스트링(115)은 PUF(110)에 의해 설정된다. PUF(110)가 단일-챌린지인 경우에, 이것은 파워링(powering) 시스템(100)에 의해 간단하게 이루어질 수 있다. 노멀라이저(120)는 조력자 데이터를 초기 데이터 스트링에 적용하며 제 1 다수의 에러 정정가능한 데이터 워드들(125)이 획득된다. 제 1 다수는 현재까지 가능한 한 하드 결정 디코더(150)에 의해 에러-정정되며(일부 워드들은 너무 많은 에러들 때문에 올바르지 않게 디코딩될 수 있으며) 제 2 다수(155)가 획득된다. 신뢰성 정보(185)는 제 1 다수의 에러 정정가능한 데이터 워드들의 상기 디코딩의 신뢰성을 표시하는 신뢰성 정보 추출기(180)에 의해 획득된다. 바람직하게는 신뢰성 정보 추출기(180)는 제 2 다수에서의 데이터 워드들의 각 하나에 대한 신뢰성 값을 설정한다. C1이 반복 코드인 경우에 신뢰성 정보는 제 2 다수에서의 각 비트에 대해 획득된다. 마지막으로, 제 2 다수로부터 획득되는 적어도 하나의 추가적인 정정가능한 데이터 워드(145)는 적어도 하나의 추가적인 정정되고 디코딩된 데이터 워드(165)를 획득하기 위해 신뢰성 정보(185)를 이용하여 소프트 결정 디코더(160)에 의해 디코딩된다.
시스템(100)은 키 도출 알고리즘을 신뢰성있는 데이터 스트링(도시되지 않음)에 적용함으로써 암호 키를 설정하기 위한 키 설정기를 포함할 수 있다. 예를 들어, 키 설정기는 가능하게는 솔트(salt)로 신뢰성있는 비트 스트링을 해싱할 수 있다. 솔트는 데이터 항목이며 동일한 입력으로부터의 다수의 키들을 생성하기 위해 사용될 수 있다. 예를 들어 솔트는 랜덤 값이거나 임시값(nonce)일 수 있다. 솔트는 바람직하게 예를 들어, 키 설정기 상의 비-휘발성 메모리에 저장된다.
도 2a는 통합된 신뢰성 정보 추출기(180)를 갖는 하드 결정 디코더(150)의 실시예를 예시한다. 하드 결정 디코더(150)는 제 1 에러 정정가능한 데이터 워드(122)와 같은 에러 정정가능한 데이터 워드들을 수신하도록 구성된다. 에러 정정가능한 데이터 워드들에는, 데이터 워드(152)와 같은 신뢰성 정보와 조합되는 디코딩된 데이터 워드를 생산하기 위해 에러 정정 알고리즘이 적용된다. 하드 결정 디코더(150)는 제 1 다수의 모든 데이터 워드들에 순차적으로 적용된다.
도 2b는 별개의 신뢰성 정보 추출기(180)를 도시한다. 이 경우에 하드 결정 디코더(150)는 신뢰성 정보를 생산하지 않으며, 단지 제 1 디코딩된 데이터 워드(154)와 같은 정정되고 디코딩된 데이터 워드들을 생산하는 정규 하드 결정 디코더일 수 있다. 하드 결정 디코더(150)는 디코딩에 대응하는 신뢰성 값을 생산하기 위해 신뢰성 정보 추출기(180)와 협력한다. 도시된 경우에, 제 1 신뢰성 값(156)은 디코딩된 워드(154), 즉 제 1 정정가능한 데이터 워드(122)의 디코딩의 신뢰성을 표시한다. 하드 결정 디코더(150)는 제 1 다수에서의 다수의 에러 정정가능한 데이터 워드들에 적용되는 한편 신뢰성 정보 추출기(180)는 다수의 대응하는 신뢰성 값들을 획득하기 위해 이용된다.
도 2c 및 2d는 신뢰성 정보 추출기(180)가 하드 결정 디코더(150)와 조합될 수 있는 2가지 방식들을 예시한다.
도 2c는 일 예로서, 제 1 다수의 제 1 에러 정정가능한 데이터 워드(122)의 디코딩을 도시한다; 동일한 디코딩이 제 1 다수의 다른 워드들에 적용된다. 제 1 정정가능한 데이터 워드(122)는 가능하게는 목록 디코딩을 이용하여 구현되는 에러 정정 알고리즘, 즉 최근접 코드워드 알고리즘(nearest code word algorithm)을 이용하여, 코드워드들, 전형적으로 최근접 코드워드들로 제 1 정정가능한 데이터 워드(122)를 변환하는 하드 결정 디코더(150)에 의해 수신된다. 코드워드는 그 후에 디코딩된 데이터 워드를 획득하기 위해 디코딩된다. 제 1 정정가능한 데이터 워드(122)의 경우에, 제 1 디코딩된 데이터 워드(154)가 획득된다. 코드워드를 디코딩하는 단계는 리던던트 정보를 제거하는 단계를 포함한다. 코드워드의 길이(예를 들어, 비트들의 수)는 'n'(코드워드 길이)으로부터 'k'(코드 디멘션)로 감소한다. 도 2c는 거리 결정기(182)를 더 도시한다. 거리 결정기(182)는 에러 정정가능한 데이터 워드와 디코더에 의해 획득되는 코드워드 사이의 거리를 결정하도록 구성된다. 거리 결정기(182)는 코드워드를 획득하기 위해 하드 결정 디코더(150)에 기능적으로 접속되며, 거리 결정기(182)는 또한 정정되지 않은 데이터, 워드 제 1 정정가능한 데이터 워드(122)를 수신한다. 거리 결정기(182)는 예를 들어 정정되지 않은 데이터 워드 및 정정된(예를 들어, 최근접) 코드워드간의 해밍 거리를 컴퓨팅할 수 있다. 거리 결정기(182)를 위한 다른 옵션들이 가능하며 본원에서 주목된다.
도 2c는 거리 결정기(182)로부터의 거리를 수신하도록 구성되는 신뢰성 값 계산기(184)를 더 도시한다. 거리 결정기(182)에 의해 획득되는 거리는 신뢰성 값 계산기(184)에 의해 신뢰성 값(156)으로 변환된다. 예를 들어, 신뢰성 값 계산기(184)는 원하는 신뢰성 스케일로, 거리 결정기(182)에 의해 획득되는 거리를 선형적으로 스케일할 수 있다. 바람직하게는, 높은 거리는 낮은 신뢰성에 대응한다. 거리 결정기(182)에 대한 다른 옵션들이 가능하며 본원에서 주목된다.
도 2c에 기초하여 이용하는 실시예의 일 예로서, 파라미터들
Figure 112016115979485-pct00037
을 갖는 BCH 코드로부터의 코드워드들을 고려한다. 이 코드의 에러 정정 능력은
Figure 112016115979485-pct00038
비트들이다.
정정되어야 하는 제 1 잡음있는 코드워드(122)를 다음과 같이 가정한다:
Figure 112016115979485-pct00039
Figure 112016115979485-pct00040
. 에러 정정 후에 다음을 획득한다.
Figure 112016115979485-pct00041
. 신뢰성 값
Figure 112016115979485-pct00042
는 정정된 에러들의 수에 기초하여 컴퓨팅될 수 있다. 예를 들어, 신뢰성 값 계산기(184)는
Figure 112016115979485-pct00043
Figure 112016115979485-pct00044
로서 컴퓨팅된 신뢰성 값을 컴퓨팅할 수 있으며, 여기서 a는 정정된 에러들의 수이며 t는 하드 결정 디코더(150)에서 이용되는 코드의 에러 정정 능력이다. 이 경우에 컴퓨팅된 신뢰성 값은:
Figure 112016115979485-pct00045
Figure 112016115979485-pct00046
이다. [비-완벽 코드들에 대해 신뢰성 값은 정정될 수 없는 코드워드들에 대해 예약되는 특정 신뢰성 값
Figure 112016115979485-pct00047
이 존재하도록
Figure 112016115979485-pct00048
로서 컴퓨팅될 수 있다.] 여기서 c의 높은 값은 높은 신뢰성을 표시하며, 또한 역 스케일을 이용할 수 있으며 c의 낮은 값은 높은 신뢰성을 표시한다.
코드워드를 디코딩한 후에 출력 비트들과 신뢰성 값을 조합하기 위해, 다음의 방법이 적용될 수 있다. 먼저 디코딩된 출력 비트들은 부호 값으로 변환된다: 제로 비트는 -1로서 코딩되며, 1 비트는 +1로서 코딩된다. 그 후에 부호 값은 신뢰성 값으로 곱해진다. 그러므로 본 예에서 소프트-출력 값들은 다음과 같이 된다:
Figure 112014063233804-pct00049
Figure 112014063233804-pct00050
. 이것은 기본적으로 여전히 모든 비트들이 신뢰성 값 1/3을 갖는 비트 스트링
Figure 112014063233804-pct00051
의 표현임을 주목한다. 그러므로, 값들의 부호는 비트 값들에 대응하며 절대 값은 신뢰성에 대응한다. 따라서 항상 디코딩된 데이터 워드들 및 신뢰성을 별개로 또는 단일 스트링으로 조합하여 리코딩하는 옵션을 갖는다.
추가적인 예로서, 제 2 디코딩된 코드워드
Figure 112014063233804-pct00052
은 소프트 정보 출력 스트링
Figure 112014063233804-pct00053
을 발생시키는 어떠한 에러들도 정정하지 않고서 디코딩되었을 수 있으며, 제 3 디코딩된 코드워드
Figure 112014063233804-pct00054
은 예를 들어 소프트 정보 출력 스트링
Figure 112014063233804-pct00055
을 발생시키는 1개의 정정된 에러로 디코딩되었을 수 있다. 데이터 배열기(140)에 의해 이들 출력 값들을 연결하는 것은 조합된 소프트-정보 스트링을 발생시킨다:
Figure 112014063233804-pct00056
소프트-정보 스트링, 또는 신뢰성 정보 스트링은 제 2 다수의 각 비트에 대한 단일 신뢰성 값을 갖는다. 신뢰성 값이 다수의 비트들을 갖는 데이터 워드들에 대응하는 경우에, 신뢰성 값이 다수의 비트들의 각 하나에 할당된다. 상기 예에서 디코딩된 비트들 및 신뢰성 값들은 단일 스트링으로 조합됨을 주목한다. 이것은 편리하지만 반드시 필요한 것은 아니다.
S는 포함된 소프트-결정 정보를 갖는 다른 에러 정정 코드의 코드워드 그 자체이다. 이 코드워드는 소프트 결정 디코더(160)에서 적어도 하나의 추가적인 정정가능한 데이터 워드로서 이용될 수 있다. 소프트 결정 디코더(160), 즉 제 2 에러 정정 디코더는 가장 유사한 코드워드를 컴퓨팅하고 그 코드워드를 디코딩하기 위해 이러한 소프트-결정 정보를 이용할 수 있다. 대안적으로, S에서의 값들은 다양한 다른 제 2 에러 정정 코드워드들의 소프트-결정 입력 값들을 형성한다. 다시 말해 소프트-정보 값들은 제 2 소프트-결정 디코더의 다수의 에러 정정 코드워드들에 걸쳐 인터리빙된다.
일부 에러 정정 메커니즘들은 에러 정정의 중간 단계를 갖지 않고서 입력 잡음있는 코드워드를 직접 디코딩하도록 허용한다. 그런 경우에 디코딩된 비트 스트링은 에러 정정된 코드워드를 리트리브하기 위해 재인코딩될 수 있다. 이러한 대안은 도 2d에 이용된다.
도 2d는 도 2c에 도시되는 엘리먼트들에 인코더(172)를 추가하여 도시한다. 하드 결정 디코더(150)는 대응하는 코드워드가 아니라, 디코딩되고 정정된 데이터 워드를 제공하기 위해서만 구성된다. 일부 코드들은 코드워드들의 별개의 컴퓨테이션을 요구하지 않기 때문에, 이것이 발생할 수 있다. 하드 결정 디코더(150)가 하드웨어 에러 디코더로서 구현되는 경우에, 이는 유사하게 코드워드들과 같은 내부 중간 단계들로 액세스하지 않을 수도 있다.
인코더(172)는 제 1 디코딩된 데이터 워드(154)를 재인코딩하도록 구성된다. 그 결과는 제 1 정정가능한 데이터 워드(122)에 대응하는 코드워드이다. 다수의 서로 다른 잡음있는 코드워드들이 동일한 정정된 코드워드에 대응하는 것을 주목한다. 거리 결정기(182)는 따라서 노멀라이저(120)로부터 잡음있는 코드워드 및 인코더(172)로부터 정정된 코드워드를 수신한다. 거리 결정기는 따라서 도 2c에서와 동일한 입력들을 가지며 도 2c에서와 같이 거리를 컴퓨팅한다. 또한 신뢰성 값 계산기(184)는 도 2c에서와 같이 작동할 것이다.
디코딩 후에 신뢰성 값 (c)를 출력 비트 (d)와 조합하는 대안적인 방식은 낮은 신뢰성의 비트들이 1/2에 가까우며 높은 신뢰성의 비트들이 대응하는 데이터 비트에 의존하여 0이나 1에 가깝도록, c 및 d를 0과 1사이의 단일 값으로 조합하는 것이다. 예를 들어, d가 0 또는 1이며, c는 0과 1 사이에 있는 경우에, 조합된 값은
Figure 112016115979485-pct00057
Figure 112016115979485-pct00058
로서 취해질 수 있으며, 가능하게는 미리 결정된 수의 비트들로 정량화된다. 여기서
Figure 112016115979485-pct00059
로우(low)는 낮은 신뢰성을 표시한다.
거리에 기초하여 신뢰성 값을 컴퓨팅하는 것은 다양한 방식들로 행해질 수 있다. 코드 C1에 대한 반복 디코더의 입력은 길이 n1을 갖는 것으로 가정한다. 잡음이 없는 것으로 가정하면, 이러한 입력의 해밍 가중치(HW)는 0 또는 n1일 것이다. 실제 PUF 방식에서 잡음이 존재할 것이며 따라서 입력의 HW는 0과 n1 사이의 임의의 값을 가질 수 있다. 이러한 HW는 이전의 방법들에서 활용되지 않는 정보를 포함한다. 정보는 정확한 디코딩의 확률에 관련된다. 입력의 HW는 0 또는 n1에 가까울 때, 이러한 입력의 정확한 디코딩의 확률은 HW가
Figure 112016115979485-pct00060
에 가까울 때보다 더 높다.
예를 들어,
Figure 112016115979485-pct00061
인 경우. 디코더(150)의 디코딩된 출력은
Figure 112016115979485-pct00062
일 때 1일 것이다. 디코더가 정확할 확률은
Figure 112016115979485-pct00063
일 때보다
Figure 112016115979485-pct00064
일 때 훨씬 더 크지만, 이 정보는 신뢰성 정보를 추출하지 않는 디코딩을 위한 말하자면 다수결(majority voting)을 이용할 때 소실된다. 거리 결정기(182) 및 신뢰성 값 계산기(184)는 소프트-결정 정보가 통합되도록 입력 비트들의 시퀀스의 해밍 가중치를 10진 값으로 양자화한다.
예를 들어,
Figure 112014063233804-pct00065
에 대한 2-비트 양자화(4개 레벨들로)에서, 디코더는 23개의 입력 비트들의 해밍 가중치(HW)에 따라, 4개의 가능한 출력들을 갖는다:
Figure 112014063233804-pct00066
Figure 112014063233804-pct00067
.
Figure 112016115979485-pct00068
값 "threshold"은 C2에 대한 제 2 디코더와 조합하여 최상으로 작용하는 구성을 획득하기 위해 변화될 수 있다. 임계값에 대한 예시적인 값은 5이다.
소위 완벽한 에러 정정 코드들이 이용되는 경우에, 가장 간단한 구현은 가능하게는 거리 결정기(182)를 이용하여, 동일한 신뢰성 값을 특정 코드워드의 디코딩 후에 모든 비트들에 할당하는 것이다. 이것은 그러나 필수적인 것은 아니다. 예를 들어, 비-완벽 에러 정정 코드가 이용되는 경우에, 서로 다른 신뢰성 값들이 서로 다른 출력 비트들에 할당될 수 있다. 예를 들어, 잡음있는 코드워드가 1개보다 많은 코드워드들로부터 동일한 거리에 있는 경우에, 이들 코드워드들에서의 비트들 중 어느 것이 동일하고 비트들 중 어느 것이 다른지가 검증될 수 있다. 임계값보다 더 많은 코드워드들에서 동일한 비트들은 더 높은 신뢰성 값을 얻을 것이다.
일반적으로, 신뢰성 값 계산기(184)는 PUF로부터 획득되는 코드워드와 정정된 코드워드 사이의 차이, 예를 들어, 거리에 기반한 미리 결정된 공식을 적용할 수 있다.
도 3a 및 3b는 소프트 결정 디코더(160)의 2개의 가능한 실시예들을 도시한다. 도 3a는 신뢰성 정보(162)를 포함하는 추가적인 정정가능한 데이터 워드를 수신하는 소프트 결정 디코더(160)를 도시한다. 도 3b는 추가적인 정정가능한 데이터 워드(164) 및 별개의 신뢰성 정보(166)를 수신하는 소프트 결정 디코더(160)를 도시한다.
소프트 결정 디코더를 구현하는 여러 방식들이 존재한다. 하나의 옵션은 소프트 결정 정보를 고려하도록 구성되는 특정 알고리즘을 이용하는 것이다. 예를 들어, 후속하는 논문, 'An Efficient Algorithm for Soft-Decision Decoding of the (24,12) Extended Golay Code', Hackett, C. IEEE Transaction on Communications, Jun 1981, Volume: 29 Issue:6, Page(s): 909-911에 적합한 소프트 결정 디코더를 개시한다.
(방법 A로서 지칭되는) 추가적인 방법은 각각의 가능한 코드워드를 주시하고 가장 가깝다는 의미에서 어느 코드워드가 가장 유사한지를 결정하기 위해 유클리드 거리를 이용하는 것이다. 이 방법은 또한 최근접-이웃 디코딩이라 칭해진다. 이 방법은 룩업 테이블들(look-up tables)의 이용으로 효율적으로 구현될 수 있다. 이러한 구현은 에러-정정 코드가 더 높은 수의 코드워드들을 갖는 때에 덜 효율적으로 된다.
예를 들어, 소프트 결정 디코더(160)는 소프트 결정 디코더(160)에 의해 이용되는 에러 정정 코드의 모든 코드워드들을 포함하는 코드워드 테이블을 포함한다. 코드워드 테이블에서의 각 코드워드에 대해 코드워드와 적어도 하나의 추가적인 정정가능한 데이터 워드 사이의 거리가 컴퓨팅된다. 낮은 신뢰성 값을 갖는 추가적인 정정가능한 데이터 워드의 엘리먼트들, 예를 들어 비트들은 거리에서 더 낮은 가중치를 제공받는다. 그 거리는 신뢰성 정보가 1/2로 엘리먼트들을 스케일링함으로써 통합되는 적어도 하나의 추가적인 정정가능한 데이터 워드와 코드워드 테이블 사이의 유클리드 거리를 컴퓨팅함으로써 컴퓨팅될 수 있다.
다른 방법(방법 B)은 에러-정정 코드들의 코드워드들 사이의 최소 거리를 이용하는 것이다. 가장 유사한 코드워드는 양자화 값들의 이러한 거리 내에 있으며 이러한 최소 거리 내의 모든 에러 값들을 적용함으로써 발견될 수 있다. 이 구현은 에러-정정 코드가 코드워드들 사이의 높은 최대 거리를 가질 때, 코드워드들이 많은 비트들을 가질 때 및 더 높은 수의 양자화 비트들이 이용될 때 덜 효율적으로 된다. 그러나 코드워드들의 수에 의해 효율성에서 제한되지 않는다.
특정 에러 정정 코드들의 특정 속성들은 더 효율적인 구현들을 야기할 수 있다.
방법 A에 따른 최대 가능성 디코더의 일 예를 제공한다. 더 구체적으로 파라미터들
Figure 112016115979485-pct00069
을 갖는 예시적인 최대 가능성 리드-뮬러(Reed-Muller)(8,4,4) 디코더를 취한다. 모든 가능한
Figure 112016115979485-pct00070
코드워드들이 후속하는 코드워드 테이블에 정렬된다.
코드워드 테이블:
Figure 112016115979485-pct00071
Figure 112014063233804-pct00072
Figure 112014063233804-pct00073
코드워드 비트와 입력 양자화 값 사이의 모든 가능한 유클리드 거리들이 이하의 테이블에 정렬된다. 여기서 데이터 및 신뢰성 값은 대응하는 데이터 비트에 따라 낮은 신뢰성의 비트들이 1/2에 가까우며 높은 신뢰성의 비트들이 0 또는 1에 가깝도록 0과 1사이의 단일 값으로 조합된다. 전체 워드가 잘못 디코딩되며, 일부 비트들은 0 또는 1로부터 플립되거나 그 반대가 발생할 수 있음을 주목한다. 그 경우에 디코딩된 코드워드가 잘못된 것이며 정확한 코드워드로부터 일부 거리에 있는 경향이 있다. 비트들은 낮은 신뢰성 값을 얻을 가능성이 있다.
2 비트 양자화를 갖는 거리 룩업:
Figure 112016115979485-pct00074
* 브라켓들 사이의 비트들이 10진 양자화 값의 디지털 표현을 형성하는 것을 주목한다. 이러한 표현은 제 1과 제 2 디코더 사이의 효율적인 정보 전송을 위해 이용된다.
유클리드 거리는 비트-거리들의 합계의 제곱근을 취함으로써 컴퓨팅된다. 최소 유클리드 거리를 갖는 코드워드가 가장 가능성있는 것이다. 제곱근은 이러한 비교
Figure 112016115979485-pct00075
를 위해 구현되어야 하는 것은 아니다.
양자화 값들 "00, 01, 11, 10, 01, 00, 11, 10"은 코드워드 테이블에서의 워드들의 각 하나에 대한 하기 제곱된 거리들을 제공한다:
Figure 112016115979485-pct00076
가장 유사한 코드워드는 따라서
Figure 112016115979485-pct00077
이다.
2-비트 양자화가 본원에서 일 예로서 이용됨을 주목한다. 입력으로부터 훨씬 더 많은 소프트-결정 정보를 얻기 위해, 해밍 가중치 양자화기(제 1 디코더)에 의한 양자화는 2개보다 많은 비트들로 증가될 수 있다. 본 예의 경우에 (5개의 비트들 출력의 모든 32개의 가능한 값들을 이용하지 않고) 5개 비트들로 표현될 수 있는 출력 값들의 최대 수는 24(0 내지 23)이다.
도 4는 암호 시스템(200)의 추가적인 예시이다.
제 1 다수의 스트링들은 PUF(110)로부터 수신된다; 제 1 다수의 제 1 정정가능한 스트링들(212, 214, 216, 218)이 도시된다. 시스템(200)은 제 1 디코더들(222, 224, 226, 228)을 포함한다. 단일 디코더, 즉 222에 의해 제 1 디코더들(222-228)을 교체하는 옵션을 가지며, 제 1 다수의 데이터 워드들을 차례로 디코딩한다. 제 1 디코더들은 제 1 데이터 스트링들의 제 2 다수를 획득하기 위해 제 1 다수를 정정하고 디코딩하며, 제 1 데이터 스트링들(232, 234, 236, 238)이 도시된다. 또한 (별개로 도시되지 않는) 제 2 다수의 각 데이터 스트링의 신뢰성 정보가 획득된다.
시스템(200)은 제 2 다수를 적어도 하나의 추가적인 정정가능한 데이터 스트링으로 인터리빙하기 위한 인터리버(240)를 포함한다; 제 2 정정가능한 스트링들(252, 254, 256)이 도시된다. 제 2 정정가능한 스트링들(252, 254, 256)의 각 하나는 제 2 다수의 적어도 2개의 데이터 워드들의 일부를 포함한다. 바람직하게, 하나의 제 2 정정가능한 스트링들에서의 각 비트는 제 1 다수의 다른 워드로부터 획득된다.
시스템(200)은 제 2 디코더들(262, 264, 266)을 더 포함한다. 제 2 디코더들은 제 2 데이터 스트링들(272, 274, 276)을 획득하기 위해 신뢰성 정보를 이용한다. 다시 단일 제 2 디코더가 또한 이용될 수 있다. 제 2 데이터 스트링들은 신뢰성있는 비트 스트링을 제공하도록 조합될 수 있다.
시스템(100) 및 시스템(200)에서 신뢰성 값은 디코딩 후에 출력 비트들의 전부에 대해 컴퓨팅된다. 이러한 신뢰성 값은 동일한 디코딩된 코드워드의 모든 출력 비트들에 대해 동일하다. 예를 들어 하드 결정 디코더(150) 또는 디코더들(222 내지 228)은 리드-뮬러 [8,4,4] 코드를 이용하는 경우에, 입력으로서 각각 8 비트 데이터 비트를 취할 것이며 4 비트 출력을 생성할 것이다. 그와 같은 정정되고 디코딩된 데이터 워드들 중 8개가 8개 비트들의 4개의 데이터 워드들을 획득하기 위해 인터리빙될 수 있다. 이들은 다시 리드-뮬러 [8,4,4] 코드에 의해 디코딩될 수 있지만, 이때 신뢰성 값들을 활용한다. 적어도 하나의 추가적인 정정가능한 데이터 워드의 각 데이터 워드는 제 2 다수에서의 다른 워드로부터 획득되도록, 인터리빙이 행해질 수 있으며, 이것이 바람직하다.
출력 스트링들(232, 234, 236 내지 238)은 많은 서로 다른 입력 코드워드들로부터의 디코딩된 결과들이며 이들은 설명된 방법을 적용한 후에 다른 신뢰성 값들을 가질 것이다. 신뢰성 값들은 데이터 워드들(252 내지 256)의 비트들에 인터리버(240)에 의해 할당된다.
본 발명을 예시하기 위해 아래에 예제가 제공된다. 소프트 결정 디코딩을 이용하거나 이용하지 않고서 2개의 코드들을 갖는 상황을 고려한다.
먼저 2개의 코드들을 갖지만 소프트 결정 디코딩을 이용하지 않는 상황을 고려한다. 예를 들어, 에러 정정 코드 C1은 길이 23의 반복 코드임을 가정한다. 이러한 코드는
Figure 112016115979485-pct00078
코드로서 표시된다. 에러 정정 코드 C2는 파라미터들
Figure 112016115979485-pct00079
를 갖는 BCH 코드임을 가정한다. 이들 코드들을 조합하는 것은
Figure 112016115979485-pct00080
비트들 정보의 비밀이 에러 정정 코드 C2로 인코딩될 수 있음을 의미한다. 최종 코드워드
Figure 112016115979485-pct00081
는 크기
Figure 112016115979485-pct00082
비트들이다. 이들 비트들을 에러 정정 코드 C1으로 인코딩하는 것은 단지
Figure 112016115979485-pct00083
정보 비트가 C1의 코드워드마다 인코딩될 수 있기 때문에, 이러한 에러 정정 코드의 8번의 적용을 필요로 한다. 그 결과는 크기
Figure 112016115979485-pct00084
비트들의 조합된 코드워드
Figure 112016115979485-pct00085
이다. 키 추출기 구성에서 184개 비트들의 PUF 응답 X가 이 경우에 요구될 것이다.
디코딩은 다수결을 이용하여 반복 디코더에 의해 수행된다. 이것은 반복 디코더의 출력이 디코더의 입력에 대부분 존재하는 비트에 대응함을 의미한다. 반복 길이 23의 경우에, 2개의 가능한 비트 값들(0 또는 1) 중 하나가 디코더 입력에서 적어도 12번 존재한다. 이 값은 디코더의 출력 비트로서 선택될 것이며 제 2 디코더의 입력의 일부일 것이다.
거짓 거부 레이트(FRR)는 측정된 PUF 응답에서의 에러들로 인해, 인코딩된 비밀 S가 재구성될 수 없는 확률이다. 상기 구성의 FRR은 (반복 디코더의 입력에서의 각 개별 비트에 대한 PUF 응답에서 25%의 최악-경우 에러 확률
Figure 112014063233804-pct00086
을 가정하여) 다음과 같이 계산될 수 있다:
P(반복 디코더의 에러) = Prep =
Figure 112014063233804-pct00087
P(제 2 디코더의 에러) = FRR =
Figure 112016115979485-pct00088
설명의 간략성을 위해 상기 예에서 단일 에러 정정 코드워드 C2를 사용함을 주목한다. 이 경우에 물론 실제 암호 애플리케이션들에서의 키에 대해 충분하지 않은 단지 4개의 키 비트들이 인코딩된다. 더 많은 키 비트들을 인코딩하기 위해 상기 구성은 여러번 반복될 수 있다. 예를 들어 128개의 키 비트들이 요구됨을 가정한다. 그 경우에 상기 구성은 32번 반복되며 그러므로 32개의 코드워드들 C2가 연쇄적으로 이용된다. 재구성된 키에서의 에러가 존재할 확률은 그 후에 1 마이너스 32개의 코드워드들의 전부가 올바르게 디코딩되는 확률과 동일한 에러들을 포함하는 32개의 코드워드들 중 적어도 하나가 존재할 확률로서 컴퓨팅된다. 따라서 총 거짓 거부 레이트는 다음과 같이 된다.
Figure 112016115979485-pct00089
(모든 32개의 코드워드들이 정정) =
Figure 112016115979485-pct00090
상업적인 애플리케이션들에서 적어도
Figure 112016115979485-pct00091
미만의 실패 레이트들 또는 거짓 거부 레이트들이 요구된다. 이것은 반복 디코더의 길이
Figure 112016115979485-pct00092
을 증가시킴으로써 달성될 수 있다. 예를 들어, 파라미터들
Figure 112016115979485-pct00093
를 갖는 반복 55 코드를 이용하는 경우에, 다음의 값들을 획득한다:
Figure 112016115979485-pct00094
. 이러한 솔루션은 그 후에
Figure 112016115979485-pct00095
PUF 데이터 비트들(1.72 KB)을 요구한다.
Figure 112016115979485-pct00096
을 감소시키는 다른 방법은 단일 에러보다 많이 정정할 수 있는 다른 C2를 이용하는 것이다.
둘째로, 상기 정보를 이용하면 새로운 구성의 FRR이 소프트-결정 디코딩으로 서로 다른 코드들에 대해 계산될 수 있다. 하기에서 상기에 이용되는 코드들에 대한 이러한 계산의 예가 발견될 수 있다.
일 예로서 2-비트 양자화를 가정하며,
Figure 112014063233804-pct00097
및 임계값 = 6.
소프트-결정 디코더로 인해, 새로운 방식의 FRR을 단순하게 계산하는 것이 쉽지 않다.
Figure 112014063233804-pct00098
를 갖는 시뮬레이트된 PUF 소스를 이용하여 실험들이 행해졌다. 이 방식에서 시스템의 FRR은 통계적 분석을 이용하여 결정될 수 있다. 그 결과는 다음과 같다:
FRR = (에러있는 디코딩들의 수)/(시뮬레이션들의 수) =
Figure 112014063233804-pct00099
Figure 112016115979485-pct00100
(모든 32개의 코드워드들이 정정) =
Figure 112016115979485-pct00101
FRR이 소프트-결정 디코딩 없이 이전의 구성을 갖는 것보다 2-비트 양자화된 소프트-결정 구성을 이용하여 상당히 낮아지는 것이 상기 시뮬레이션 결과들로부터 명백하다. 양자화를 위해 2개보다 많은 비트들을 이용할 때, FRR은 훨씬 더 감소할 것이다. 이런 방식으로, 요구된 FRR을 획득하기 위해 반복 코드의 길이를 감소시킬 수 있으며 따라서 요구되는 SRAM의 양을 감소시킨다.
도 5는 3개의 디코더들을 갖는 암호 시스템(500)을 예시하는 블록도를 예시한다. 도 5는 도 1에 기초하며, 추가적인 디코더를 갖는다.
도 5는 PUF(110), 노멀라이저(120), 하드 결정 디코더(150)를 포함한다. 하드 결정 디코더(150)는 신뢰성 정보와 함께 제 2 다수의 디코딩된 데이터 워드들을 생성하였다. 시스템(500)은 2개의 소프트 결정 디코더들: 소프트 결정 디코더(160a) 및 소프트 결정 디코더(160b), 및 2개의 데이터 배열기들: 데이터 배열기(140a) 및 데이터 배열기(140b)를 갖는다.
소프트 결정 디코더(160a)는 소프트 결정 디코더(160b)에서의 이용을 위한 신뢰성 정보를 획득하기 위해 재구성된 코드워드를 입력과 비교한다. 예를 들어, 출력 코드워드는 입력과 비교될 수 있으며 신뢰성 정보는 통합되었다. 예를 들어, 입력 코드워드 값들의 부호는 비트 값들을 표시한다(마이너스는 0 비트를 표시하며, 플러스는 1 비트를 표시한다). 소프트 결정 입력 값들은 여전히 정정된 에러들의 수를 카운트하기 위해 에러 정정된 코드워드에 비교될 수 있다.
예를 들어, 재구성된 코드워드를
Figure 112016115979485-pct00102
Figure 112016115979485-pct00103
로 두고 에러 정정된 코드워드를
Figure 112016115979485-pct00104
로 둔다.
Figure 112016115979485-pct00105
의 부호 값들이
Figure 112016115979485-pct00106
를 비트 스트링으로 변환하기 위해 취해지는 경우에, 스트링
Figure 112016115979485-pct00107
Figure 112016115979485-pct00108
을 리트리브하며 컴퓨팅된 차이는 전과 같이 2개 비트들이다.
대안적인 방식은 먼저 출력
Figure 112016115979485-pct00109
를 부호 값들 부호
Figure 112016115979485-pct00110
Figure 112016115979485-pct00111
로 변환함으로써 에러들의 양을 컴퓨팅할 때 입력 소프트 결정 값들을 고려하며 그 후에 그 차이를
Figure 112016115979485-pct00112
에서의 소프트 결정 값들과 비교하는 것이다. 부호 값들로 변환하는 것은 값 -1을 코드워드에서의 0-비트에 그리고 값 +1을 코드워드에서의 1-비트에 할당하는 것을 의미한다. 이 경우에 벡터
Figure 112016115979485-pct00114
에서의 소프트-결정 값들 및 벡터 부호
Figure 112016115979485-pct00135
에서의 값들의 절대 합산 차이 ASD가 컴퓨팅될 수 있다. 이 값은 최대
Figure 112016115979485-pct00115
Figure 112016115979485-pct00116
까지 더해진다. 이 경우에 신뢰성 값은 예를 들어,
Figure 112016115979485-pct00117
로서 다르게 컴퓨팅될 것임이 주목되며, 여기서 n은 코드워드 크기이다.
예를 들어, 제 2 디코더의 입력이
Figure 112016115979485-pct00118
인 경우에 입력이 (또한 모두 제로 벡터로 디코딩되는)
Figure 112016115979485-pct00119
Figure 112016115979485-pct00120
인 때보다 (모두 제로 벡터인) 디코더의 출력이 올바른 경향이 있다. 이러한 관찰에 기초하여 정보가 제 3 디코더에 제공될 수 있다.
많은 실시예들에서, 제 2 다수의 정정되고 디코딩된 데이터 워드들의 각 비트가 하나의(정확하게 하나 또는 최대 하나) 추가적인 정정가능한 데이터 워드에서 이용되더라도, 이것은 필수적이지는 않다. 추가적인 실시예에서, 제 2 다수의 정정되고 디코딩된 데이터 워드들 중 적어도 하나가 하나보다 많은 추가적인 정정가능한 데이터 워드에서 이용된다. 이것은 여러 장점들을 갖는다. 예를 들어, 하드 결정 디코더가 (예를 들어, CMOS에서) 하드웨어로 구현되며 변경될 수 없는 상황을 고려한다. PUF의 신뢰성이 예상된 것보다 양호한 것으로 판명되면, 시스템에 의해 생성되는 데이터량은 소프트 디코더의 다수의 정정가능한 데이터 워드들에 대해 하드 결정 디코더의 출력 비트들을 재-사용함으로써 증가할 수 있다. 바람직하게, 다수의 소프트-결정 워드들에 이용되는 비트들은 동일한 신뢰성 값을 수신하지만, 이것은 엄격하게 필요한 것은 아니다. 일부는 다른 것들보다 신뢰성의 더 양호한 표현일 수 있다.
도 6a는 본 발명에 따른 스마트 카드(600)에 대한 개략적 표현의 상면도를 도시한다. 스마트 카드는 집적된 회로(610) 및 전형적으로 플라스틱인, 집적된 회로(610)를 지지하는 카드(605)를 포함한다. 집적된 회로(610)의 아키텍처는 도 6b에 개략적으로 도시된다. 회로(610)는 본 발명에 따른 방법을 실행하기 위해 및/또는 그 모듈들 또는 유닛들을 구현하기 위해 컴퓨터 프로그램 컴포넌트들을 실행하기 위한 프로세싱 유닛(620), 예를 들어, CPU를 포함한다. 회로(610)는 프로그래밍 코드, 데이터, 암호 키들, 조력자 데이터 등을 저장하기 위한 메모리(622)를 포함한다. 메모리(622)의 일부는 판독-전용일 수 있다. 메모리(622)의 일부는 높은 보안성 메모리, 예를 들어 보안 관련된 데이터, 예를 들어 키들을 저장하기 위한 퓨즈들(fuses)일 수 있다. 회로(610)는 물리적 복제방지기능(624)을 포함한다. 물리적 복제방지기능(624)은 메모리(622)와 조합될 수 있다. 회로(610)는 소프트 결정 디코더(626), 예를 들어 하드웨어 구현된 디코더를 포함할 수 있다. 회로(610), 메모리(622), PUF(624) 및 디코더(626)는 버스(630)를 통해 서로 접속될 수 있다. 카드는 안테나 및/또는 커넥터 패드들을 각각 이용하여, 접촉 및/또는 접촉없는 통신을 위해 배열될 수 있다. 스마트 카드는 예를 들어, 컨텐츠에 대한 액세스를 제어하기 위해 셋톱 박스에서, 원격통신 네트워크에 대한 액세스를 제어하기 위해 이동 전화에서, 대중 교통에 대한 액세스를 제어하기 위해 대중교통 시스템에서, 은행 계좌에 대한 액세스를 제어하기 위해 뱅킹 카드 등에서 이용될 수 있다.
예를 들어, 메모리(622)는 프로세싱 유닛(620)에 의한 실행을 위한 소프트웨어를 포함할 수 있다. 소프트웨어가 실행될 때 컴퓨팅 디바이스들의 모듈들의 기능들 중 일부가 수행된다. PUF(624)는 휘발성 메모리 즉 SRAM을 포함할 수 있다.
스마트 카드(640)를 이용하는 일 방식은 PUF(622)를 판독하는 것이다. 노멀라이제이션(Normalization), 하드 결정 디코딩, 신뢰성 정보 추출 및 데이터 배열은 622에 저장되는 대응하는 컴퓨터 코드를 실행하는 프로세서(620)에 의해 소프트웨어에서 행해진다. 소프트 결정 디코더(626)는 최종의 추가적인 정정가능한 데이터 워드(들)를 디코딩한다. 디코더(626)는 또한 소프트웨어로 구현될 수 있다.
도 7은 잡음있는 물리적 복제방지 기능으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 방법(700)을 흐름도로서 예시한다. 다음의 단계들이 도시된다: PUF를 판독하는 단계(710); PUF 데이터로부터 제 1 정정가능한 코드워드들을 획득하는 단계(720); 제 1 에러 정정가능한 코드를 이용하여 제 1 정정가능한 코드워드들을 디코딩하는 단계(730); 제 1 정정가능한 코드워드들의 제 1 신뢰성 값들을 획득하는 단계(740); 디코딩된 제 1 정정가능한 코드워드들로부터 제 2 정정가능한 코드워드를 획득하는 단계(750); 제 1 신뢰성 값들 및 제 2 에러 정정가능한 코드를 이용하여 제 2 정정가능한 코드워드들을 디코딩하는 단계(760); 디코딩된 제 2 정정가능한 코드워드들(770)로부터 신뢰성있는 데이터 스트링을 획득하는 단계.
당업자에게 명백한 바와 같이, 방법을 실행하는 많은 다른 방식들이 가능하다. 예를 들어, 단계들의 순서는 변화될 수 있거나 일부 단계들이 병렬로 실행될 수 있다. 더욱이, 단계들 사이에 다른 방법 단계들이 삽입될 수 있다. 삽입된 단계들은 본원에 설명된 바와 같은 방법의 개선들을 나타낼 수 있거나, 방법과 관련되지 않을 수 있다. 예를 들어, 단계들(730 및 760)은 적어도 부분적으로, 병렬로 실행될 수 있다. 더욱이, 주어진 단계는 다음 단계가 시작되기 전에 완전히 완료되지 않을 수 있다.
본 발명에 따른 방법은, 프로세서 시스템으로 하여금 방법(700)을 수행하게 하기 위한 명령들을 포함하는 소프트웨어를 이용하여 실행될 수 있다. 소프트웨어는 시스템의 특정 서브-엔티티에 의해 취해지는 단계들만을 포함할 수 있다. 소프트웨어는 하드 디스크, 플로피, 메모리 등과 같은 적합한 스토리지 매체에 저장될 수 있다. 소프트웨어는 유선, 또는 무선, 또는 데이터 네트워크, 예를 들어 인터넷을 이용하여 신호로서 송신될 수 있다. 소프트웨어는 다운로드를 위해 및/또는 서버 상의 원격 사용을 위해 이용가능하게 이루어질 수 있다.
본 발명은 또한 본 발명을 실행하도록 적응되는, 컴퓨터 프로그램들, 특히 캐리어 상의 또는 내부의 컴퓨터 프로그램들로 확장함이 인식될 것이다. 프로그램은 소스 코드, 객체 코드, 부분적으로 컴파일된 형태와 같은 코드 중간 소스 및 객체 코드의 형태이거나, 본 발명에 따른 방법의 구현에서의 이용을 위해 적합한 임의의 다른 형태일 수 있다. 또한 그와 같은 프로그램은 많은 서로 다른 아키텍처 설계들을 가질 수 있음이 인식될 것이다. 예를 들어, 본 발명에 따른 방법 또는 시스템의 기능을 구현하는 프로그램 코드는 하나 또는 그 초과의 서브루틴들로 세분화될 수 있다. 이들 서브루틴들 사이에 기능을 분배하는 많은 다른 방식들이 당업자에게 명백할 것이다. 서브루틴들은 자립형(self-contained) 프로그램을 형성하기 위해 하나의 실행가능한 파일에 함께 저장될 수 있다. 그와 같은 실행가능한 파일은 컴퓨터 실행가능한 명령들, 예를 들어 프로세서 명령들 및/또는 번역기 명령들(예를 들어, 자바 번역기 명령들)을 포함할 수 있다. 대안적으로, 서브루틴들 중 하나 또는 그 초과 또는 전부가 적어도 하나의 외부 라이브러리 파일에 저장될 수 있으며 예를 들어, 실행-시간에서 정적으로 또는 동적으로 메인 프로그램과 링크될 수 있다. 메인 프로그램은 서브루틴들 중 적어도 하나에 대한 적어도 하나의 호출을 포함한다. 또한, 서브루틴들은 서로에 대한 함수 호출들을 포함할 수 있다. 컴퓨터 프로그램 물건에 관련하는 실시예는 설명된 방법들 중 적어도 하나의 프로세싱 단계들의 각각에 대응하는 컴퓨터 실행가능한 명령들을 포함한다. 이들 명령들은 서브루틴들로 세분화될 수 있으며 및/또는 정적으로 또는 동적으로 링크될 수 있는 하나 또는 그 초과의 파일들에 저장될 수 있다. 컴퓨터 프로그램 물건에 관한 다른 실시예는 설명된 시스템들 및/또는 물건들 중 적어도 하나의 수단의 각각에 대응하는 컴퓨터 실행가능한 명령들을 포함한다. 이들 명령들은 서브루틴들로 세분화될 수 있으며 및/또는 정적으로 또는 동적으로 링크될 수 있는 하나 또는 그 초과의 파일들에 저장될 수 있다.
컴퓨터 프로그램의 캐리어는 프로그램을 운반할 수 있는 임의의 엔티티 또는 디바이스일 수 있다. 예를 들어, 캐리어는 ROM, 예를 들어 CD ROM 또는 반도체 ROM, 또는 자기 기록 매체, 예를 들어 플로피 디스크 또는 하드 디스크와 같은 스토리지 매체를 포함할 수 있다. 더욱이, 캐리어는 전기적 또는 광학 케이블을 통해 또는 라디오 또는 다른 수단에 의해 전달될 수 있는 전기 또는 광학 신호와 같은 전송가능한 캐리어일 수 있다. 프로그램이 그와 같은 신호에 구체화될 때, 캐리어는 그와 같은 케이블 또는 다른 디바이스 또는 수단에 의해 구성될 수 있다. 대안적으로 캐리어는 프로그램이 임베디드되는 집적된 회로일 수 있으며, 집적된 회로는 수행을 위해, 또는 관련된 방법의 수행에서의 이용을 위해 적응된다.
상기-언급된 실시예들은 본 발명을 제한하기 보다는 오히려 예시하는 것이며, 당업자는 첨부되는 청구범위로부터 이탈하지 않고서 많은 대안적인 실시예들을 설계할 수 있을 것임이 주목되어야 한다. 청구범위들에서, 괄호들 사이에 배치되는 임의의 참조 부호들은 청구항을 제한하는 것으로서 해석되어서는 안 된다. 용어 "포함한다"의 이용 및 활용들은 청구항에 서술되는 것들과 다른 단계들 또는 엘리먼트들의 존재를 배제하지 않는다. 엘리먼트에 선행하는 관사 "하나(a 또는 an)"는 복수의 그와 같은 엘리먼트들의 존재를 배제하지 않는다. 본 발명은 여러 별개의 엘리먼트들을 포함하는 하드웨어에 의해, 그리고 적합하게 프로그램된 컴퓨터에 의해 구현될 수 있다. 여러 수단을 열거하는 디바이스 청구항에서, 이들 수단 중 여러개가 하드웨어의 하나 및 동일한 항목에 의해 구체화될 수 있다. 특정의 조치들이 상호배타적으로 다른 종속 청구항들에서 인용된다는 단순한 사실은 이들 조치들의 조합이 유용하게 이용될 수 없음을 표시하지 않는다.

Claims (15)

  1. 잡음있는 물리적 복제방지 기능으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호 시스템으로서,
    - 물리적 복제방지 기능의 부분적으로 랜덤한 물리적 특성들에 적어도 부분적으로 의존하여, 초기 데이터 스트링을 설정하도록 구성되는 상기 물리적 복제방지 기능,
    - 상기 초기 데이터 스트링에 기초하여 제 1 다수의 에러 정정가능한 데이터 워드들을 결정하도록 구성되는 노멀라이저,
    - 제 2 다수의 정정되고 디코딩된 데이터 워드들을 획득하기 위해 상기 제 1 다수의 에러 정정가능한 데이터 워드들을 디코딩하도록 구성되는 하드 결정 디코더,
    - 상기 제 1 다수의 에러 정정가능한 데이터 워드들에 대한 상기 디코딩의 신뢰성을 표시하는 신뢰성 정보를 결정하도록 구성되는 신뢰성 정보 추출기,
    - 적어도 하나의 추가적인 정정가능한 데이터 워드를 획득하기 위해 상기 제 2 다수의 정정되고 디코딩된 데이터 워드들을 배열하도록 구성되는 데이터 배열기, 및
    - 적어도 하나의 추가적인 정정되고 디코딩된 데이터 워드를 획득하기 위해 상기 신뢰성 정보를 이용하여 상기 적어도 하나의 추가적인 정정가능한 데이터 워드를 디코딩하도록 구성되는 소프트 결정 디코더
    를 포함하며, 상기 신뢰성있는 데이터 스트링은 상기 적어도 하나의 추가적인 정정되고 디코딩된 데이터 워드로부터 획득되는,
    잡음있는 물리적 복제방지 기능으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호 시스템.
  2. 제 1 항에 있어서,
    상기 물리적 복제방지 기능은 휘발성 메모리의 파워-업 콘텐츠에 기초하며, 상기 휘발성 메모리 및 상기 노멀라이저는 동일한 파워 도메인에 있는,
    잡음있는 물리적 복제방지 기능으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호 시스템.
  3. 제 1 항에 있어서,
    상기 신뢰성있는 데이터 스트링에 키 도출 알고리즘을 적용함으로써 암호 키를 설정하기 위한 키 설정기를 포함하는,
    잡음있는 물리적 복제방지 기능으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호 시스템.
  4. 제 1 항에 있어서,
    상기 신뢰성 정보는, 상기 제 1 다수의 에러 정정가능한 데이터 워드들 중 특정 에러 정정가능한 데이터 워드를 상기 제 2 다수의 정정되고 디코딩된 데이터 워드들 중 특정 정정되고 디코딩된 데이터 워드로 디코딩하는 것에 대한 신뢰성을 표시하는 신뢰성 값을 포함하는,
    잡음있는 물리적 복제방지 기능으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호 시스템.
  5. 제 4 항에 있어서,
    상기 신뢰성 정보 추출기는, 상기 특정 에러 정정가능한 데이터 워드 및 상기 특정 정정되고 디코딩된 데이터 워드에 대응하는 특정 코드워드 사이의 거리를 결정하기 위한 거리 결정기를 포함하며, 상기 신뢰성 값은 상기 거리로부터 유추되는,
    잡음있는 물리적 복제방지 기능으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호 시스템.
  6. 제 1 항에 있어서,
    상기 하드 결정 디코더는, 제 2 다수의 것들 중 대응하는 정정되고 디코딩된 데이터 워드를 획득하기 위해, 상기 제 1 다수의 에러 정정가능한 데이터 워드들의 각 에러 정정가능한 데이터 워드를 디코딩하도록 구성되며,
    상기 신뢰성 정보 추출기는, 제 1 다수의 것들 중 상기 에러 정정가능한 데이터 워드들의 대응하는 디코딩에 대한 신뢰성을 표시하는, 상기 제 2 다수의 정정되고 디코딩된 데이터 워드들의 각 하나에 대한 신뢰성 값을 결정하도록 구성되는,
    잡음있는 물리적 복제방지 기능으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호 시스템.
  7. 제 1 항에 있어서,
    상기 데이터 배열기는, 제 2 다수의 것들 중 제 1 정정되고 디코딩된 데이터 워드의 적어도 일부 및 제 2 다수의 것들 중 제 2 정정되고 디코딩된 데이터 워드의 적어도 일부를 동일한 적어도 하나의 추가적인 정정가능한 데이터 워드로 배열하도록 구성되는,
    잡음있는 물리적 복제방지 기능으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호 시스템.
  8. 제 1 항에 있어서,
    상기 데이터 배열기는, 상기 적어도 하나의 추가적인 정정되고 디코딩된 데이터 워드의 상이한 부분들에 상이한 신뢰성 값을 할당하도록 구성되는,
    잡음있는 물리적 복제방지 기능으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호 시스템.
  9. 제 8 항에 있어서,
    상기 적어도 하나의 추가적인 정정가능한 데이터 워드는 다수의 비트들을 포함하고,
    상기 다수의 비트들의 각 비트는 제 2 다수의 정정되고 디코딩된 데이터 워드들 중 대응하는 정정되고 디코딩된 데이터 워드로부터 상기 데이터 배열기에 의해 획득되며,
    상기 데이터 배열기는, 상기 다수의 비트들의 각 비트에 대한 신뢰성 값을 획득하기 위해 신뢰성 정보를 상기 제 2 다수의 정정되고 디코딩된 데이터 워드들과 함께 배열하도록 구성되며, 상기 다수의 비트들의 비트에 할당되는 상기 신뢰성 값은 대응하는 정정되고 디코딩된 데이터 워드의 신뢰성 값인,
    잡음있는 물리적 복제방지 기능으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호 시스템.
  10. 제 1 항에 있어서,
    - 상기 하드 결정 디코더는 반복 코드를 디코딩하도록 구성되며, 그리고/또는
    - 상기 하드 결정 디코더는 하다마드(Hadamard) 코드를 디코딩하도록 구성되며, 그리고/또는
    - 상기 하드 결정 디코더는 목록 디코더로서 구성되는,
    잡음있는 물리적 복제방지 기능으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호 시스템.
  11. 제 1 항에 있어서,
    상기 적어도 하나의 부분적으로 랜덤한 물리적 특성들은, SRAM, 플립-플롭, 버스-키퍼, 또는 버터-플라이 PUF 중 어느 하나로부터의 파워-업 동안 관찰되는,
    잡음있는 물리적 복제방지 기능(PUF, 110)으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호 시스템.
  12. 제 1 항에 따른 암호 시스템을 포함하는 스마트 카드.
  13. 잡음있는 물리적 복제방지 기능으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호화 방법으로서,
    - 부분적으로 랜덤한 물리적 특성들에 따라 초기 데이터 스트링을 설정하는 단계,
    - 상기 초기 데이터 스트링에 기초하여 제 1 다수의 에러 정정가능한 데이터 워드들을 결정하는 단계,
    - 제 2 다수의 정정되고 디코딩된 데이터 워드들을 획득하기 위해 하드 결정 디코딩에 의해 상기 제 1 다수의 에러 정정가능한 데이터 워드들을 디코딩하는 단계,
    - 상기 제 1 다수의 에러 정정가능한 데이터 워드들에 대한 상기 디코딩의 신뢰성을 표시하는 신뢰성 정보를 결정하는 단계,
    - 적어도 하나의 추가적인 정정가능한 데이터 워드를 획득하기 위해 상기 제 2 다수의 정정되고 디코딩된 데이터 워드들을 배열하는 단계, 및
    - 적어도 하나의 추가적인 정정되고 디코딩된 데이터 워드를 획득하기 위해 상기 신뢰성 정보를 이용하여 소프트 결정 디코딩에 의해 상기 적어도 하나의 추가적인 정정가능한 데이터 워드를 디코딩하는 단계
    를 포함하며, 상기 신뢰성있는 데이터 스트링은 상기 적어도 하나의 추가적인 정정되고 디코딩된 데이터 워드로부터 획득되는,
    잡음있는 물리적 복제방지 기능으로부터 신뢰성있는 데이터 스트링을 재생성가능하게 설정하기 위한 암호화 방법.
  14. 컴퓨터 프로그램을 저장한 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 프로그램은, 상기 컴퓨터 프로그램이 컴퓨터 상에서 실행될 때, 제 13 항에 따른 모든 단계들을 수행하도록 적응된 컴퓨터 프로그램 코드 수단을 포함하는,
    컴퓨터 프로그램을 저장한 컴퓨터 판독가능 저장 매체.
  15. 삭제
KR1020147018626A 2011-12-06 2012-11-23 단일 등록을 이용한 메모리 기반 puf에 대한 소프트 결정 에러 정정 KR102026757B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11192050.0 2011-12-06
EP11192050 2011-12-06
PCT/EP2012/073440 WO2013083415A2 (en) 2011-12-06 2012-11-23 Physically unclonable function (puf) with improved error correction

Publications (2)

Publication Number Publication Date
KR20140099327A KR20140099327A (ko) 2014-08-11
KR102026757B1 true KR102026757B1 (ko) 2019-09-30

Family

ID=47216317

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147018626A KR102026757B1 (ko) 2011-12-06 2012-11-23 단일 등록을 이용한 메모리 기반 puf에 대한 소프트 결정 에러 정정

Country Status (5)

Country Link
US (1) US9396357B2 (ko)
EP (1) EP2789116B1 (ko)
KR (1) KR102026757B1 (ko)
CN (1) CN104521177B (ko)
WO (1) WO2013083415A2 (ko)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014138626A1 (en) * 2013-03-08 2014-09-12 Robert Bosch Gmbh Systems and methods for maintaining integrity and secrecy in untrusted computing platforms
US9467170B2 (en) * 2013-05-17 2016-10-11 Marvell World Trade Ltd. NAND flash memory systems with efficient soft information interface
US9992031B2 (en) * 2013-09-27 2018-06-05 Intel Corporation Dark bits to reduce physically unclonable function error rates
KR102110767B1 (ko) * 2013-12-24 2020-06-09 삼성전자 주식회사 메모리 컨트롤러 구동방법 및 메모리 컨트롤러
WO2015148659A1 (en) * 2014-03-25 2015-10-01 Mai Kenneth Wei-An Methods for generating reliable responses in physical unclonable functions (pufs) and methods for designing strong pufs
DE102014206943A1 (de) 2014-04-10 2015-10-15 Siemens Aktiengesellschaft Schlüsselerzeugungsvorrichtung und Verfahren zum Erzeugen eines Schlüssels
US10129036B2 (en) * 2014-09-18 2018-11-13 Intel Corporation Post-processing mechanism for physically unclonable functions
KR102201642B1 (ko) 2014-11-28 2021-01-13 삼성전자주식회사 Puf 회로 및 그것의 키 등록 방법
MA40999A (fr) * 2014-12-15 2017-10-25 Stc Unm Procédés d'amélioration de fiabilité pour une génération de chaîne de bits de fonction physiquement inclonable
US9501664B1 (en) * 2014-12-15 2016-11-22 Sandia Corporation Method, apparatus and system to compensate for drift by physically unclonable function circuitry
US9588772B2 (en) * 2015-02-20 2017-03-07 Kabushiki Kaisha Toshiba Memory controller and decoding method
US9722774B2 (en) * 2015-04-29 2017-08-01 Samsung Electronics Co., Ltd. Non-leaky helper data: extracting unique cryptographic key from noisy F-PUF fingerprint
US10325646B1 (en) * 2015-09-15 2019-06-18 Xilinx, Inc. SRAM physically unclonable function (PUF) circuit and method
CN107017990B (zh) * 2015-10-13 2021-05-04 马克西姆综合产品公司 用于稳定的物理不可克隆函数的系统以及方法
US10097348B2 (en) * 2016-03-24 2018-10-09 Samsung Electronics Co., Ltd. Device bound encrypted data
CN107370555B (zh) * 2016-05-12 2020-03-17 博通集成电路(上海)股份有限公司 误差判决方法及其装置
US10146464B2 (en) * 2016-06-30 2018-12-04 Nxp B.V. Method for performing multiple enrollments of a physically uncloneable function
US10911229B2 (en) 2016-08-04 2021-02-02 Macronix International Co., Ltd. Unchangeable physical unclonable function in non-volatile memory
US10469271B2 (en) 2016-08-04 2019-11-05 Macronix International Co., Ltd. Physical unclonable function for non-volatile memory
US10680809B2 (en) 2016-08-04 2020-06-09 Macronix International Co., Ltd. Physical unclonable function for security key
US10855477B2 (en) 2016-08-04 2020-12-01 Macronix International Co., Ltd. Non-volatile memory with physical unclonable function and random number generator
US11258599B2 (en) 2016-08-04 2022-02-22 Macronix International Co., Ltd. Stable physically unclonable function
CN106301786B (zh) * 2016-08-10 2019-04-02 南京航空航天大学 一种基于sram型存储器的物理不可克隆函数响应纠错电路
WO2018085676A1 (en) 2016-11-04 2018-05-11 Stc.Unm System and methods for entropy and statistical quality metrics
EP3340216B1 (en) * 2016-12-23 2020-01-29 Secure-IC SAS Secret key generation using a high reliability physically unclonable function
US9811689B1 (en) * 2016-12-27 2017-11-07 Macronix International Co., Ltd. Chip ID generation using physical unclonable function
JP6882666B2 (ja) * 2017-03-07 2021-06-02 富士通株式会社 鍵生成装置および鍵生成方法
WO2018183572A1 (en) * 2017-03-29 2018-10-04 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
CN107194117B (zh) * 2017-06-16 2020-12-22 合肥工业大学 一种蝶形触发器物理不可克隆函数的可靠性提升方法
CN107094074A (zh) * 2017-06-28 2017-08-25 东信和平科技股份有限公司 一种数据加密方法及数据加密装置
CN109428721B (zh) * 2017-08-28 2023-06-30 恩智浦有限公司 用于确定物理不可克隆功能电路的健康状况的方法或装置
DE102018123103A1 (de) * 2017-10-13 2019-04-18 Samsung Electronics Co., Ltd. Halbleitervorrichtung, die Sicherheitsschlüssel erzeugt, Verfahren zum Erzeugen eines Sicherheitsschlüssels und Verfahren zum Registrieren des Sicherheitsschlüssels
CN107959571B (zh) * 2017-11-04 2021-02-12 上海华虹集成电路有限责任公司 一种用于puf的快速软判决取值生成方法
US11063772B2 (en) * 2017-11-24 2021-07-13 Ememory Technology Inc. Multi-cell per bit nonvolatile memory unit
US11522724B2 (en) 2017-12-11 2022-12-06 International Business Machines Corporation SRAM as random number generator
US10291414B1 (en) 2017-12-11 2019-05-14 International Business Machines Corporation SRAM as physically unclonable function
US10897364B2 (en) * 2017-12-18 2021-01-19 Intel Corporation Physically unclonable function implemented with spin orbit coupling based magnetic memory
JP6692792B2 (ja) * 2017-12-28 2020-05-13 三菱重工業株式会社 監視装置、監視システム、監視方法及びプログラム
WO2019212849A1 (en) * 2018-05-01 2019-11-07 Analog Devices, Inc. Device authentication based on analog characteristics without error correction
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
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
WO2020006178A1 (en) * 2018-06-27 2020-01-02 Stc. Unm Correlation-based robust authentication technique using helper data only
US10727235B2 (en) * 2018-07-30 2020-07-28 Nscore, Inc. Secure fingerprint data generating device
US10554228B1 (en) * 2018-08-22 2020-02-04 SK Hynix Inc. Error correction device and electronic device including the same
US11245680B2 (en) 2019-03-01 2022-02-08 Analog Devices, Inc. Garbled circuit for device authentication
US11277271B2 (en) * 2019-07-31 2022-03-15 Nxp Usa, Inc. SRAM based physically unclonable function and method for generating a PUF response
US11380379B2 (en) 2020-11-02 2022-07-05 Macronix International Co., Ltd. PUF applications in memories
CN116074001B (zh) * 2023-02-20 2023-07-18 河南牧业经济学院 一种数据压缩加密方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010100015A1 (en) 2009-03-06 2010-09-10 Intrinsic Id B.V. System for establishing a cryptographic key depending on a physical system
US20110002461A1 (en) 2007-05-11 2011-01-06 Validity Sensors, Inc. Method and System for Electronically Securing an Electronic Biometric Device Using Physically Unclonable Functions
WO2011018414A2 (en) 2009-08-14 2011-02-17 Intrinsic Id B.V. Physically unclonable function with tamper prevention and anti-aging system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003288683A1 (en) 2003-01-24 2004-08-13 Koninklijke Philips Electronics N.V. Reliable storage medium access control method and device
US8856533B2 (en) * 2005-09-14 2014-10-07 Koninklijke Philips N.V. Device, system and method for determining authenticity of an item
EP2168072B1 (en) * 2007-06-14 2010-12-22 Intrinsic ID B.V. Device and method for providing authentication
US20110215829A1 (en) 2007-08-22 2011-09-08 Intrinsic Id B.V. Identification of devices using physically unclonable functions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110002461A1 (en) 2007-05-11 2011-01-06 Validity Sensors, Inc. Method and System for Electronically Securing an Electronic Biometric Device Using Physically Unclonable Functions
WO2010100015A1 (en) 2009-03-06 2010-09-10 Intrinsic Id B.V. System for establishing a cryptographic key depending on a physical system
WO2011018414A2 (en) 2009-08-14 2011-02-17 Intrinsic Id B.V. Physically unclonable function with tamper prevention and anti-aging system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Secure and Robust Error Correction for physical unclonable Function"(Meng-Day Yu et al, IEEE, 2010.01.01.)

Also Published As

Publication number Publication date
EP2789116A2 (en) 2014-10-15
CN104521177B (zh) 2018-03-06
WO2013083415A3 (en) 2013-08-22
WO2013083415A2 (en) 2013-06-13
US9396357B2 (en) 2016-07-19
EP2789116B1 (en) 2020-09-30
CN104521177A (zh) 2015-04-15
US20140325237A1 (en) 2014-10-30
KR20140099327A (ko) 2014-08-11

Similar Documents

Publication Publication Date Title
KR102026757B1 (ko) 단일 등록을 이용한 메모리 기반 puf에 대한 소프트 결정 에러 정정
US10554398B2 (en) Cryptographic key production from a physical unclonable function
Delvaux et al. Helper data algorithms for PUF-based key generation: Overview and analysis
US10644892B2 (en) Authentication based on a challenge and response using a physically unclonable function and a machine learning engine
Gao et al. Lightweight (reverse) fuzzy extractor with multiple reference PUF responses
Hiller et al. Review of error correction for PUFs and evaluation on state-of-the-art FPGAs
Bösch et al. Efficient helper data key extractor on FPGAs
Maes et al. Low-overhead implementation of a soft decision helper data algorithm for SRAM PUFs
WO2019153867A1 (zh) 二维码生成及识别
CN107566122B (zh) 用于执行物理不可克隆功能的多次注册的方法
Chen et al. Secret key generation over biased physical unclonable functions with polar codes
US11258597B2 (en) Key derivation from PUFs
US20150026545A1 (en) System and method for generating constellation-based information coding using physical noisy pseudo-random sources
Becker Robust fuzzy extractors and helper data manipulation attacks revisited: Theory versus practice
US10469270B2 (en) Data processing devices and methods for reconstructing a PUF value
Immler et al. New insights to key derivation for tamper-evident physical unclonable functions
US11487505B2 (en) Physical unclonable function based true random number generator, method for generating true random numbers, and associated electronic device
Hiller et al. Systematic low leakage coding for physical unclonable functions
Wen et al. Efficient fuzzy extractor implementations for PUF based authentication
CN117081751A (zh) 一种高可靠性量化响应仲裁器型puf结构
CN110730068A (zh) 一种基于sram-puf的密钥提取方法
Yu et al. Security and reliability properties of syndrome coding techniques used in PUF key generation
Höberl et al. Towards a Secure Key Generation and Storage Framework on Resource-Constrained Sensor Nodes.
US20230377676A1 (en) Integrated circuit and operation method and inspection method thereof
Edwards et al. SRAM PUF Analysis and Fuzzy Extractors

Legal Events

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