KR102201642B1 - Puf 회로 및 그것의 키 등록 방법 - Google Patents

Puf 회로 및 그것의 키 등록 방법 Download PDF

Info

Publication number
KR102201642B1
KR102201642B1 KR1020140168505A KR20140168505A KR102201642B1 KR 102201642 B1 KR102201642 B1 KR 102201642B1 KR 1020140168505 A KR1020140168505 A KR 1020140168505A KR 20140168505 A KR20140168505 A KR 20140168505A KR 102201642 B1 KR102201642 B1 KR 102201642B1
Authority
KR
South Korea
Prior art keywords
key
values
bits
puf
bit
Prior art date
Application number
KR1020140168505A
Other languages
English (en)
Other versions
KR20160065297A (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 삼성전자주식회사
Priority to KR1020140168505A priority Critical patent/KR102201642B1/ko
Priority to US14/940,749 priority patent/US10027480B2/en
Publication of KR20160065297A publication Critical patent/KR20160065297A/ko
Priority to US16/023,626 priority patent/US10505728B2/en
Application granted granted Critical
Publication of KR102201642B1 publication Critical patent/KR102201642B1/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
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/76Protecting 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 application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • 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)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Quality & Reliability (AREA)

Abstract

본 발명에 따른 PUF(physically unclonable function) 회로의 키 등록 방법은: PUF 셀들로부터 제 1 레벨 키를 발생하는 단계; 해밍 웨이트를 근거로 한 비트 코딩 테이블을 이용하여 상기 제 1 레벨 키에 대한 비트 엔코딩을 수행하는 단계; 상기 비트 엔코딩에서 출력되는 제 2 레벨 키에 대응하는 제 1 헬퍼 데이터를 비휘발성 메모리에 저장하는 단계; 에러 정정 코드를 이용하여 상기 비트 엔코딩에서 출력되는 상기 제 2 레벨 키에 대한 블록 엔코딩을 수행하는 단계; 및 상기 블록 엔코딩에서 출력되는 제 3 레벨 키에 대응하는 제 2 헬퍼 데이터를 상기 비휘발성 메모리에 저장하는 단계를 포함한다.

Description

PUF 회로 및 그것의 키 등록 방법{PHYSICALLY UNCLONABLE FUNCTION CIRCUIT AND KEY ENROLLING METHOD THEREOF}
본 발명의 PUF 회로 및 그것의 키 등록 방법에 관한 것이다.
물리적 공격에 의한 키 추출을 방지하기 위해서 회로 내에 공격을 감지하는 센서를 사용하여 공격이 감지되었을 때 전원을 차단하거나 회로를 파괴하는 방식으로 대응할 수 있으나 이러한 센싱 회로 사용은 공정 비용을 높이며 부채널 공격 가능성을 높이는 단점이 있다. 현재는 키를 별도로 저장하지 않고 디지털 회로로 지문과 같은 로직을 구현하여 이를 키로 사용하는 연구가 많이 진행되고 있다. 대표적인 기술이 PUF(physically unclonable function)다.
PUF는 동일한 회로라 하더라도 회로를 구현하는 공정 상황에 따라 wire delay 및 gate delay가 미세하게 다르다는 점을 이용한 회로이다. 이는 작은 게이트 로직으로 구현 가능하며 랜덤 출력을 쉽게 발생할 수 있다. 또한 공정 상황에 따른 지연 차이를 이용하기 때문에 PUF 회로가 공개되더라도 동일한 출력이 나오는 회로 구성이 어렵다. 이러한 PUF는 지연 루프(delay loop)를 이용한 링 오실레이터(ring oscillator) 방식과 스위칭 회로를 이용한 중재기(arbiter) 기반 PUF가 있으며, 실제 구현은 이러한 두 가지 방식을 혼합하여 사용한다.
PUF는 작은 면적의 회로로 복제를 방지할 수 있는 특징이 있으나 PUF 특성상 구동 환경에 따라 서로 상이한 값을 출력할 수 있다. 이러한 현상을 방지하기 위해 에러 정정 기법을 PUF에 적용하는 연구가 병행되고 있으나, 이로 인한 회로 추가 문제 및 PUF 랜덤 특성 감소 등의 문제가 있다.
본 발명의 목적은 랜덤 비트를 사용하지 않는 신규한 PUF 회로 및 그것의 키 등록 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 PUF(physically unclonable function) 회로의 키 등록 방법은: PUF 셀들로부터 제 1 레벨 키를 발생하는 단계; 해밍 웨이트를 근거로 한 비트 코딩 테이블을 이용하여 상기 제 1 레벨 키에 대한 비트 엔코딩을 수행하는 단계; 상기 비트 엔코딩에서 출력되는 제 2 레벨 키에 대응하는 제 1 헬퍼 데이터를 비휘발성 메모리에 저장하는 단계; 에러 정정 코드를 이용하여 상기 비트 엔코딩에서 출력되는 상기 제 2 레벨 키에 대한 블록 엔코딩을 수행하는 단계; 및 상기 블록 엔코딩에서 출력되는 제 3 레벨 키에 대응하는 제 2 헬퍼 데이터를 상기 비휘발성 메모리에 저장하는 단계를 포함한다.
실시 예에 있어서, 상기 PUF 셀들 각각은, 트랜지스터 문턱전압 기반 PUF 셀, 중개기(arbiter) 기반 PUF 셀, 링 오실레이터(ring oscillator) 기반 PUF 셀, 메모리 기반 PUF 셀, 레이저 빔 혹은 열 변화에 따른 재구성 가능한(reconfigurable) PUF 셀들 중 적어도 하나로 구현된다.
실시 예에 있어서, 상기 PUF 셀들 각각은 복수의 비트값을 출력하는 복수의 단위 셀들로 구성된다.
실시 예에 있어서, 상기 비트 코딩 테이블은, 상기 PUF 셀 각각의 PUF 출력값, 상기 PUF 출력값의 해밍 웨이트에 따른 키값, 상기 PUF 출력값과 XOR 연산할 때 상기 키값에 대응하는 사전에 결정된 연산값을 출력하기 위한 마스크값, 및 상기 마스크 값에 대응하는 헬퍼 데이터값을 포함한다.
실시 예에 있어서, 비트 디코딩시 다수결에 따라 상기 PUF 셀들 각각의 PUF 출력값의 에러를 정정하도록 상기 사전에 결정된 연산값은 모두 "1"로 구성된 비트열이거나 모두 "0"으로 구성된 비트열이다.
실시 예에 있어서, 상기 헬퍼 데이터 값은 상기 마스크 데이터 값의 일부로 구성된다.
실시 예에 있어서, 상기 해밍 웨이트가 짝수 일 때 상기 키값은 "1"이고, 상기 해밍 웨이트가 홀수 일 때 상기 키값은 "0"이다.
실시 예에 있어서, 상기 해밍 웨이트가 짝수 일 때 상기 키값은 "0"이고, 상기 해밍 웨이트가 홀수 일 때 상기 키값은 "1"이다.
실시 예에 있어서, 상기 블록 엔코딩은 상기 제 2 헬퍼 데이터에 대한 마스킹을 수행하지 않는다.
실시 예에 있어서, 상기 블록 엔코딩은 상기 제 2 레벨 키의 일부를 이용하여 상기 제 2 헬퍼 데이터에 대한 마스킹을 수행한다.
실시 예에 있어서, 상기 PUF 회로를 구비한 장치에 대한 사용자의 요청에 따라 상기 키 등록 절차가 시작된다.
본 발명의 실시 예에 따른 PUF (physically unclonable function) 회로의 키 발생 방법은: PUF 셀들로부터 제 1 레벨 키를 발생하는 단계; 비휘발성 메모리로부터 제 1 헬퍼 데이터를 읽는 단계; 해밍 웨이트를 근거로 한 비트 코딩 테이블 및 상기 제 1 헬퍼 데이터를 이용하여 상기 제 1 레벨 키에 대한 비트 디코딩을 수행하는 단계; 상기 비휘발성 메모리로부터 제 2 헬퍼 데이터를 읽는 단계; 에러 정정 코드 및 상기 제 2 헬퍼 데이터를 이용하여 상기 비트 디코딩에서 출력되는 제 2 레벨 키에 대한 블록 디코딩을 수행하는 단계를 포함하고, 상기 비트 디코딩을 수행할 때, 상기 제 1 헬퍼 데이터 및 상기 제 1 레벨 키에 대한 XOR 연산값들에 대하여 다수결에 따라 상기 제 2 레벨 키가 발생된다.
실시 예에 있어서, 상기 제 1 레벨 키의 사이즈는 상기 제 2 레벨 키의 사이즈보다 크다.
실시 예에 있어서, 상기 제 2 레벨 키의 사이즈는 상기 제 3 레벨 키의 사이즈와 동일하다.
실시 예에 있어서, 상기 제 2 레벨 키의 사이즈는 상기 제 3 레벨 키의 사이즈보다 크다.
본 발명의 실시 예에 따른 PUF 회로는, 복수의 PUF(physically unclonable function) 셀들로 구성된 PUF 셀 어레이; 및 상기 PUF 셀들로부터 출력되는 제 1 레벨 키의 에러를 정정하는 에러 정정기를 포함하고, 상기 에러 정정기는, 해밍 웨이트를 근거로 한 비트 코딩 테이블을 이용하여 상기 제 1 레벨 키에 대한 비트 엔코딩을 수행하고, 상기 비트 엔코딩에서 출력되는 제 2 레벨 키에 대응하는 제 1 헬퍼 데이터를 비휘발성 메모리에 저장하는 비트 엔코더; 및 에러 정정 코드를 이용하여 상기 비트 엔코딩에서 출력되는 상기 제 2 레벨 키에 대한 블록 엔코딩을 수행하고, 상기 블록 엔코딩에서 출력되는 제 3 레벨 키에 대응하는 제 2 헬퍼 데이터를 상기 비휘발성 메모리에 저장하는 블록 엔코더를 포함한다.
실시 예에 있어서, 상기 제 1 헬퍼 데이터는 마스크 데이터의 일부로 구성되고, 상기 마스크 데이터는, 상기 PUF 셀들 각각의 PUF 출력값과 상기 PUF 출력값의 해밍 웨이트에 따른 키값에 대응하는 비트값을 XOR 연산을 수행할 때 사전에 결정된 연산값이 발생하도록 결정된다.
실시 예에 있어서, 상기 에러 정정기는, 상기 제 2 레벨 키의 일부 및 상기 비트 엔코더로부터 출력된 상기 2 헬퍼 데이터를 XOR 연산하는 연산기를 더 포함하고, 상기 연산기의 출력값이 상기 비휘발성 메모리에 저장된다.
실시 예에 있어서, 상기 에러 정정기는, 키 발생시 상기 PUF 셀들 각각으로부터 출력되는 제 1 레벨 키의 에러를 정정하기 위하여 상기 비트 코딩 테이블 및 상기 비휘발성 메모리로부터 읽혀진 상기 제 1 헬퍼 데이터를 이용하여 비트 디코딩을 수행하는 비트 디코더를 더 포함한다.
실시 예에 있어서, 상기 에러 정정기는, 상기 비트 디코더로부터 출력되는 제 2 레벨 키의 에러를 정정하기 위하여 상기 에러 정정 코드 및 상기 비휘발성 메모리로부터 읽혀진 상기 제 2 헬퍼 데이터를 이용하여 블록 디코딩을 수행하는 블록 디코더를 더 포함한다.
상술한 바와 같이 본 발명에 따른 PUF 회로 및 그것의 키등록 방법은, PUF 출력값의 해밍 웨이트를 근거로 한 비트 코딩 테이블을 이용하여 비트 엔코딩을 수행함으로써, 별도의 랜덤 비트 없이도 비트 엔코딩을 수행할 수 있으며, 헬퍼 데이터의 사이즈를 줄일 수 있으며, 출력되는 키의 바이어스를 줄일 수 있다.
도 1은 본 발명의 실시 예에 따른 PUF 회로를 예시적으로 보여주는 도면이다.
도 2는 본 발명의 실시 예에 따른 3-비트 코딩 테이블에 대한 제 1 실시 예를 예시적으로 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따른 3-비트 코딩 테이블에 대한 제 2 실시 예를 예시적으로 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 3-비트 코딩 테이블에 대한 제 3 실시 예를 예시적으로 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 3-비트 코딩 테이블에 대한 제 4 실시 예를 예시적으로 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 3-비트 코딩 테이블에 대한 제 5 실시 예를 예시적으로 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 3-비트 코딩 테이블에 대한 제 6 실시 예를 예시적으로 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 5-비트 코딩 테이블에 대한 제 1 실시 예를 예시적으로 보여주는 도면이다.
도 9는 본 발명의 실시 예에 따른 5-비트 코딩 테이블에 대한 제 2 실시 예를 예시적으로 보여주는 도면이다.
도 10은 본 발명의 실시 예에 따른 마스킹 없이 블록 엔코딩에 대한 실시 예를 보여주는 도면이다.
도 11은 본 발명의 실시 예에 다른 마스킹을 하는 블록 엔코딩에 대한 실시 예를 보여주는 도면이다.
도 12는 본 발명의 실시 예에 따른 키 발생을 설명하기 위한 도면이다.
도 13은 본 발명의 실시 예에 따른 PUF 회로의 키 등록 방법을 예시적으로 보여주는 흐름도이다.
도 14는 본 발명의 실시 예에 따른 PUF 회로의 키 발생 방법을 예시적으로 보여주는 흐름도이다.
도 15는 본 발명의 실시 예에 따른 전자 장치를 예시적으로 보여주는 블록도이다.
도 16은 본 발명의 실시 예에 따른 스마트카드의 인증 절차에 대하여 개념적으로 설명하는 도면이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
일반적으로, PUF(physically unclonable function)를 구현하는데 있어, 극복해야 할 가장 큰 이슈들 중 하나가, 불안전한 PUF 출력값의 BER (bit error rate)을 효과적으로 줄이는 것이다. PUF는 동일한 디자인이라고 할지라도, 칩마다 다른 각기 고유한 값을 발생해야 한다. 이를 위해, 일반적으로 칩 발생 공정에서 발생하는 공정 변수(process variation, 예를 들어 트랜지스터를 구현할 때 발생하는 미세한 차이)을 통해 칩마다 다른 고유한 전자 지문(signature)을 발생하게 된다. 이러한 미세한 차이는 근본적으로 상당히 큰 BER을 발생시킨다. 즉, PUF 출력값이 일정한 값으로 고정되지 않고, 온도, 입력전압, 노화(aging) 등의 영향에 따라 다른 값을 출력하게 되는 것이다.
그런데, PUF의 출력값을 암복호(encryption/decryption)의 키(key), 인증 코드(authentication code) 등으로 사용하기 위해서는, 그 값의 무결성(integrity)은 반드시 보장되어야 한다. 이에 따라, 근본적으로 발생할 수밖에 없는 에러율을 극복하기 위한 여러 가지 방법이 제안되고 있다. 하지만, 일반적인 에러 정정 기법은 하드웨어의 리소스(resource)를 증가시키기 때문에 실제 제품을 양산하기 위한 주요한 제한 요소가 되고 있다.
일반적으로 사용되는 PUF 키 등록(key enrollment) 방식은 PUF 칩을 생산한 다음 초기에 한번 만 수행한다. 랜덤하게 발생된 키는 PUF를 활용하여 안전하게 저장하고 있다. PUF의 출력값에 대한 에러 정정을 위하여, 블록 단위의 에러 정정 코딩(다른 말로, 블록 엔코딩)과 비트 단위의 에러 정정 코딩(다른 말로, 반복 엔코딩)이 함께 사용되고 있다. 또한, 키의 사이즈만큼의 랜덤 비트가 필요하게 되는데, 이렇게 발생된 헬퍼 데이터(helper data)는 비휘발성 메모리에 저장된다. 키 등록 과정이 완료된 후에는, 랜덤 비트는 저장하지 않고 버린다. 키 등록을 통해 등록된 키는, 키 발생 과정을 통해 복구/발생하게 된다. 키 등록을 통해 등록된 키 값 (예를 들어, 128 랜덤 비트들)이 PUF 출력값을 활용하여 복구된다. 설령, PUF 출력값이 키 등록 단계에서 발생된 값과 다른 값이 출력되더라도(즉, 에러가 존재하더라도), 반복 디코딩과 블록 디코딩을 통해 출력값이 복구된다.
일반적인 에러 정정 기법은 랜덤 비트를 발생이 필수적이고, 비휘발성 메모리 장치에 저장되어야 하는 반복 코딩에 따른 헬퍼 데이터의 양도 상당히 커진다. 또한, 랜덤 비트 발생으로 인하여 시스템의 복잡도가 증가하고, 키 등록 단계의 수행 속도가 저하될 수도 있다.
반면에, 본 발명의 실시 예에 따른 PUF 출력값에 대한 에러 정정 기법은, 랜덤 비트를 사용하지 않고 안전하게 반복 코딩과 블록 코딩을 수행하도록 구현될 수 있다. 이로 인해, PUF 시스템의 성능을 향상시킬 수 있을 뿐만 아니라, 하드웨어 비용이 줄어들게 되고, 비휘발성 메모리의 사용량 또한 현저하게 줄일 수 있다.
도 1은 본 발명의 실시 예에 따른 PUF 회로(100)를 예시적으로 보여주는 도면이다. 도 1을 참조하면, PUF 회로(100)는 PUF 셀 어레이(110), 에러 정정기(120) 및 비휘발성 메모리(130)를 포함한다.
PUF 셀 어레이(110)는 복수의 PUF 셀들(111 ~ 11t, t는 2 이상의 정수)을 포함한다. PUF 셀들(111 ~ 11t) 각각은, 트랜지스터 문턱전압 기반 PUF 셀, 중개기(arbiter) 기반 PUF 셀 (예를 들어, 중개기 PUF 셀, 피드-포워드(feed-forward) PUF 셀, 중개기 PUF 셀들을 병렬로 배치한 XOR PUF 셀, 라이트웨이트(lightweight) PUF 셀, 등), 링 오실레이터(ring oscillator) 기반 PUF 셀, 메모리 기반 PUF 셀( 예를 들어, SRAM PUF 셀, 래치 PUF 셀, 플래시 메모리 PUF 셀, 메미스터(memistor) PUF 셀), 레이저 빔 혹은 열 변화에 따른 재구성 가능한(reconfigurable) PUF 셀 등 중 적어도 하나로 구현될 수 있다. 실시 예에 있어서, PUF 셀 어레이(110)는 제 1 레벨 키(L1_Key)를 발생한다. 여기서 제 1 레벨 키(L1_Key)는 PUF 셀들(111 ~ 11t) 각각으로부터 출력되는 값들(P1, P2, ... Pt)로 구성될 수 있다.
실시 예에 있어서, PUF 셀들(111 ~ 11t) 각각의 출력값들(P1, P2, ..., Pt)은 연속적으로 출력되는 복수의 비트 값들일 수 있다. 다른 실시 예에 있어서, PUF 셀들(111 ~ 11t) 각각의 출력값들(P1, P2, ..., Pt)은 PUF 셀들(111 ~ 11t) 각각을 구성하는 복수의 단위 셀들로부터 출력되는 복수의 비트 값들일 수 있다.
에러 정정기(120)는, 제 1 레벨 키(L1_Key)에 대한 비트 엔코딩을 수행함으로써 제 2 레벨 키(L2_Key) 및 제 1 레벨 키(L1_Key)의 에러를 정정하는데 이용하기 위한 제 1 헬퍼 데이터(HD1)를 발생하고, 제 2 레벨 키(L2_Key)에 대한 블록 엔코딩을 수행함으로써 제 3 레벨 키(L3_Key) 및 제 2 레벨 키(L2_Key)의 에러를 정정하는데 이용하기 위한 제 2 헬퍼 데이터(HD2)를 발생한다. 에러 정정기(120)는 비트 엔코더(121) 및 블록 엔코더(122)를 포함한다.
비트 엔코더(121)는 PUF 셀 어레이(110)로부터 제 1 레벨 키(L1_Key)를 입력 받고, 제 1 레벨 키(L1_Key)에 대한 비트 엔코딩을 수행함으로써 제 2 레벨 키(L2_Key)를 발생한다. 또한, 비트 엔코더(121)는 제 2 레벨(L2_Key)에 대응하는 제 1 헬퍼 데이터(HD1)을 발생하고, 제 1 헬퍼 데이터(HD1)을 비휘발성 메모리(130)에 저장시킨다. 여기서 비트 엔코딩은 해밍 웨이트(hamming weight)를 근거로 한 비트 코딩 테이블을 이용할 수 있다.
실시 예에 있어서, 비트 엔코더(121)는 PUF 셀들(111 ~ 11t) 각각으로부터 n (n은 3 이상의 정수)번의 출력값들을 입력 받고, n 번의 출력값들에 대한 해밍 웨이트(hamming weight, '1' 비트의 개수)에 따라 PUF 셀들(111 ~ 11t) 각각의 출력값을 결정한다. 여기서 비트 엔코더(121)에서 결정된 출력값들이 제 2 레벨 키(L2_Key)이다.
아래에서는 비트 엔코더(121)의 제 2 레벨 키(L2_Key)의 일부를 발생하는 것을 설명하기 위하여 비트 엔코더 비트 엔코더(121)가 3-비트 엔코딩을 수행한다고 가정하겠다. 만일, 제 1 PUF 셀(111)로부터 출력값들이 "101"이라면, 해밍 웨이트는 짝수(even number)이다. 이에 따라, 제 1 PUF 셀(111)의 출력값은 "0"로 엔코딩 될 수 있다. 반면에, 제 1 PUF 셀(111)로부터 3번의 출력값들이 "001"이고 할 때, 해밍 웨이트는 홀수(odd number)이다. 이에 따라, 제 1 PUF 셀(111)의 출력값은 "1"로 엔코딩 될 수 있다. 위의 비트 엔코딩 방법은 실시 예에 불과하다. 해밍 웨이트가 짝수일 때, PUF 셀의 출력값이 "1"으로 엔코딩되고, 해밍 웨이트가 홀수 일 때, PUF 셀의 출력값이 "0"로 엔코딩 될 수도 있다.
실시 예에 있어서, 비트 엔코더(121)는 제 2 레벨 키(L2_Key)에 대응하는 제 1 헬퍼 데이터(HD1)를 발생한다. 실시 예에 있어서, 제 1 헬퍼 데이터(HD1)는 다양한 비트 코딩 테이블에 따라 발생된 마스크 데이터(mask data)에 관련된 데이터일 수 있다.
블록 엔코더(122)는 에러 정정 코드(ECC, error correction code)를 이용하여 비트 엔코더(121)에서 출력되는 제 2 레벨 키(L2_Key)에 대한 블록 엔코딩을 수행하고, 그 결과로써 3 레벨 키(L3_Key)를 출력할 수 있다. 실시 예에 있어서, 에러 정정 코드는 LDPC(low density parity check) code, BCH code, turbo code, 리드-솔로몬 코드(Reed-Solomon code), convolution code, RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 코디드 모듈레이션(coded modulation) 들 중 적어도 하나일 수 있다. 또한, 블록 엔코더(122)는 블록 엔코딩에서 출력되는 제 3 레벨 키(L3_Key)에 대응하는 제 2 헬퍼 데이터(HD2)를 발생하여, 제 2 헬퍼 데이터(HD2)를 비휘발성 메모리(130)에 저장시킨다.
비휘발성 메모리(130)는 제 1 및 제 2 헬퍼 데이터들(HD1, HD2)를 저장하도록 구현된다. 도 1에서는 비휘발성 메모리(130)가 PUF 회로(100)의 내부에 구성되었다. 하지만, 본 발명이 반드시 여기에 제한될 필요는 없다. 비휘발성 메모리(130)는 PUF 회로(100)의 외부에 존재하도록 구성될 수 있다.
본 발명의 실시 예에 따른 PUF 회로(100)는 별도의 랜덤 비트 발생 없이 해밍 웨이트에 근거로 한 비트 코딩 테이블을 이용하여 비트 코딩을 수행할 수 있다.
도 2 내지 도 11에서는 다양한 비트 코딩 테이블에 대하여 설명하도록 하겠다.
도 2는 본 발명의 실시 예에 따른 3-비트 코딩 테이블에 대한 제 1 실시 예를 예시적으로 보여주는 도면이다. 도 2에서는 3-비트 엔코딩이 수행된다.
예를 들어, PUF 셀의 출력값(Pi)이 "000"일 때, 해밍 웨이트는 "0"이므로, 키 값(Ki)은 "0"이 된다. 3-비트 반복 엔코딩이 수행됨으로써, 연산값(Ri = Pi XOR Mi)은 "000"이다. 이때, 마스크 데이터(Mi)는, PUF 셀의 출력값(Pi)과 XOR 연산을 수행함으로써 연산값(Ri)이 발생하기 위한 데이터 값으로써, "000"이다. 이때, 헬퍼 데이터(Hi)의 값은 "000"의 마스크 데이터(Mi)일 수 있다.
또한, PUF 셀의 출력값(Pi)이 "001"일 때, 해밍 웨이트는 "1"이므로, 키 값(Ki)은 "1"이 된다. 3-비트 반복 엔코딩이 수행됨으로써, 연산값(Ri)은 "111"이다. 이때, 마스크 데이터(Mi)는, PUF 셀의 출력값(Pi)과 XOR 연산을 수행함으로써 연산값(Ri)이 발생하기 위한 데이터 값으로써, "110"이다. 이때, 헬퍼 데이터(Hi)의 값은 "110"의 마스크 데이터(Mi)일 수 있다.
일반적으로, 비트 엔코딩을 수행하면, 비트당 발생되는 헬퍼 데이터(HD1)가 1 비트 이상이므로, 헬퍼 데이터(HD1)만으로 제 2 레벨 키(L2_Key)를 복구할 수 있다. 일반적인 반복 코딩(repetition coding)과 같이, 헬퍼 데이터(HD1)의 값(Hi)와 PUF 셀 출력값(Pi)의 XOR 연산값에 대한 다수결(majority voting)을 통하여 1-비트의 에러가 복구될 수 있다. 예를 들어, 키 등록 단계에서, 제 1 내지 제 3 PUF 셀들(111 ~ 113)의 값이 "101"으로 발생되고, 이에 대응하는 헬퍼 데이터 "101"이 사용되었다고 가정하겠다. 이때, 키 발생 단계에서, 제 1 PUF 셀(111)의 비트 에러가 발생하더라도, PUF 출력값(Pi)이 "001"이 되더라도, "001"의 PUF 출력값(Pi) 와 "010"의 헬퍼 데이터 값(Hi)의 XOR 연산값은 "011"이 된다. "011"의 XOR 연산값에 대한 다수결에 따라 "001"의 PUF 출력값(Pi)에 대한 복구된 키값(Ki)은 "1"이다.
3-비트 엔코딩의 경우, PUF 출력값(Pi)의 크기가 키(L2_Key)의 크기의 3배이다. 따라서, 일반적으로 n-비트 엔코딩의 경우, 다음의 관계가 수식이 성립된다.
Figure 112014115886244-pat00001
도 2에 도시된 바와 같이, 비트 코딩 테이블은 여러 가지 형태로 구성될 수 있다. PUF 회로(100)에서 안전하게 사용되기 위해서는, 비트 코딩 테이블은 기본적으로 다음의 몇 가지 조건들을 만족해야 한다.
첫번째로, 다수결(majority voting)을 적용한 비트 디코딩(bit decoding)을 수행하기 위해서, PUF 출력값(Pi)와 마스크 데이터 값(Mi)의 XOR 연산값(Ri)은 모두 "1"로 구성된 비트열(즉, "111") 혹은 모두 "0"으로 구성된 비트열(즉, "000")이 되어야 한다. 두번째로, 마스크 데이터(Mi)만으로는 키 값(Ki)을 유추하지 못하게 하기 위해서, 하나의 마스크 데이터에 대해, 키 값(Ki)이 "0" 및 "1" 두 가지 모두로 해석될 수 있어야 한다. 예를 들어, 마스크 데이터(Mi)가 "000"인 경우, PUF 출력값(Pi)이 "000"일 때 키 값(Ki)은 "0"이고, PUF 출력값(Pi)이 "111"일 때 키 값(Ki)은 "1"이다.
상술 된 두 가지 조건을 만족하기 위해서는, 마스크 데이터(Mi)의 경우의 수는 PUF 출력값의 공간(output space)의 절반이다. 첫번째 조건을 만족하기 위해서는, 각각의 PUF 출력값(Pi)이 가질 수 있는 마스크 데이터(Mi)는 자기 자신 혹은 자신의 반전값(inverse)로 존재한다. 또한, 두번째 조건을 만족하기 위해서는, PUF 출력값(Pi)는 자신의 반전값(~Pi)와 동일한 마스크 데이터 값(Mi)을 가진다. 결과적으로 서로 반전 관계에 있는 두 개의 PUF 출력값들(Pi)가 하나의 쌍(pair)로 구성될 수 있다. 각각의 쌍은 동일한 마스크 데이터 값(Mi)를 갖게 됨과 동시에, 다른 쌍과는 다른 마스크 데이터 값(Mi)를 가진다. 따라서, 마스크 데이터 값(Mi)의 공간은 PUF 출력값(Pi)의 공간의 절반이다. 이에 2-비트만으로도 마스크 데이터 값(Mi)이 표현될 수 있다.
도 3은 본 발명의 실시 예에 따른 3-비트 코딩 테이블에 대한 제 2 실시 예를 예시적으로 보여주는 도면이다. 도 3을 참조하면, 3-비트 코딩 테이블은, 도 2에 도시된 그것과 비교하여 헬퍼 데이터(Hi)가 다르다. 2-비트 만으로 마스크 데이터(Mi)가 표현 가능함으로, 헬퍼 데이터(Hi)는 마스크 데이터(Mi)의 MSB(most significant bit) 두 비트로 표현될 수 있다.
한편, 도 3에 도시된 헬퍼 데이터(Hi)의 표현은 실시 예에 불과하다. 헬퍼 데이터(Hi)는 마스크 데이터(Mi)의 MSB와 LSB 두 비트로 표현될 수 있다. 도 4는 본 발명의 실시 예에 따른 3-비트 코딩 테이블에 대한 제 3 실시 예를 예시적으로 보여주는 도면이다. 도 4를 참조하면, 3-비트 코딩 테이블은, 도 2에 도시된 그것과 비교하여 헬퍼 데이터(Hi)가 다르다. 2-비트 만으로 마스크 데이터(Mi)가 표현 가능함으로, 헬퍼 데이터(Hi)는 마스크 데이터(Mi)의 MSB(most significant bit) 및 LSB(least significant bit) 두 비트로 표현될 수 있다.
한편, 헬퍼 데이터(Hi)는 마스크 데이터(Mi)의 LSB 두 비트로 표현될 수 있다. 도 5는 본 발명의 실시 예에 따른 3-비트 코딩 테이블에 대한 제 4 실시 예를 예시적으로 보여주는 도면이다. 도 5를 참조하면, 3-비트 코딩 테이블은, 도 2에 도시된 그것과 비교하여 헬퍼 데이터(Hi)가 다르다. 2-비트 만으로 마스크 데이터(Mi)가 표현 가능함으로, 헬퍼 데이터(Hi)는 마스크 데이터(Mi)의 LSB(least significant bit) 두 비트로 표현될 수 있다.
또한, 상술 된 바와 같이 각각의 마스크 데이터 값들 쌍은 서로 반전 관계인 두 가지 방식의 마스크 데이터 값들로 구성될 수 있다. n-비트 엔코딩의 경우, 총 2n-1 쌍이 존재하므로, 상술된 조건을 만족하는 엔코딩 방식의 개수는 아래의 수학식으로 표현될 수 있다.
Figure 112014115886244-pat00002
따라서, 3-비트 엔코딩의 경우, 총 16 가지의 코딩 방식이 존재할 수 있다. 간단하게 도 2의 마스크 데이터(Mi)를 반전함으로써, 형태는 다르지만 비슷한 특징을 갖는 비트 코딩 테이블이 구성될 수도 있다. 도 6은 본 발명의 실시 예에 따른 3-비트 코딩 테이블에 대한 제 5 실시 예를 예시적으로 보여주는 도면이다. 도 6를 참조하면, 비트 코딩 테이블, 도 2에 도시된 그것과 비교하여 반전된 마스크 데이터 값(Mi)으로 구성된다. 다른 말로, 해밍 웨이트에 따라 결정되는 키 값(Ki)은, 도 2에 도시된 그것과 비교하여 반전된 값을 갖는다.
도 7은 본 발명의 실시 예에 따른 3-비트 코딩 테이블에 대한 제 6 실시 예를 예시적으로 보여주는 도면이다. 도 7을 참조하면, 비트 코딩 테이블은, 도 6에 도시된 그것과 비교하여 2-비트로 구성된 헬퍼 데이터 값(Hi)을 갖는다는 것이 다르다. 헬퍼 데이터 값(Hi)은 마스크 데이터 값(Mi)의 MSB 두 개의 비트들로 구성될 수 있다. 한편, 본 발명의 헬퍼 데이터 값(Hi)은 마스크 데이터 값(Mi)을 구성하는 3개의 비트들 중 2개를 선택함으로써 다양하게 구현 가능하다.
한편, 도 2 내지 도 7에서는 3-비트 코딩 테이블을 설명하였다. 본 발명의 비트 코딩 테이블이 3-비트에 제한되지 않을 것이다. 본 발명의 비트 코딩 테이블은 5-비트 코딩 테이블일 수도 있다. 도 8은 본 발명의 실시 예에 따른 5-비트 코딩 테이블에 대한 제 1 실시 예를 보여주는 도면이다. 도 8을 참조하면, 5-비트의 마스크 데이터 값(Mi)은 5-비트의 마스크 데이터 값(Mi) 중에서 LSB를 제외한 4개의 비트들로 구성될 수 있다. 한편, 본 발명의 헬퍼 데이터 값(Hi)은 마스크 데이터 값(Mi)을 구성하는 5개의 비트들 중 4개를 선택함으로써 다양하게 구현 가능하다.
도 9는 본 발명의 실시 예에 따른 5-비트 코딩 테이블에 대한 제 2 실시 예를 보여주는 도면이다. 도 9를 참조하면, 5-비트 코딩 테이블은, 도 7에 도시된 그것과 비교하여 해밍 웨이트에 따라 서로 다른 키 값(Ki)을 갖는다. 이에 따라 마스크 데이터 값(Mi) 및 헬퍼 데이터 값(Hi)도, 도 8의 그것과 비교하여 다르다.
한편, 아래의 도 10 및 도 11에서는 블록 코딩에 대하여 설명하도록 하겠다. 도 10은 본 발명의 실시 예에 따른 마스킹(masking) 없이 블록 엔코딩에 대한 실시 예를 보여주는 도면이다. 도 10을 참조하면, 블록 엔코더(122)는 n-비트의 제 2 레벨 키(L2_Key)를 입력 받고, n-비트의 제 3 레벨 키(L3_Key)를 발생하고 r-비트의 제 2 헬퍼 데이터(HD2)를 발생한다.
한편, 제 2 헬퍼 데이터(HD2)에 대한 마스킹이 수행되지 않는다. 하지만, 본 발명의 헬퍼 데이터(HD2)가 여기에 제한되지 않을 것이다. 키(L3_Key)에 대한 보안성을 높이기 위하여 헬퍼 데이터(HD2)에 대한 마스킹을 수행할 수도 있다. 도 11은 본 발명의 실시 예에 다른 마스킹을 하는 블록 엔코딩에 대한 실시 예를 보여주는 도면이다. 도 11을 참조하면, 블록 엔코더(122)는 n (= k + r)-비트의 제 2 레벨 키(L2_Key)를 입력 받고, k-비트의 제 3 레벨 키(L3_Key)를 발생하고, 마스킹된 r-비트의 제 2 헬퍼 데이터(HD2)를 발생한다. 연산기(125)는 제 2 레벨 키(L2_Key)의 일부(r-비트)와 블록 엔코더(122)의 r-비트 마스크 데이터를 XOR 연산함으로써 마스킹된 r-비트의 제 2 헬퍼 데이터(HD2)를 발생한다.
도 11에 도시된 바와 같이, 제 2 헬퍼 데이터(HD2)가 제 2 레벨 키(L2_Key)의 일부분으로 마스킹되기 때문에 헬퍼 데이터(HD2)로 인하여 유출되는 제 3 레벨 키(L3_Key)의 정보는 없다.
한편, 도 1 내지 도 11에서는 키 등록 방법에 대하여 설명하였다. 아래에서는 키 발생 방법에 대하여 설명하겠다.
도 12는 본 발명의 실시 예에 따른 키 발생을 설명하기 위한 도면이다. 도 1 내지 도 12를 참조하면, 키 발생 과정은 다음과 같다. 우선적으로, 비휘발성 메모리(130)에는 키 등록에 따라 제 1 헬퍼 데이터(HD1) 및 제 2 헬퍼 데이터(HD2)가 저장되어 있다고 가정하겠다.
PUF 셀 어레이(110)는 제 1 레벨 키(L1_Key)를 발생한다. 즉, PUF 셀들(111 ~ 11t) 각각은 n-비트의 PUF 출력값들(P1 ~ Pt)를 출력한다. 비트 디코더(123)는 t-비트의 PUF 출력값들(P1 ~ Pt)을 입력 받고, 비휘발성 메모리(130)로부터 제공된 제 1 헬퍼 데이터(HD1)을 이용하여 t-비트의 PUF 출력값들(P1 ~ Pt) 각각의 에러를 정정한다. 여기서 에러 정정 동작은, PUF 출력값(Pi)과 헬퍼 데이터(Hi)에 대응하는 마스크 데이터(Mi)의 XOR 연산을 수행함으로써, XOR 연산값 중에 다수결에 따라 키 값(Ki)을 결정할 수 있다. 이렇게 결정된 k개의 키 값들이 제 2 레벨 키(L2_Key)로 출력될 수 있다.
이후, 블록 디코더(124)는, 비트 디코더(123)으로부터 출력되는 제 2 레벨 키(L2_Key)와 비휘발성 메모리(130)로부터 제 2 헬퍼 데이터(HD2)를 입력받고, 사전에 결정된 에러 정정 코드를 이용하여 제 2 레벨 키(L2_Key)의 에러를 정정함으로써, 제 3 레벨 키(L3_Key)를 발생할 수 있다. 이렇게 발생된 제 3 레벨 키(L3_Key)가 PUF 회로(100)의 최종적인 키로 사용될 수 있다.
도 13은 본 발명의 실시 예에 따른 PUF 회로의 키 등록 방법을 예시적으로 보여주는 흐름도이다. 도 1 내지 도 13을 참조하면, PUF 회로(100)의 키 등록 방법은 다음과 같다. PUF 셀들(111 ~ 11t) 각각으로부터 PUF 데이터가 발생된다. 여기서 발생된 PUF 데이터는 제 1 레벨 키(L1_Key)일 수 있다(S110). 랜덤 비트 없이 비트 코딩 테이블을 이용하여 비트 엔코딩이 수행된다(S120). 비트 엔코딩 결과로써, PUF 데이터에 대응하는 제 2 레벨 키(L2_key) 및 마스크 데이터가 발생된다(S120). 마스크 데이터의 발생은, 도 2에서 설명된 바와 같이 사전에 결정된 적어도 하나의 조건을 만족할 것이다. 이후, 마스크 데이터에 대응하는 제 1 헬퍼 데이터(HD1)가 비휘발성 메모리(130)에 저장된다(S130). 이후, 에러 정정 코드를 이용하는 블록 엔코딩이 수행된다(S140). 블록 엔코딩 결과로써, 제 3 레벨 키(L3_Key) 및 그것의 제 2 헬퍼 데이터(HD2)가 발생된다. 이후, 제 2 헬퍼 데이터(HD2)가 비휘발성 메모리(130)에 저장된(S150). 이로써, PUF 회로(100)의 키 등록이 완료된다.
실시 예에 있어서, PUF 회로(100)의 키 등록은, PUF 회로(100)를 구비한 전자 장치의 사용자에 의해 선택적으로 수행되거나, PUF 회로(100)를 구비한 전자 장치의 제조자에 의해 수행될 수 있다.
도 14는 본 발명의 실시 예에 따른 PUF 회로의 키 발생 방법을 예시적으로 보여주는 흐름도이다. 도 1 내지 도 14을 참조하면, PUF 회로(100)의 키 발생 방법은 다음과 같다. PUF 셀들(111 ~ 11t) 각각으로부터 PUF 데이터가 발생된다. 여기서 발생된 PUF 데이터는 제 1 레벨 키(L1_Key)일 수 있다(S210). 비휘발성 메모리(NVM, 130)으로부터 제 1 헬퍼 데이터(HD1)가 읽혀진다(S220). 랜덤 비트 없이 비트 코딩 테이블을 이용하여 비트 디코딩이 수행된다(S230). 비트 디코딩 결과로써, 제 1 레벨 키(L1_Key)의 에러가 정정된 제 2 레벨 키(L2_key)가 발생된다.
이후, 제 2 헬퍼 데이터(HD2)가 비휘발성 메모리(130)로부터 읽혀진다(S240). 이후, 에러 정정 코드를 이용하는 블록 디코딩이 수행된다(S250). 블록디코딩 결과로써, 제 2 레벨 키(L2_Key)의 에러가 정정된 제 3 레벨 키(L3_Key)가 발생된다. 발생된 제 3 레벨 키(L3_Key)는 PUF 회로(100)의 최종적인 키이다. 이로써, PUF 회로(100)의 키 발생이 완료된다.
본 발명의 실시 예에 따른 PUF 회로(100)의 장점은 다음과 같다. 첫째로, 비트 엔코딩/디코딩에서 랜덤 비트를 발생할 필요가 없다. 둘째로, 키 에러 정정에 사용되는 헬퍼 데이터(예를 들어, 제 1 헬퍼 데이터)의 사이즈가 작다. 세째로, PUF 출력값에 바이어스(bias)가 있더라도, 발생되는 키의 바이어스가 상당하게 개선할 수 있는 코딩 선택이 자유롭다.
아래에서는 본 발명의 PUF 회로(100)의 키 바이어스가 개선되는 이유에 대하여 설명하도록 하겠다. 주어진 n-bit 에 대해 여러 가지 코딩 방법이 존재한다. 선택 가능한 코딩 중에서, 적절하게 선택할 경우, PUF 회로(100)의 바이어스를 개선할 수 있다.
도 3 내지 도 7에 도시된 바와 같이, 키값(Ki)은 결과적으로 3-비트의 PUF 출력값(Pi)의 체크-썸(check-sum)으로 계산될 수 있다. 즉, PUF 출력값(Pi)의 해밍 웨이트가 짝수이면, 키값(Ki)은 "0"이고, 해밍 웨이트가 홀수이면 키값(Ki)은 "1"이다. PUF 출력값(Pi)가 ε만큼 바이어스되어 있다고 가정할 때, 키 발생 확률은 다음의 수학식으로 표현된다.
Figure 112014115886244-pat00003
코딩 선택에 따라, PUF 출력값(Pi)의 바이어스가 키값(Ki)에 그대로 유지될 수도 있지만, 도 2 내지 도 7에 도시된 비트 코딩 테이블에 따르면 아래와 같이 개선된다는 것을 알 수 있다.
Figure 112014115886244-pat00004
따라서,
Figure 112014115886244-pat00005
.
결과적으로, 비트 엔코딩의 바이어스(ε')가 3차승 오더(order)로 줄어든다. 앞에서는 도 2 내지 도 7은 3-비트 엔코딩에 대한 바이어스가 줄어드는 것에 대하여 설명하였다. 만일, 도 8 및 도 9에 도시된 5-비트 엔코딩의 경우에는 바이어스가 더욱 줄어든다. 도 8 내지 도 9에 도시된 비트 코딩 테이블에 따르면 아래와 같이 개선된다는 것을 알 수 있다.
Figure 112014115886244-pat00006
따라서,
Figure 112014115886244-pat00007
.
결과적으로, 비트 엔코딩의 바이어스(ε')가 5차승 오더(order)로 줄어든다.
도 15는 본 발명의 실시 예에 따른 전자 장치(1000)를 예시적으로 보여주는 블록도이다. 도 15를 참조하면, 전자 장치(1000)는 적어도 하나의 프로세서(1100), 버퍼 메모리(1200), 코드 메모리(1300), PUF 회로(1400), 암호 처리 회로(1500), 비휘발성 메모리 인터페이스(1600), 비휘발성 메모리 장치(1700) 및 호스트 인터페이스(1800)를 포함한다. 전자 장치(1100)는 데이터 저장 매채(SSD, 메모리 스틱, UFS 장치) , 메모리 카드(SD, MMC, eMMC, 등), 스마트 카드, 모바일 기기(예를 들어, 스마트폰, 갤럭시 탭), 등일 수 있다.
프로세서(1110)는 전자 장치(1000)에 대한 전반적인 동작을 제어할 수 있다. 버퍼 메모리(1200)는 프로세서(1110)의 제어에 따라 동작하며, 프로세서(1110)에 의해서 처리되는 데이터가 임시 저장되거나, 비휘발성 메모리 장치(1700)로 전송되거나 데이터 혹은 비휘발성 메모리 장치(1700)로부터 읽어온 데이터 버퍼링할 수 있다. 실시 예에 있어서 메모리(1200)는 RAM(random access memory), SRAM (static random access memory), PRAM (phase-change random access memory) 일 수 있다.
코드 메모리(1300)는 전자 장치(1000)를 관리/운영하기 위한 코드(code) 및/혹은 어플리케이션을 저장한다. 실시 예에 있어서, 코드 메모리(1300)는 ROM(read only memory), PRAM 일 수 있다.
PUF 회로(1400)는 보안에 필요한 키를 발생한다. PUF 회로(1400)는 도 1 내지 도 14에서 설명된 PUF 회로(100)로 구현될 수 있다. PUF 회로(1400)는 하드웨어/소프트웨어/펌웨어로 구현될 수 있다. PUF 회로(1400)는 PUF 데이터를 발생하는 비트 발생기(1410) 및 발생된 PUF 데이터의 에러를 정정하는 에러 정정기(1420)를 포함한다. 비트 발생기(1410)는 도 1에 도시된 PUF 셀 어레이(110)으로 구현될 수 있고, 에러 정정기(1420)는 도 1에 도시된 비트 엔코더(121), 블록 엔코더(122), 도 12에 도시된 비트 디코더(123), 블록 디코더(124)를 포함할 수 있다.
암호 처리 회로(1500)는 PUF 회로(1400)로부터 출력된 키 값을 이용하여 입출력 데이터에 대한 암/복호 동작을 수행할 수 있다.
NVM 인터페이스(1600)를 통해 비휘발성 메모리 장치(1700)와 데이터 등을 주고 받는다. 비휘발성 메모리 장치(1700)는, 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM) 등이 될 수 있다. 또한, 비휘발성 메모리 장치(100)는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다.
호스트 인터페이스(1800)는 PATA 버스(parallel AT attachment bus), SATA 버스(serial AT attachment bus), SCSI, USB, PCIe, SD, SAS, UFS, eMMC, MMC, 낸드 인터페이스 등을 통해 외부의 호스트와 연결될 수 있다.
도 15에 도시되지 않았지만, 전자 장치(1000)는 ECC(error correction code) 회로를 더 포함할 수 있다. ECC 회로는, 비휘발성 메모리 장치(1700)로부터 수신된 데이터의 페일 비트(fail bit) 또는 에러 비트(error bit)를 정정하기 위한 에러 정정 코드(ECC; Error Correction Code)를 발생하고, 비휘발성 메모리 장치(1700)로 제공되는 데이터의 에러 정정 인코딩을 수행하여, 패리티(parity) 비트가 부가된 데이터를 형성한다. 패리티 비트는 비휘발성 메모리 장치(1700)에 저장될 수 있다. 또한, ECC 회로는 비휘발성 메모리 장치(1700)로부터 출력된 데이터에 대하여 에러 정정 디코딩을 수행할 수 있다. ECC 회로는 패리티(parity)를 사용하여 에러를 정정할 수 있다. ECC 회로는 LDPC(low density parity check) code, BCH code, turbo code, 리드-솔로몬 코드(Reed-Solomon code), convolution code, RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 코디드 모듈레이션(coded modulation)을 사용하여 에러를 정정할 수 있다.
도시되지 않았지만, 전자 장치(1000)는 무선 통신 기능(예를 들어, WiFi)을 탑재할 수 있다.
본 발명의 실시 예에 따른 PUF 회로는 스마트카드에 적용가능하다.
도 16은 본 발명의 실시 예에 따른 스마트카드의 인증 절차에 대하여 개념적으로 설명하는 도면이다. 도 16을 참조하면, 스마트카드(10)는 PUF 회로(12)로부터 발생된 키값에 대응하는 아이디(ID)를 서버에 전송한다. PUF 회로(12)는 도 1 내지 도 14에서 설명된 PUF 회로(100)으로 구현될 수 있다. 이때 아이디(ID)는 스마트카드(10)의 PUF 회로(12) 만의 고유한 값이다. 서버(20)는 스마트카드(10)의 아이디(ID)가 서버(22)에 등록되었는 지를 확인하고, 등록되어 있다면 아이디(ID)에 대응하는 챌린지를 발생하고, 챌린지를 스마트카드(10)으로 전송한다. 스마트카드(10)는 서버(20)로부터 챌린지를 입력 받고, PUF 회로(12)를 이용하여 리스판스를 발생하고, 이를 서버(20)로 전송한다. 이로써, 스마트카드(10)와 서버(20)는 공격자의 악의적인 의도를 원천적으로 차단하면서 안전하게 인증 절차를 수행할 수 있다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
100: PUF 회로
110: PUF 셀 어레이
111 ~ 11t: PUF 셀
120: 에러 정정기
121: 비트 엔코더
122: 블록 엔코더
123: 비트 디코더
124: 블록 디코더
130: 비휘발성 메모리

Claims (19)

  1. 보안 키 등록 정보를 불휘발성 메모리 장치에 저장하는 방법에 있어서,
    복수의 PUF(physically unclonable function) 장치로부터 복수의 제1 키 값들을 생성하는 단계, 단, 상기 복수의 제1 키 값들 각각은 제1 비트들을 포함하고;
    상기 복수의 제1 키 값들 각각에서 상기 복수의 제1 비트들의 해밍 웨이트를 기반으로 상기 복수의 제1 키 값들 각각에 대한 비트-엔코딩을 수행하여, 복수의 마스크 값들을 포함하는 마스크 데이터 및 복수의 제2 비트들을 생성하는 단계;
    상기 마스크 데이터에 대응하는 제1 헬퍼 데이터를 상기 불휘발성 메모리 장치에 저장하는 단계;
    블록-기반의 에러 정정 코딩을 사용하여 상기 복수의 제2 비트들에 대한 블록-엔코딩을 수행하여 복수의 제3 비트들 및 제2 헬퍼 데이터를 생성하는 단계;
    상기 제2 헬퍼 데이터를 상기 불휘발성 메모리 장치에 저장하는 단계를 포함하고,
    상기 제1 헬퍼 데이터 및 상기 제2 헬퍼 데이터는 상기 보안 키 등록 정보를 포함하고,
    상기 복수의 마스크 값들 각각은 상기 복수의 제1 키 값들 중 대응하는 하나 및
    상기 복수의 마스크 값들 각각은 상기 복수의 제1 키 값들 중 대응하는 하나, 및 상기 복수의 제1 키 값들 중 상기 하나와 대응하는 상기 상기 복수의 제2 비트들의 하나의 반복 엔코딩된 값을 기반으로 생성되는 방법.
  2. 제 1 항에 있어서,
    상기 복수의 제1 키 값들 각각 및 상기 복수의 마스크 값들 중 대응하는 하나에 대한 로직 연산은 미리 정해진 값을 생성하는 방법.
  3. 제 2 항에 있어서,
    상기 복수의 마스크 값들 각각은 복수의 비트들을 포함하고, 상기 복수의 비트들은 상기 복수의 제1 키 값들 각각의 상기 제1 비트들의 개수와 동일하고,
    상기 미리 정해진 값은 모든 비트들이 "1" 및 "0" 중 하나인 비트 스트림인 방법.
  4. 제 1 항에 있어서,
    상기 해밍 웨이트가 짝수인 경우, 상기 복수의 제2 비트들 중 대응하는 하나는 제1 논리 값이고,
    상기 해밍 웨이트가 홀수인 경우, 상기 복수의 제2 비트들 중 대응하는 하나는 제2 논리 값인 방법.
  5. 제 4 항에 있어서,
    상기 복수의 제2 비트들 중 상기 대응하는 하나가 상기 제1 논리 값인 경우, 상기 복수의 제1 키 값들 중 대응하는 하나는 상기 복수의 마스크 값들 중 대응하는 하나와 동일하고,
    상기 복수의 제2 비트들의 상기 대응하는 하나가 상기 제2 논리 값인 경우, 상기 복수의 제1 키 값들 중 대응하는 하나는 상기 복수의 마스크 값들 중 대응하나는 하나가 반전된 값인 방법.
  6. 제 1 항에 있어서,
    상기 복수의 마스크 값들의 공간은 상기 복수의 제1 키 값들의 공간의 절반인 방법.
  7. 제 1 항에 있어서,
    상기 제1 헬퍼 데이터는 복수의 제1 헬퍼 값들을 포함하고,
    상기 복수의 제1 헬퍼 값들 각각은 상기 복수의 마스크 값들의 대응하는 하나의 적어도 일부를 포함하는 방법.
  8. 제 1 항에 있어서,
    상기 복수의 제2 비트들에 대한 블록-엔코딩을 수행하는 단계는:
    상기 복수의 제2 비트들의 적어도 일부에 대한 상기 블록-엔코딩을 수행하여 제2 마스크 데이터를 생성하는 단계; 및
    상기 제2 마스크 데이터 및 상기 복수의 제2 비트들의 나머지를 XOR 연산하여 상기 제2 헬퍼 데이터를 생성하는 단계를 포함하는 방법.
  9. 제 1 항에 있어서,
    상기 복수의 제2 비트들의 개수는 상기 복수의 제3 비트들의 개수보다 많은 방법.
  10. 제1 항에 있어서,
    상기 복수의 PUF 장치는 복수의 PUF 셀들을 포함하는 PUF 어레이인 방법.
  11. 제 10 항에 있어서,
    상기 복수의 제1 키 값들은 상기 복수의 PUF 셀들로부터 각각 생성되는 방법.
  12. 키 등록 정보로부터 PUF(physically unclonable function) 회로 및 불휘발성 메모리를 포함하는 전자 장치에 대한 보안 키를 생성하는 방법에 있어서,
    복수의 제1 키 값들을 생성하는 단계, 단 상기 복수의 제1 키 값들 각각은 복수의 제1 비트들을 포함하고;
    상기 불휘발성 메모리에 저장된 상기 키 등록 정보에 포함된 복수의 제1 헬퍼 데이터 값들을 읽는 단계, 단, 상기 복수의 제1 헬퍼 데이터 값들 각각은 상기 복수의 제1 키 값들 각각에 대응되고;
    상기 복수의 제1 헬퍼 데이터 값들을 사용하여 상기 복수의 제1 키 값들 각각에 대한 비트 에러 정정 동작을 수행하여, 복수의 제2 키 값들을 생성하는 단계;
    상기 불휘발성 메모리에 저장된 상기 키 등록 정보로부터 제2 헬퍼 데이터를 읽는 단계;
    상기 제2 헬퍼 데이터를 사용하여 상기 복수의 제2 키 값들에 대한 블록 에러 정정 동작을 수행하여 상기 복수의 제2 키 값들에 포함된 에러를 정정하는 단계; 및
    상기 에러가 정정된 상기 복수의 제2 키 값들을 상기 보안 키로서 출력하는 단계를 포함하고,
    상기 복수의 제1 헬퍼 데이터 값들은 마스크 데이터를 포함하고,
    상기 마스크 데이터는 복수의 마스크 값들을 포함하고,
    상기 복수의 마스크 값들 각각은 상기 복수의 제1 키 값들 중 대응하는 하나 및 상기 복수의 제1 키 값들 중 상기 하나에 대응하는 제2 비트의 반복 엔코딩된 값에 기반되는 방법.
  13. 제 12 항에 있어서,
    상기 비트 에러 정정 동작은:
    상기 복수의 제1 키 값들 각각 및 상기 복수의 제1 헬퍼 데이터 값들 각각에 대한 논리 연산을 수행하는 단계; 및
    상기 논리 연산의 결과에 대한 다수결 동작을 수행하여 상기 복수의 제2 키 값들을 생성하는 단계를 포함하는 방법.
  14. 제 12 항에 있어서,
    상기 복수의 제1 키 값들은 복수의 PUF 셀들을 포함하는 상기 PUF 회로로부터 생성되는 방법.
  15. 제 12 항에 있어서,
    외부 서버로 상기 보안 키에 대응하는 아이디(ID; identification)를 전송하는 단계;
    상기 외부 서버로부터 상기 ID에 대응하는 챌린지를 수신하는 단계; 및
    상기 챌린지에 응답하여 상기 외부 서버로 응답을 전송하는 단계를 더 포함하는 방법.
  16. 전자 장치에 있어서,
    불휘발성 메모리;
    복수의 제1 키 값들을 생성하도록 구성된 보안 키 소스 회로, 단 상기 복수의 제1 키 값들 각각은 복수의 제1 비트들을 포함하고; 그리고
    상기 복수의 제1 키 값들 각각의 에러를 정정하도록 구성된 에러 정정부를 포함하고,
    상기 에러 정정부는:
    상기 복수의 제1 키 값들 각각에 대한 비트 엔코딩을 수행하여 복수의 제2 비트들 및 복수의 마스크 값들을 생성하도록 구성된 비트 엔코더, 단 상기 복수의 제2 비트들 각각은 상기 복수의 제1 키 값들 각각의 해밍 웨이트에 대응하고, 상기 복수의 마스크 값들 각각은 상기 복수의 제1 키 값들 각각에 대응하고; 그리고
    에러 정정 코드를 사용하여 상기 복수의 제2 비트들에 대한 블록 엔코딩을 수행하여 제3 레벨 키 및 제2 헬퍼 데이터를 생성하고, 상기 제2 헬퍼 데이터를 상기 불휘발성 메모리 장치로 전송하도록 구성된 블록 엔코더를 포함하고,
    상기 복수의 제1 키 값들 중 하나 및 상기 마스크 값들 중 대응하는 하나 사이의 논리 연산은 미리 정해진 값을 생성하고,
    상기 복수의 마스크 값들 각각은 상기 복수의 제1 키 값들 중 대응하는 하나 및 상기 복수의 제1 키 값들 중 상기 하나에 대응하는 상기 복수의 제2 비트들 중 하나의 반복 엔코딩된 값을 기반으로 생성되고,
    상기 에러 정정부는 하드웨어 또는 마이크로프로세서에 의해 실행되는 프로그램 코드로 구현되고,
    상기 전자 장치는 상기 제3 레벨 키를 사용하여 입력 데이터 또는 출력 데이터에 대한 암호화 동작 또는 복호화 동작을 수행하도록 구성된 프로세서를 더 포함하는 전자 장치.
  17. 제 16 항에 있어서,
    상기 보안 키 소스 회로는 복수의 PUF 셀들을 포함하고,
    상기 복수의 PUF 셀들 각각은 트랜지스터 문턱 전압 기반 PUF 셀이고,
    상기 복수의 제1 키 값들은 상기 복수의 PUF 셀들로부터 각각 생성되는 전자 장치.
  18. 제 17 항에 있어서,
    상기 복수의 마스크 값들의 공간은 상기 복수의 제1 키 값들의 공간의 절반인 전자 장치.
  19. 제 17 항에 있어서,
    상기 비트 엔코더는 랜덤 비트 발생 없이 상기 비트 엔코딩을 수행하는 전자 장치.
KR1020140168505A 2014-11-28 2014-11-28 Puf 회로 및 그것의 키 등록 방법 KR102201642B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020140168505A KR102201642B1 (ko) 2014-11-28 2014-11-28 Puf 회로 및 그것의 키 등록 방법
US14/940,749 US10027480B2 (en) 2014-11-28 2015-11-13 Physically unclonable function circuits and methods of performing key enrollment in physically unclonable function circuits
US16/023,626 US10505728B2 (en) 2014-11-28 2018-06-29 Physically unclonable function circuits and methods of performing key enrollment in physically unclonable function circuits

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140168505A KR102201642B1 (ko) 2014-11-28 2014-11-28 Puf 회로 및 그것의 키 등록 방법

Publications (2)

Publication Number Publication Date
KR20160065297A KR20160065297A (ko) 2016-06-09
KR102201642B1 true KR102201642B1 (ko) 2021-01-13

Family

ID=56079877

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140168505A KR102201642B1 (ko) 2014-11-28 2014-11-28 Puf 회로 및 그것의 키 등록 방법

Country Status (2)

Country Link
US (2) US10027480B2 (ko)
KR (1) KR102201642B1 (ko)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013031151A (ja) 2011-06-20 2013-02-07 Renesas Electronics Corp 暗号通信システムおよび暗号通信方法
US9501664B1 (en) * 2014-12-15 2016-11-22 Sandia Corporation Method, apparatus and system to compensate for drift by physically unclonable function circuitry
US20170126414A1 (en) * 2015-10-28 2017-05-04 Texas Instruments Incorporated Database-less authentication with physically unclonable functions
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
US10715340B2 (en) 2016-08-04 2020-07-14 Macronix International Co., Ltd. Non-volatile memory with security key storage
US10680809B2 (en) 2016-08-04 2020-06-09 Macronix International Co., Ltd. Physical unclonable function for security key
US10911229B2 (en) 2016-08-04 2021-02-02 Macronix International Co., Ltd. Unchangeable physical unclonable function in non-volatile memory
JP6471130B2 (ja) * 2016-09-20 2019-02-13 ウィンボンド エレクトロニクス コーポレーション 半導体装置およびセキュリティシステム
US9806719B1 (en) * 2016-09-29 2017-10-31 Intel Corporation Physically unclonable circuit having a programmable input for improved dark bit mask accuracy
CN107919375B (zh) * 2016-10-06 2020-08-21 财团法人工业技术研究院 可变电阻装置、物理性不可复制功能电路与控制方法
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
US9852791B1 (en) 2016-12-27 2017-12-26 Macronix International Co., Ltd. Semiconductor memory device, chip ID generation method thereof and manufacturing method thereof
CN107392057A (zh) * 2016-12-30 2017-11-24 北京同方微电子有限公司 一种物理不可克隆电路结构
JP6882666B2 (ja) * 2017-03-07 2021-06-02 富士通株式会社 鍵生成装置および鍵生成方法
US10332840B2 (en) 2017-03-21 2019-06-25 Macronix International Co., Ltd. Semiconductor device with physically unclonable function (PUF) and apparatus including the same
KR102341265B1 (ko) * 2017-05-16 2021-12-22 삼성전자주식회사 물리적 복제 방지 기능 회로, 이를 포함하는 시스템 및 집적 회로
EP3407335B1 (en) 2017-05-22 2023-07-26 Macronix International Co., Ltd. Non-volatile memory based physically unclonable function with random number generator
EP3407336B1 (en) 2017-05-22 2022-08-17 Macronix International Co., Ltd. Unchangeable phyisical unclonable function in non-volatile memory
CN107590385B (zh) * 2017-09-15 2020-03-17 湖南大学 一种硬件辅助抗代码复用攻击防御系统及方法
KR102516190B1 (ko) * 2017-10-13 2023-03-31 삼성전자주식회사 보안 키를 생성하는 반도체 장치, 보안 키 생성 방법, 및 보안 키 등록 방법
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
US10521616B2 (en) 2017-11-08 2019-12-31 Analog Devices, Inc. Remote re-enrollment of physical unclonable functions
TWI696111B (zh) * 2018-01-10 2020-06-11 力旺電子股份有限公司 隨機碼產生器
CN110018810B (zh) * 2018-01-10 2021-05-18 力旺电子股份有限公司 随机码产生器
US11044107B2 (en) * 2018-05-01 2021-06-22 Analog Devices, Inc. Device authentication based on analog characteristics without error correction
JP2021526745A (ja) * 2018-06-11 2021-10-07 クリプトグラフィ リサーチ, インコーポレイテッド デバイスの物理的変動に関連する関数に基づくターゲットデータの生成
US10733327B2 (en) 2018-06-26 2020-08-04 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for protecting a PUF generator
US11411751B2 (en) * 2018-06-27 2022-08-09 Unm Rainforest Innovations Correlation-based robust authentication technique using helper data only
US11277272B2 (en) * 2018-11-07 2022-03-15 Samsung Electronics Co., Ltd. Integrated circuit and method for challenge-response physically unclonable function
KR102600349B1 (ko) * 2018-11-16 2023-11-09 한국전자통신연구원 링 발진기 구조 기반의 비밀 정보 생성 장치 및 방법
KR20200082982A (ko) 2018-12-31 2020-07-08 삼성전자주식회사 물리적 복제방지 기능의 보안을 위한 집적 회로 및 이를 포함하는 장치
KR102165427B1 (ko) 2019-02-20 2020-10-15 연세대학교 산학협력단 메모리 기반 puf 장치 및 그 동작 방법
US11245680B2 (en) 2019-03-01 2022-02-08 Analog Devices, Inc. Garbled circuit for device authentication
CN111756541A (zh) * 2019-03-26 2020-10-09 北京普安信科技有限公司 一种传送密钥的方法、服务器、终端及系统
CN110611565B (zh) * 2019-08-07 2022-09-02 杭州微纳核芯电子科技有限公司 数据处理系统、方法及电子设备
KR20210053029A (ko) * 2019-11-01 2021-05-11 삼성전자주식회사 물리적 복제 방지 기능 셀들을 포함하는 보안 장치, 보안 장치의 동작 방법 및 물리적 복제 방지 기능 셀 장치의 동작 방법
KR20210097537A (ko) * 2020-01-30 2021-08-09 삼성전자주식회사 물리적 복제 방지 기능에 기초하여 마스킹 데이터를 생성하는 보안 장치 및 이의 동작 방법
KR20210102740A (ko) * 2020-02-12 2021-08-20 삼성전자주식회사 물리적 복제 방지 기능에 기초하여 키를 생성하는 보안 장치 및 이의 동작 방법
KR20210108787A (ko) * 2020-02-26 2021-09-03 삼성전자주식회사 듀얼 인코더를 포함하는 시큐리티 회로 및 이를 포함하는 암복호화기
US11209993B2 (en) * 2020-03-24 2021-12-28 Sandisk Technologies Llc Physical unclonable function (PUF) for NAND operator
US10944435B1 (en) * 2020-03-27 2021-03-09 Nxp B.V. Tearing save encoding
US11374774B2 (en) * 2020-04-28 2022-06-28 Regents Of The University Of Minnesota Feed-forward XOR physical unclonable functions
KR102282855B1 (ko) * 2020-07-08 2021-07-28 이화여자대학교 산학협력단 복수의 puf 칩들을 포함하는 인증 장치
US11610629B2 (en) * 2020-08-05 2023-03-21 Arizona Board Of Regents On Behalf Of Northern Arizona University Sensing scheme for low power reram-based physical unclonable functions
KR20220019156A (ko) 2020-08-06 2022-02-16 삼성전자주식회사 물리적 복제 방지 셀들을 포함하는 포함하는 보안 장치 및 그것의 동작 방법
US11380379B2 (en) 2020-11-02 2022-07-05 Macronix International Co., Ltd. PUF applications in memories
DE102021105402A1 (de) * 2021-03-05 2022-09-08 Infineon Technologies Ag Datenverarbeitungsvorrichtung und verfahren zum übermitteln von daten über einen bus
US12047518B2 (en) * 2021-03-18 2024-07-23 Analog Devices, Inc. Delay based PUF implementation with integrated determination of optimum configuration
CN115426099B (zh) * 2021-05-31 2024-09-24 南京理工大学 基于存储器puf响应重塑的轻量级密钥提取方法
EP4195582A1 (en) * 2021-12-08 2023-06-14 Thales Dis France SAS A method for correcting an erroneous fuzzy data key
US12081238B2 (en) * 2022-12-20 2024-09-03 Xilinx, Inc. Registration of a PUF signature and regeneration using a trellis decoder
CN117896064B (zh) * 2024-03-14 2024-05-31 中国人民解放军火箭军工程大学 一种低计算开销超晶格孪生puf密钥同步方法及系统
CN118627144A (zh) * 2024-08-14 2024-09-10 青岛海存微电子有限公司 磁存储器密钥生成方法及磁存储器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090144561A1 (en) 2005-07-11 2009-06-04 Davidson Jack W Method and System for Software Protection Using Binary Encoding
US20120131244A1 (en) 2009-07-13 2012-05-24 Rambus Inc. Encoding Data Using Combined Data Mask and Data Bus Inversion
US20140093074A1 (en) 2012-09-28 2014-04-03 Kevin C. Gotze Secure provisioning of secret keys during integrated circuit manufacturing

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003521834A (ja) * 1999-01-29 2003-07-15 ジェネラル・インストルメント・コーポレーション Cta間のシグナリングおよび呼び出しパケットを保護する電話呼び出しに関する鍵管理
US7404202B2 (en) * 2001-11-21 2008-07-22 Line 6, Inc. System, device, and method for providing secure electronic commerce transactions
US7840803B2 (en) 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
JP2005346892A (ja) * 2004-06-07 2005-12-15 Toshiba Corp 光ディスク装置およびアドレス検出方法
JP5113074B2 (ja) * 2006-11-06 2013-01-09 パナソニック株式会社 情報セキュリティ装置
US8233621B2 (en) * 2008-06-16 2012-07-31 Hitachi, Ltd. Slice-based prioritized secure video streaming
KR101678568B1 (ko) * 2009-03-06 2016-11-22 인트린직 아이디 비브이 물리적 시스템에 의존하여 암호화 키를 설정하기 위한 시스템
US8819409B2 (en) * 2009-10-21 2014-08-26 Intrinsic Id B.V. Distribution system and method for distributing digital information
KR101161585B1 (ko) * 2009-12-17 2012-07-04 한국과학기술원 네트워크 코딩을 이용한 망에서의 데이터 전송 시스템 및 방법
WO2011086688A1 (ja) 2010-01-15 2011-07-21 三菱電機株式会社 ビット列生成装置及びビット列生成方法
KR101727130B1 (ko) * 2010-01-20 2017-04-14 인트린직 아이디 비브이 암호화 키를 획득하기 위한 디바이스 및 방법
US8684856B2 (en) 2010-03-17 2014-04-01 Mattel, Inc. Infant swing and glider device
US8667265B1 (en) * 2010-07-28 2014-03-04 Sandia Corporation Hardware device binding and mutual authentication
FR2964278A1 (fr) * 2010-08-31 2012-03-02 St Microelectronics Rousset Extraction de cle dans un circuit integre
WO2012045627A1 (en) 2010-10-04 2012-04-12 Intrinsic Id B.V. Physical unclonable function with improved start-up behavior
US20120183135A1 (en) * 2011-01-19 2012-07-19 Verayo, Inc. Reliable puf value generation by pattern matching
KR101118826B1 (ko) 2011-02-15 2012-04-20 한양대학교 산학협력단 물리적 공격을 방어하는 암호화 장치 및 암호화 방법
JP5420114B2 (ja) 2011-06-02 2014-02-19 三菱電機株式会社 鍵情報生成装置及び鍵情報生成方法
JP5770026B2 (ja) 2011-06-20 2015-08-26 ルネサスエレクトロニクス株式会社 半導体装置
CN104521177B (zh) 2011-12-06 2018-03-06 本质Id有限责任公司 使用单次注册用于基于存储器的puf的软判决误差校正
KR101576408B1 (ko) 2011-12-22 2015-12-09 미쓰비시덴키 가부시키가이샤 디바이스 고유 정보 생성 장치 및 디바이스 고유 정보 생성 방법
US8750502B2 (en) * 2012-03-22 2014-06-10 Purdue Research Foundation System on chip and method for cryptography using a physically unclonable function
US8928347B2 (en) * 2012-09-28 2015-01-06 Intel Corporation Integrated circuits having accessible and inaccessible physically unclonable functions
US9390291B2 (en) * 2012-12-29 2016-07-12 Intel Corporation Secure key derivation and cryptography logic for integrated circuits
US9048834B2 (en) 2013-01-16 2015-06-02 Intel Corporation Grouping of physically unclonable functions
KR101393806B1 (ko) 2013-04-03 2014-05-12 충북대학교 산학협력단 다단계 물리적 복제 불가 함수 시스템
US9992031B2 (en) * 2013-09-27 2018-06-05 Intel Corporation Dark bits to reduce physically unclonable function error rates

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090144561A1 (en) 2005-07-11 2009-06-04 Davidson Jack W Method and System for Software Protection Using Binary Encoding
US20120131244A1 (en) 2009-07-13 2012-05-24 Rambus Inc. Encoding Data Using Combined Data Mask and Data Bus Inversion
US20140093074A1 (en) 2012-09-28 2014-04-03 Kevin C. Gotze Secure provisioning of secret keys during integrated circuit manufacturing

Also Published As

Publication number Publication date
US20180323968A1 (en) 2018-11-08
KR20160065297A (ko) 2016-06-09
US10027480B2 (en) 2018-07-17
US10505728B2 (en) 2019-12-10
US20160156476A1 (en) 2016-06-02

Similar Documents

Publication Publication Date Title
KR102201642B1 (ko) Puf 회로 및 그것의 키 등록 방법
US10476681B2 (en) Semiconductor device generating security key, method of generating security key, and method of enrolling security key
US11451247B2 (en) Decoding signals by guessing noise
KR102057371B1 (ko) 저장 시스템에서 오류 정정 인코딩된 데이터의 리던던시
TWI517173B (zh) 更新可靠度資料之設備及方法
US20160164543A1 (en) Turbo product codes for nand flash
TW201626224A (zh) 使用來自多個儲存單元與一同位儲存單元的可靠性資訊以針對該等儲存單元中的一錯誤者恢復資料的技術
KR101550762B1 (ko) 연접 오류 정정 장치
JP2009524998A (ja) 信号発生器をベースとした装置セキュリティ
US11516026B2 (en) Security device generating key based on physically unclonable function and method of operating the same
CN111143107B (zh) 一种fpga单粒子反转校验电路和方法
CN102799495B (zh) 用于生成校验和的装置
US10191801B2 (en) Error correction code management of write-once memory codes
KR20200033688A (ko) 에러 정정 회로 및 이의 동작 방법
KR20180006250A (ko) 암호 파일을 관리하는 모바일 장치의 방법 및 그것을 포함하는 암호 파일 관리 시스템
US10135468B2 (en) Decoder and method for physically unclonable functions using threshold decoding
WO2016123590A1 (en) Rewriting flash memories by message passing
KR102516190B1 (ko) 보안 키를 생성하는 반도체 장치, 보안 키 생성 방법, 및 보안 키 등록 방법
US11923867B1 (en) Iterative decoder with a dynamic maximum stop condition
US11923868B1 (en) Stall mitigation in iterative decoders
JP2013201479A (ja) 符号化装置、記憶装置および符号化方法

Legal Events

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