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

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

Info

Publication number
KR20160065297A
KR20160065297A KR1020140168505A KR20140168505A KR20160065297A KR 20160065297 A KR20160065297 A KR 20160065297A KR 1020140168505 A KR1020140168505 A KR 1020140168505A KR 20140168505 A KR20140168505 A KR 20140168505A KR 20160065297 A KR20160065297 A KR 20160065297A
Authority
KR
South Korea
Prior art keywords
bit
key
puf
value
level key
Prior art date
Application number
KR1020140168505A
Other languages
English (en)
Other versions
KR102201642B1 (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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Error Detection And Correction (AREA)
  • Quality & Reliability (AREA)
  • Detection And Correction Of Errors (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 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 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 pat00003
코딩 선택에 따라, PUF 출력값(Pi)의 바이어스가 키값(Ki)에 그대로 유지될 수도 있지만, 도 2 내지 도 7에 도시된 비트 코딩 테이블에 따르면 아래와 같이 개선된다는 것을 알 수 있다.
Figure pat00004
따라서,
Figure pat00005
.
결과적으로, 비트 엔코딩의 바이어스(ε')가 3차승 오더(order)로 줄어든다. 앞에서는 도 2 내지 도 7은 3-비트 엔코딩에 대한 바이어스가 줄어드는 것에 대하여 설명하였다. 만일, 도 8 및 도 9에 도시된 5-비트 엔코딩의 경우에는 바이어스가 더욱 줄어든다. 도 8 내지 도 9에 도시된 비트 코딩 테이블에 따르면 아래와 같이 개선된다는 것을 알 수 있다.
Figure pat00006
따라서,
Figure 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 (10)

  1. PUF(physically unclonable function) 회로의 키 등록 방법에 있어서:
    PUF 셀들로부터 제 1 레벨 키를 발생하는 단계;
    해밍 웨이트를 근거로 한 비트 코딩 테이블을 이용하여 상기 제 1 레벨 키에 대한 비트 엔코딩을 수행하는 단계;
    상기 비트 엔코딩에서 출력되는 제 2 레벨 키에 대응하는 제 1 헬퍼 데이터를 비휘발성 메모리에 저장하는 단계;
    에러 정정 코드를 이용하여 상기 비트 엔코딩에서 출력되는 상기 제 2 레벨 키에 대한 블록 엔코딩을 수행하는 단계; 및
    상기 블록 엔코딩에서 출력되는 제 3 레벨 키에 대응하는 제 2 헬퍼 데이터를 상기 비휘발성 메모리에 저장하는 단계를 포함하는 키 등록 방법.
  2. 제 1 항에 있어서,
    상기 비트 코딩 테이블은, 상기 PUF 셀 각각의 PUF 출력값, 상기 PUF 출력값의 해밍 웨이트에 따른 키값, 상기 PUF 출력값과 XOR 연산할 때 상기 키값에 대응하는 사전에 결정된 연산값을 출력하기 위한 마스크값, 및 상기 마스크 값에 대응하는 헬퍼 데이터값을 포함하는 키 등록 방법.
  3. 제 2 항에 있어서,
    비트 디코딩시 다수결에 따라 상기 PUF 셀들 각각의 PUF 출력값의 에러를 정정하도록 상기 사전에 결정된 연산값은 모두 "1"로 구성된 비트열이거나 모두 "0"으로 구성된 비트열인 키 등록 방법.
  4. 제 2 항에 있어서,
    상기 헬퍼 데이터 값은 상기 마스크 데이터 값의 일부로 구성되는 키 등록 방법.
  5. 제 2 항에 있어서,
    상기 해밍 웨이트가 짝수 일 때 상기 키값은 "1"이고, 상기 해밍 웨이트가 홀수 일 때 상기 키값은 "0"인 키 등록 방법.
  6. 제 1 항에 있어서,
    상기 블록 엔코딩은 상기 제 2 레벨 키의 일부를 이용하여 상기 제 2 헬퍼 데이터에 대한 마스킹을 수행하는 키 등록 방법.
  7. PUF (physically unclonable function) 회로의 키 발생 방법에 있어서:
    PUF 셀들로부터 제 1 레벨 키를 발생하는 단계;
    비휘발성 메모리로부터 제 1 헬퍼 데이터를 읽는 단계;
    해밍 웨이트를 근거로 한 비트 코딩 테이블 및 상기 제 1 헬퍼 데이터를 이용하여 상기 제 1 레벨 키에 대한 비트 디코딩을 수행하는 단계;
    상기 비휘발성 메모리로부터 제 2 헬퍼 데이터를 읽는 단계;
    에러 정정 코드 및 상기 제 2 헬퍼 데이터를 이용하여 상기 비트 디코딩에서 출력되는 제 2 레벨 키에 대한 블록 디코딩을 수행하는 단계를 포함하고,
    상기 비트 디코딩을 수행할 때, 상기 제 1 헬퍼 데이터 및 상기 제 1 레벨 키에 대한 XOR 연산값들에 대하여 다수결에 따라 상기 제 2 레벨 키가 발생되는 키 발생 방법.
  8. 복수의 PUF(physically unclonable function) 셀들로 구성된 PUF 셀 어레이; 및
    상기 PUF 셀들로부터 출력되는 제 1 레벨 키의 에러를 정정하는 에러 정정기를 포함하고,
    상기 에러 정정기는,
    해밍 웨이트를 근거로 한 비트 코딩 테이블을 이용하여 상기 제 1 레벨 키에 대한 비트 엔코딩을 수행하고, 상기 비트 엔코딩에서 출력되는 제 2 레벨 키에 대응하는 제 1 헬퍼 데이터를 비휘발성 메모리에 저장하는 비트 엔코더; 및
    에러 정정 코드를 이용하여 상기 비트 엔코딩에서 출력되는 상기 제 2 레벨 키에 대한 블록 엔코딩을 수행하고, 상기 블록 엔코딩에서 출력되는 제 3 레벨 키에 대응하는 제 2 헬퍼 데이터를 상기 비휘발성 메모리에 저장하는 블록 엔코더를 포함하는 PUF 회로.
  9. 제 8 항에 있어서,
    상기 에러 정정기는,
    상기 제 2 레벨 키의 일부 및 상기 비트 엔코더로부터 출력된 상기 2 헬퍼 데이터를 XOR 연산하는 연산기를 더 포함하고,
    상기 연산기의 출력값이 상기 비휘발성 메모리에 저장되는 PUF 회로.
  10. 제 8 항에 있어서,
    상기 에러 정정기는,
    키 발생시 상기 PUF 셀들 각각으로부터 출력되는 제 1 레벨 키의 에러를 정정하기 위하여 상기 비트 코딩 테이블 및 상기 비휘발성 메모리로부터 읽혀진 상기 제 1 헬퍼 데이터를 이용하여 비트 디코딩을 수행하는 비트 디코더; 및
    상기 비트 디코더로부터 출력되는 제 2 레벨 키의 에러를 정정하기 위하여 상기 에러 정정 코드 및 상기 비휘발성 메모리로부터 읽혀진 상기 제 2 헬퍼 데이터를 이용하여 블록 디코딩을 수행하는 블록 디코더를 더 포함하는 PUF 회로.
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 true KR20160065297A (ko) 2016-06-09
KR102201642B1 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)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018063483A1 (en) * 2016-09-29 2018-04-05 Intel Corporation Physically unclonable circuit having a programmable input for improved dark bit mask accuracy
KR20180125860A (ko) * 2017-05-16 2018-11-26 삼성전자주식회사 물리적 복제 방지 기능 회로, 이를 포함하는 시스템 및 집적 회로
KR20190041898A (ko) * 2017-10-13 2019-04-23 삼성전자주식회사 보안 키를 생성하는 반도체 장치, 보안 키 생성 방법, 및 보안 키 등록 방법
US10476681B2 (en) 2017-10-13 2019-11-12 Samsung Electronics Co., Ltd. Semiconductor device generating security key, method of generating security key, and method of enrolling security key
KR20200101619A (ko) 2019-02-20 2020-08-28 연세대학교 산학협력단 메모리 기반 puf 장치 및 그 동작 방법
KR102282855B1 (ko) * 2020-07-08 2021-07-28 이화여자대학교 산학협력단 복수의 puf 칩들을 포함하는 인증 장치

Families Citing this family (43)

* 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
US10911229B2 (en) 2016-08-04 2021-02-02 Macronix International Co., Ltd. Unchangeable physical unclonable function in non-volatile memory
US10680809B2 (en) 2016-08-04 2020-06-09 Macronix International Co., Ltd. Physical unclonable function for security key
US11258599B2 (en) 2016-08-04 2022-02-22 Macronix International Co., Ltd. Stable physically unclonable function
US10855477B2 (en) 2016-08-04 2020-12-01 Macronix International Co., Ltd. Non-volatile memory with physical unclonable function and random number generator
US10715340B2 (en) 2016-08-04 2020-07-14 Macronix International Co., Ltd. Non-volatile memory with security key storage
JP6471130B2 (ja) * 2016-09-20 2019-02-13 ウィンボンド エレクトロニクス コーポレーション 半導体装置およびセキュリティシステム
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
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 湖南大学 一种硬件辅助抗代码复用攻击防御系统及方法
US10521616B2 (en) 2017-11-08 2019-12-31 Analog Devices, Inc. Remote re-enrollment of physical unclonable functions
CN110018810B (zh) * 2018-01-10 2021-05-18 力旺电子股份有限公司 随机码产生器
TWI696111B (zh) * 2018-01-10 2020-06-11 力旺電子股份有限公司 隨機碼產生器
US11044107B2 (en) * 2018-05-01 2021-06-22 Analog Devices, Inc. Device authentication based on analog characteristics without error correction
EP3811220B1 (en) * 2018-06-11 2023-08-09 Cryptography Research, Inc. Generating a target data based on a function associated with a physical variation of a device
US10733327B2 (en) 2018-06-26 2020-08-04 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for protecting a PUF generator
EP3815300A4 (en) * 2018-06-27 2022-03-23 Unm Rainforest Innovations ROBUST AUTHENTICATION TECHNIQUE BASED ON CORRELATION USING ONLY AUXILIARY DATA
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 삼성전자주식회사 물리적 복제방지 기능의 보안을 위한 집적 회로 및 이를 포함하는 장치
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
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
US11380379B2 (en) 2020-11-02 2022-07-05 Macronix International Co., Ltd. PUF applications in memories
US20220303145A1 (en) * 2021-03-18 2022-09-22 Analog Devices, Inc. Delay based puf implementation with integrated determination of optimum configuration
EP4195582A1 (en) * 2021-12-08 2023-06-14 Thales Dis France SAS A method for correcting an erroneous fuzzy data key

Citations (4)

* 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
KR20110069695A (ko) * 2009-12-17 2011-06-23 한국과학기술원 네트워크 코딩을 이용한 망에서의 데이터 전송 시스템 및 방법
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 (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1163589A4 (en) * 1999-01-29 2009-05-13 Gen Instrument Corp IMPLEMENTING AUTHENTICATION USING DECRYPTION AND AUTHENTICATION IN A SINGLE TRANSACTION BY A PROTECTED MICROPROCESSOR
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 光ディスク装置およびアドレス検出方法
US8510608B2 (en) * 2006-11-06 2013-08-13 Panasonic Corporation Generating PUF error correcting code using redundant hardware
US8233621B2 (en) * 2008-06-16 2012-07-31 Hitachi, Ltd. Slice-based prioritized secure video streaming
WO2010100015A1 (en) * 2009-03-06 2010-09-10 Intrinsic Id B.V. System for establishing a cryptographic key depending on a physical system
EP2491510B1 (en) * 2009-10-21 2016-08-24 Intrinsic ID B.V. Distribution system and method for distributing digital information
US9031232B2 (en) 2010-01-15 2015-05-12 Mitsubishi Electric Corporation Bit sequence generation apparatus and bit sequence generation method
EP2526505B1 (en) * 2010-01-20 2015-06-17 Intrinsic ID B.V. Device and method for obtaining a cryptographic key
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
US8848477B2 (en) 2010-10-04 2014-09-30 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 한양대학교 산학협력단 물리적 공격을 방어하는 암호화 장치 및 암호화 방법
EP2680485B1 (en) 2011-06-02 2016-04-06 Mitsubishi Electric Corporation Key information generation device and key information generation method
JP5770026B2 (ja) 2011-06-20 2015-08-26 ルネサスエレクトロニクス株式会社 半導体装置
US9396357B2 (en) * 2011-12-06 2016-07-19 Intrisic Id B.V. Physically unclonable function (PUF) with improved error correction
CN103946909B (zh) 2011-12-22 2016-05-11 三菱电机株式会社 器件固有信息生成装置以及器件固有信息生成方法
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
WO2014112999A1 (en) 2013-01-16 2014-07-24 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 (4)

* 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
KR20110069695A (ko) * 2009-12-17 2011-06-23 한국과학기술원 네트워크 코딩을 이용한 망에서의 데이터 전송 시스템 및 방법
US20140093074A1 (en) * 2012-09-28 2014-04-03 Kevin C. Gotze Secure provisioning of secret keys during integrated circuit manufacturing

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018063483A1 (en) * 2016-09-29 2018-04-05 Intel Corporation Physically unclonable circuit having a programmable input for improved dark bit mask accuracy
KR20180125860A (ko) * 2017-05-16 2018-11-26 삼성전자주식회사 물리적 복제 방지 기능 회로, 이를 포함하는 시스템 및 집적 회로
KR20190041898A (ko) * 2017-10-13 2019-04-23 삼성전자주식회사 보안 키를 생성하는 반도체 장치, 보안 키 생성 방법, 및 보안 키 등록 방법
US10476681B2 (en) 2017-10-13 2019-11-12 Samsung Electronics Co., Ltd. Semiconductor device generating security key, method of generating security key, and method of enrolling security key
KR20200101619A (ko) 2019-02-20 2020-08-28 연세대학교 산학협력단 메모리 기반 puf 장치 및 그 동작 방법
KR102282855B1 (ko) * 2020-07-08 2021-07-28 이화여자대학교 산학협력단 복수의 puf 칩들을 포함하는 인증 장치

Also Published As

Publication number Publication date
US10027480B2 (en) 2018-07-17
US10505728B2 (en) 2019-12-10
US20160156476A1 (en) 2016-06-02
KR102201642B1 (ko) 2021-01-13
US20180323968A1 (en) 2018-11-08

Similar Documents

Publication Publication Date Title
KR102201642B1 (ko) Puf 회로 및 그것의 키 등록 방법
CN109670346B (zh) 半导体装置、产生和登记安全密钥的方法、以及电子系统
KR102458727B1 (ko) 물리적 복제방지 기능으로부터 암호화 키 생성
US9673840B2 (en) Turbo product codes for NAND flash
US11515897B2 (en) Data storage device
US11611359B2 (en) Data storage device
TWI543178B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TWI541820B (zh) 解碼方法、記憶體控制電路單元及記憶體儲存裝置
KR20200058106A (ko) Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
CN110869997B (zh) 电子加密设备、电子登记和重构方法及计算机可读介质
US11924359B2 (en) Security device generating key based on physically unclonable function and method of operating the same
CN113348456A (zh) 具有密码学组件的存储器装置
US10469270B2 (en) Data processing devices and methods for reconstructing a PUF value
TWI550628B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TW201717208A (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
JP2018160064A (ja) メモリコントローラ、メモリシステムおよび制御方法
US20210091792A1 (en) Memory system
US10326473B2 (en) Symbol-based coding for NAND flash devices
KR101852526B1 (ko) 암호 파일을 관리하는 모바일 장치의 방법 및 그것을 포함하는 암호 파일 관리 시스템
KR20200033688A (ko) 에러 정정 회로 및 이의 동작 방법
US9985654B1 (en) High-throughput low-latency erasure error correction in an integrated circuit
Müelich Channel coding for hardware-intrinsic security
Levina et al. Effectiveness of using codes with a sparse check matrix for protection against algebraic manipulations
KR102516190B1 (ko) 보안 키를 생성하는 반도체 장치, 보안 키 생성 방법, 및 보안 키 등록 방법
US20230377676A1 (en) Integrated circuit and operation method and inspection method thereof

Legal Events

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