KR102272750B1 - 비밀 정보 생성 장치 및 그것의 동작 방법 - Google Patents

비밀 정보 생성 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR102272750B1
KR102272750B1 KR1020190008764A KR20190008764A KR102272750B1 KR 102272750 B1 KR102272750 B1 KR 102272750B1 KR 1020190008764 A KR1020190008764 A KR 1020190008764A KR 20190008764 A KR20190008764 A KR 20190008764A KR 102272750 B1 KR102272750 B1 KR 102272750B1
Authority
KR
South Korea
Prior art keywords
resistor
value
bit
capacitor circuit
challenge
Prior art date
Application number
KR1020190008764A
Other languages
English (en)
Other versions
KR20200091681A (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 KR1020190008764A priority Critical patent/KR102272750B1/ko
Priority to US16/742,037 priority patent/US20200233980A1/en
Publication of KR20200091681A publication Critical patent/KR20200091681A/ko
Application granted granted Critical
Publication of KR102272750B1 publication Critical patent/KR102272750B1/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/73Protecting 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 by creating or determining hardware identification, e.g. serial numbers
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

발명에 따른 비밀 정보 생성 장치는, 저항-커패시터 회로, 및 상기 저항-커패시터 회로에 입력단에 연결된 제 1 핀과 상기 저항-커패시터 회로의 출력단에 연결된 제 2 핀을 포함하는 마이크로 컨트롤 유닛을 포함하고, 상기 마이크로 컨트롤 유닛은, 챌린지에 대응하는 디지털 값을 상기 제 1 핀을 통하여 상기 저항-커패시터 회로로 전송하고, 상기 디지털 값에 대응하는 상기 저항-커패시터의 출력값을 상기 제 2 핀을 통하여 수신하고, 상기 수신된 값을 디지털 값으로 변환함으로써 리스판스를 생성하는 것을 특징으로 한다.

Description

비밀 정보 생성 장치 및 그것의 동작 방법{APPARATUS FOR GENERATING SECRET INFORMATION AND OPERATING METHOD THEREOF}
본 발명은 비밀 정보 생성 장치 및 그것의 동작 방법에 관한 것이다.
IoT (Internet of Things) 기술의 확산에 따라 수많은 IoT 기기가 개발되고 판매되고 있으며 IoT 기기를 보호하기 위한 소프트웨어적인 보안 기능들이 탑재되고 있다. 특히 IoT 기기에는 기기 고유의 정보를 식별할 수 있는 암호화 key나 식별 정보 (ID)를 내장하고 있으나 최근 들어 보안 상의 취약점을 이용하여 key나 ID를 알아내어 공격하는 사례가 다수 보고되고 있다. 물리적 복제 방지 (Physically Unclonable Function: PUF) 기술은 하드웨어의 불확실한 특성을 이용하여 반도체 칩에 고유한 비밀 정보를 생성하는 기술로서 반도체 혹은 기기의 설계자도 알 수 없는 비밀 정보를 생성하고 유지하는 목적으로 사용될 수 있다. 예를 들면 기존에 IoT 기기에서는 설계자 혹은 판매자가 IoT 기기 설정을 위한 기본 ID 및 pass word를 기기 자체에 설정해 놓았지만 PUF를 이용한다면 이러한 기본 설정이 필요없이 기기 자체에 고유한 ID 및 비밀 key를 생성할 수 있다.
한국공개특허: 10-2018-0125860, 공개일: 2018년 11월 26일, 제목: 물리적 복제 방지 기능 회로, 이를 포함하는 시스템 및 집적 회로. 한국공개특허: 10-2017-0052506, 공개일: 2017년 5월 12일, 제목: 식별 키 생성 장치 및 방법. 한국공개특허: 10-2018-0102627, 공개일: 2018년 9월 17일, 제목: 프라이버시-보존, 상호 PUF-기반 인증 프로토콜.
본 발명의 목적은 저항-커패시터 회로 및 아날로그-디지털 변환기를 이용하여 비밀 정보를 생성하기 위한 장치 및 그것의 동작 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 비밀 정보 생성 장치는, 저항-커패시터 회로; 및 상기 저항-커패시터 회로에 입력단에 연결된 제 1 핀과 상기 저항-커패시터 회로의 출력단에 연결된 제 2 핀을 포함하는 마이크로 컨트롤 유닛을 포함하고, 상기 마이크로 컨트롤 유닛은, 챌린지에 대응하는 디지털 값을 상기 제 1 핀을 통하여 상기 저항-커패시터 회로로 전송하고, 상기 디지털 값에 대응하는 상기 저항-커패시터의 출력값을 상기 제 2 핀을 통하여 수신하고, 상기 수신된 값을 디지털 값으로 변환함으로써 리스판스를 생성하는 것을 특징으로 한다.
실시 예에 있어서, 상기 저항-커패시터 회로는 하나의 RC 필터를 포함할 수 있다.
실시 예에 있어서, 상기 저항-커패시터 회로는 직렬 연결된 복수의 RC 필터들을 포함할 수 있다.
실시 예에 있어서, 상기 제 1 및 제 2 핀들의 각각은 GPIO(general purpose input/output) 핀을 포함할 수 있다.
실시 예에 있어서, 상기 마이크로 컨트롤 유닛은 상기 챌린지의 길이를 가변하는 것을 특징으로 한다.
실시 예에 있어서, 상기 마이크로 컨트롤 유닛은 상기 챌린지에 대응하는 상기 디지털 값을 비트 출력 시간 동안 1 비트씩 상기 저항-커패시터 회로로 출력하는 것을 특징으로 한다.
실시 예에 있어서, 상기 마이크로 컨트롤 유닛은 상기 저항-커패시터 회로의 충전 혹은 방전을 고려하여 상기 비트 출력 시간을 결정하는 것을 특징으로 한다.
실시 예에 있어서, 상기 마이크로 컨트롤 유닛은, 상기 수신된 값을 디지털 값으로 변환하는 아날로그-디지털 변환기를 더 포함할 수 있다.
실시 예에 있어서, 상기 마이크로 컨트롤 유닛은, 상기 아날로그-디지털 변환기의 출력값 중에서 적어도 하나의 유효 비트를 추출하고, 상기 추출된 유효 비트를 상기 리스판스로 결정하는 것을 특징으로 한다.
실시 예에 있어서, 상기 마이크로 컨트롤 유닛과 상기 저항-커패시터 회로는 하나의 인쇄회로기판(PCB)에 실장되는 것을 특징으로 한다.
본 발명의 실시 예에 따른 비밀 정보 생성 장치의 동작 방법은, 챌린지, 상기 챌린지의 길이, 및 비트 출력 시간을 결정하는 단계; 상기 비트 출력 시간 동안 1 비트씩 상기 챌린지에 대응하는 디지털 값을 제 1 핀을 통하여 저항-커패시터 회로로 출력하는 단계; 제 2 핀을 통하여 상기 저항-커패시터 회로의 출력값을 수신하는 단계; 상기 수신된 값을 디지털로 변환하는 단계; 상기 변환된 값에서 적어도 하나의 유효 비트를 추출하는 단계; 및 상기 추출된 비트를 이용하여 리스판스를 생성하는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 챌린지의 길이가 0인지 판별하는 단계를 더 포함할 수 있다.
실시 예에 있어서, 상기 챌린지의 길이가 0이 아닐 때, 상기 챌린지의 길이를 1 비트만큼 줄이고, 상기 저항-커패시터 회로로 출력하는 단계가 진행되는 것을 특징으로 한다.
실시 예에 있어서, 상기 유효 비트의 개수에 따라 챌린지-리스판스 페어(challenge-response pair)가 결정되는 것을 특징으로 한다.
본 발명의 구성에 따르면, 저항-커패시터 회로 및 아날로그-디지털 변환기를 이용한 비밀 정보 생성 방법을 이용하면 기존의 방식과 대비해서 별도의 비밀 정보 생성 장치 칩이 없이 훨씬 더 낮은 가격으로 기존이 IoT 기기에서 손쉽게 비밀 정보를 생성할 수 있어 점점 더 그 수가 증가하는 IoT 기기를 위한 비밀 키 및 ID 생성 방법을 효과적으로 확보할 수 있다.
또한, 본 발명에 실시 예에 따른 비밀 정보 생성 장치 및 그것의 동작 방법은 challenge의 길이를 자유롭게 변화시킴으로써 32bit 이상의 긴 challenge 길이도 쉽게 구현이 가능하다.
또한, 본 발명에 실시 예에 따른 비밀 정보 생성 장치 및 그것의 동작 방법은 RC 필터를 구성하는 RC 소자를 여러 단으로 배치함으로써 이러한 오차를 더욱 늘려 생성되는 유효 bit의 수를 늘리 수 있다.
또한, 본 발명에 실시 예에 따른 비밀 정보 생성 장치 및 그것의 동작 방법은 저항 및 커패시터가 passive 소자로서 온도 변화에 강한 특성을 가지고 있다. 이로 인해 온도 특성이 좋은 RC를 선택할 경우 상용화에 따른 넓은 범위의 동작 온도를 제공할 수 있다.
이하에 첨부되는 도면들은 본 실시 예에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시 예들을 제공한다. 다만, 본 실시예의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시 예로 구성될 수 있다.
도 1은 본 발명의 실시 예에 따른 비밀 정보 생성 장치(100)를 개념적으로 보여주는 도면이다.
도 2는 본 발명의 실시 예에 따른 RC 필터로 구현된 비밀 정보 생성 장치(100)를 예시적으로 보여주는 도면이다.
도 3은 챌린지 비트 패턴에 따른 1단의 RC 필터로 구성된 비밀 정보 생성 장치(100)의 시뮬레이션 결과를 예시적으로 보여주는 도면이다.
도 4는 1단의 RC 필터로 이루어진 RC 회로(121)에 대한 tolerance의 변화에 따른 RC curve의 변화를 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 challenge에 따른 비밀 정보 생성 장치(100)의 동작 방법을 예시적으로 보여주는 흐름도이다.
도 6은 읽어들인 ADC 입력 값으로부터 유효 bit를 추출하는 예를 예시적으로 보여주는 도면이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다.
상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 혹은 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함하다" 혹은 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 혹은 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것들의 존재 혹은 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
일반적으로 하드웨어적인 고유 특성을 이용하는 PUF(Physically Unclonable Function) 기술은 ASIC(application specific integrated circuit)이나 FPGA(field programmable gate array)를 이용하여 구현되고 있다. 현재까지 보고된 PUF 기술 중 반도체 기술을 이용한 PUF 기술은 주로 arbiter PUF, 링 발진기(ring oscillator) PUF, memory-based PUF 기술로 크게 분류할 수 있다.
Arbiter PUF은 회로 상의 delay 차이를 감지하여 random한 값을 생성하는 방법이며, ring oscillator PUF은 일정 시간 동안 oscillator에서 생성된 클럭 신호를 카운트하여 비교함으로써 random 정보를 생성하는 방법이다. Memory-based PUF은 SRAM(static random access memory), DRAM(dynamic random access memory, 혹은 flash memory의 특성을 이용해서 memory의 특정 영역에서 특정한 방법을 이용하여 random한 값을 추출하는 방법이다. 최근에는 이러한 PUF 이외에도 여러 가지 다양한 방법을 혼합한 PUF 기술도 연구되고 있다. 다양한 형태의 PUF 기술이 연구되고 있음에도 불구하고, 대부분의 PUF 기술이 별도의 칩으로 구현하여 장착해야 한다. IoT 기기의 특성 상 가격 경쟁력에 민감할 수 밖에 없고 고가의 PUF 칩을 사용하거나 별도의 PUF 칩을 구현하여 기기에 장착해야만 하는 부담이 있다.
본 발명의 실시 예에 따른 비밀 정보 생성 장치(혹은, RC PUF) 및 그것의 동작 방법은, 기존의 IoT 기기에 저가격으로 쉽게 적용이 가능한 저항-커패시터(Resister-Capacitor: 이하 RC) 소자 및 아날로그-디지털 변환기(Analog-to-Digital Converter: 이하 ADC)를 이용한 PUF을 구성할 수 있다.
도 1은 본 발명의 실시 예에 따른 비밀 정보 생성 장치(100)를 개념적으로 보여주는 도면이다. 도 1을 참조하면, 비밀 정보 생성 장치(100)는 MCU(micro controller unit, 110) 및 RC 회로(121)를 포함할 수 있다. 도 1에 도시된 바와 같이, 비밀 정보 생성 장치(100)는 인쇄회로기판(printed circuit board; PCB) 위에 실장 될 수 있다. IoT 기기에서 주로 사용되는 MCU(110) 칩 외부에 저항과 커패시터로 구성된 RC 회로(121)가 구현되어 있다.
실시 예에 있어서, 비밀 정보 생성 장치(100)는 MCU(110)의 제 1 핀(P1)을 통하여 RC 회로(121)로 챌린지(challenge)에 대응하는 디지털 값을 출력할 수 있다. 즉, RC 회로(121)는 챌린지에 대응하는 비트 패턴을 연속적으로 수신할 수 있다.
실시 예에 있어서, 비밀 정보 생성 장치(100)는 RC 회로(121)를 통과한 챌린지에 대응하는 비트 패턴에 대응하는 출력 신호를 생성하고, 이를 제 2 핀(P2)를 통하여 아날로그 디지털 변환기(ADC, 111)로 전송할 수 있다.
실시 예에 있어서, 비밀 정보 생성 장치(100)는 아날로그 디지털 변환기(111)의 변환값을 리스판스(response) 값으로 생성할 수 있다.
실시 예에 있어서, 제 1 및 제 2 핀들(P1, P2)의 각각은 GPIO(general purpose input/output)으로 구현 될 수 있다. 하지만, 본 발명이 여기에 제한되지 않는다고 이해되어야 할 것이다.
정리하면, 본 발명의 실시 예에 따른 비밀 정보 생성 장치(100)는 임의의 challenge 신호에 대한 bit pattern을 RC 회로(121)에 연속적으로 통과시킨 후, 최종 값을 MCU(110) 내부의 ADC(111)로 입력을 받아, 임의의 random response 값을 생성할 수 있다. 동일한 값들을 MCU(110)에서 출력하여 RC 회로(121)를 통과시켜 ADC(111)로 입력을 받아도 저항 및 커패시터 소자 자체가 제작 공정에 따른 오차를 가지고 있다. MCU(110) 내부 ADC(111)의 특성 차이 및 PCB (printed circuit board) 패턴 상의 특성 차이로 때문에 ADC(111)로부터 생성된 response 신호는 기기마다 random한 특성을 가질 수 있다.
본 발명의 실시 예에 따른 RC 회로(121) 및 ADC(111)를 이용한 비밀 정보 생성 장치(100)는 기존의 PUF에서 사용되던 소자나 구조, 동작 방법 및 비밀 정보 생성 방법과 큰 차이점을 갖는다.
또한, 본 발명의 실시 예에 따른 RC 회로(121) 및 ADC(111)를 이용한 비밀 정보 생성 장치(100)는 고가의 PUF 칩을 별도로 장착하지 않고 기존에 사용되던 MCU(110)에 저항 및 커패시터로 이루어진 수동 소자 만을 추가함으로 저가격으로 PUF을 구현할 수 있다.
한편, 도 1에 도시된 RC 회로(121)는 RC 필터로 구현될 수 있다.
도 2는 본 발명의 실시 예에 따른 RC 필터로 구현된 비밀 정보 생성 장치(100)를 예시적으로 보여주는 도면이다. 도 2를 참조하면, RC 회로(도 1 참조, 121)는 적어도 하나의 RC 필터를 포함할 수 있다.
본 발명의 실시 예에 따른 비밀 정보 생성 장치(100)는 기존의 링오실레이터, 메모리, delay-based PUF 등과는 전혀 다른 방식의 새로운 PUF 설계 기술로써, 1개의 저항과 1개의 커패시터를 이용한 RC 필터를 1단 혹은 그 이상의 단을 갖도록, MCU(110) 외부에 구성한 뒤, challenge bit 패턴에 따른 bit 값들을 순차적으로 MCU(110)의 디지털 인터페이스를 통해 출력하고, 이를 RC 필터로 통과시킨 뒤, RC 필터(121)의 최종 출력 값(아날로그 파형)을 MCU(110) 내부의 ADC(111, 도 1 참조)를 이용해 읽고, 그 값을 리스판스(response)로 사용할 수 있다.
실시 예에 있어서, 비밀 정보 생성 장치(100)는 도 2에 도시된 바와 같이 디지털 출력 파형(digital output waveform)과 같이 random한 challenge bit pattern을 1bit씩 shift 시키면서 대응하는 bit이 1인 경우 MCU(110) 출력을 일정 시간 동안 1로, 0인 경우 MCU(110) 출력을 0으로 출력할 수 있다. 혹은 그 반대의 경우로도 출력이 가능하다. 여기에서 일정 시간이란 RC 필터의 값에 따라 결정되는 RC 회로(121)의 완전한 충전 혹은 방전 시간 내에서 결정될 수 있다. 실시 예에 있어서, 일정 시간은 RC 필터에 의해 정해지는 시정수 τ=RC를 기반으로 결정할 수 있다.
또한, MCU(110) 출력의 전압 레벨은 MCU(110)의 I/O 전압에 의해 결정될 수 있다. 예를 들어, MCU(110)의 GPIO 출력을 디지털 출력으로 사용하고, GPIO의 최대 출력 전압이 3.3V인 경우에, bit 값이 1이면 최대 3.3V가 출력될 수 있다. 즉, 출력해야 하는 bit가 1인 경우, MCU(110)의 GPIO 출력을 1로 출력될 수 있다. 이에 따라 RC 회로(121)의 출력 (ADC 입력) 값은 RC 시정수에 기반하여 일정 시간 동안 증가할 수 있다. 만일, 완전 충전 시간보다 작은 시간에 GPIO를 반대로 0으로 출력하면, 3.3V로 증가하고 있는 RC 회로(121)의 출력은 증가하고 있던 임의의 값에서 다시 0으로 감소할 수 있다. 이러한 과정을 bit pattern에 따라 반복적으로 수행하면, RC 회로(121)의 최종 출력을 얻을 수 있다.
도 3은 챌린지 비트 패턴에 따른 1단의 RC 필터로 구성된 비밀 정보 생성 장치(100)의 시뮬레이션 결과를 예시적으로 보여주는 도면이다. 도 3을 참조하면, challenge bit pattern이 [1 0 1 1 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1]인 경우에 대해, 1개의 저항과 1개의 커패시터로 이루어진 1단의 RC 필터 회로를 이용한 RC curve의 변화를 시뮬레이션한 결과가 도시된다. 시뮬레이션 시 R=100Kohm, C=100pF을 사용하고, 하나의 bit에 대한 출력 지속 시간은 4.3usec이다. 도 3에 도시된 바와 같이, bit pattern에 따라 RC curve가 변화하는 것을 볼 수 있다.
일반적으로 RC 회로의 충전 및 방전 시의 전압 변화는 아래와 같은 식으로 나타낼 수 있다. 여기에서 충전은 그라운드(GND) 상태에서 RC 회로의 입력에 가해지는 최대 전압을 나타내며, 방전은 RC 회로의 초기 입력 값에서 입력이 GND 상태로 변화했을 때를 나타낸다.
Figure 112019008335003-pat00001
Figure 112019008335003-pat00002
본 발명의 실시 예에 따른 비밀 정보 생성 장치(100)는 충전 도중 혹은 방전 도중에 RC 입력 값이 변화하는 상태에 대해서 전압 변화를 나타낼 수 있다. 이를 위해 시뮬레이션에서 사용된 수식이 변형된다. 변형된 수식에서는 RC 회로에 새로운 bit에 따른 입력이 가해지는 경우, 이전 충전 및 방전 상태의 최종 전압 값으로부터 충전 및 방전이 시작되는 현상을 포함할 수 있다.
Figure 112019008335003-pat00003
Figure 112019008335003-pat00004
여기서 Vrise = 3.3 - Vt이며 Tunit 값은 4.3usec이다.
실시 예에 있어서, MCU(110)에서 bit 당 지속시간을 2usec로 정한 경우 실제 파형 변화는 MCU(110)의 프로세싱 시간이 추가되어 Tunit 값은 4.3usec로 반영될 수 있다. 시작 시점에서의 V0 값은 0이다.
상술된 공식에서 보여지듯 다음 시간까지의 rising 혹은 falling 값은 이전 Vt 값에 의해 영향을 받는다. 예를 들어, 도 3에 도시된 바와 같이 RC 입력이 0인 상태에서 1, 0, 1이 순차적으로 RC 회로의 입력에 가해지고, 디지털 출력 전압이 3.3V라고 가정하면, 첫 번째 1에 의한 전압 변화는
Figure 112019008335003-pat00005
과 같이 나타날 수 있다.
두 번째 0이 입력되면,
Figure 112019008335003-pat00006
와 같이 계산될 수 있다.
세 번째 1이 입력되면,
Figure 112019008335003-pat00007
와 같이 계산될 수 있다.
새로운 bit pattern의 입력에 따른 전압 변화는 이전 값들의 영향이 누적됨을 알 수 있다. 이론적으로는 동일한 bit pattern에 따른 RC 회로의 출력 값은 동일해야 하지만 보드마다 장착된 저항과 커패시터는 제조 공정 상의 오차(tolerance)를 갖고, MCU의 디지털 출력 전압이나, PCB 라인 및 ADC의 특성 차이로 인해 동일한 bit pattern일지라도 보드마다 서로 다른 RC 출력값 및 ADC sample 값을 갖게 된다.
본 발명의 실시 예에 따른 비밀 정보 생성 장치(100)는 이러한 소자나 제작 공정 상의 차이 및 bit pattern에 따른 전압 변화가 이전 값들의 영향이 누적되는 현상을 이용해 동일한 challenge에 대해서 보드마다 다른 response를 생성할 수 있다.
한편, 본 발명의 실시 예에 따른 비밀 정보 생성 장치(100)는 저항 및 커패시터의 제조 공정 상의 오차(tolerance)의 영향을 받고, 상술된 수식에서 알 수 있듯이 RC 회로(121)의 출력 전압은 매 bit마다 RC 값에 영향을 받기 때문에 RC tolerance의 영향이 challenge bit 수가 늘어날수록 누적되고, 최종 출력 값에서는 보드마다 고유한 값을 추출할 수 있을 정도의 유의미한 차이를 나타낼 수 있다.
도 4는 1단의 RC 필터로 이루어진 RC 회로(1210에 대한 tolerance의 변화에 따른 RC curve의 변화를 보여주는 도면이다. 도 4를 참조하면, tolerance의 변화에 따라 RC tolerance의 영향이 누적됨으로써, 최종 ADC sampling 값이 변화될 수 있다.
또한, 본 발명에 실시 예에 따른 비밀 정보 생성 장치(100)는 challenge의 길이를 자유롭게 변화시킬 수 있다. 이 때문에 32bit 이상의 긴 challenge 길이도 쉽게 구현이 가능하다.
또한, 본 발명에 실시 예에 따른 비밀 정보 생성 장치(100)는 RC 필터를 구성하는 RC 소자를 여러 단으로 배치함으로써 이러한 오차를 더욱 늘려 생성되는 유효 bit의 수를 늘리 수 있다.
또한, 본 발명에 실시 예에 따른 비밀 정보 생성 장치(100)는 저항 및 커패시터가 passive 소자로서 온도 변화에 강한 특성을 가지고 있다. 이로 인해 온도 특성이 좋은 RC를 선택할 경우 상용화에 따른 넓은 범위의 동작 온도를 제공할 수 있다.
도 5는 본 발명의 실시 예에 따른 challenge에 따른 비밀 정보 생성 장치(100)의 동작 방법을 예시적으로 보여주는 흐름도이다. 도 1 내지 도 5를 참조하면, 비밀 정보 생성 장치(100)의 동작 방법은 다음과 같이 진행될 수 있다.
먼저, 상위 프로그램으로부터 challenge가 결정되어 전달되면, challenge의 길이 L 및 단위 bit 당 지속되어야 하는 단위 디지털 출력 시간이 결정될 수 있다. 여기서 단위 디지털 출력 시간은 모든 bit에 대해 동일하게 적용될 수 있다(S110).
이후에, challenge의 bit pattern에 따라 challenge를 left-shift 혹은 right-shift를 통해 1 bit 출력(L=L-1)이 결정될 수 있다(S120). 결정된 bit에 대응하는 값이 디지털로 출력될 수 있다(S120). 예를 들어, 결정된 bit가 1이면 디지털 출력을 1로, 0이면 0으로 출력할 수 있다. 그 반대의 동작도 가능하다.
디지털 출력이 시작되면, 앞에서 결정된 단위 시간 동안 디지털 출력을 유지할 수 있다(S140). 이 후에 단위 시간이 종료되면 challenge의 bit 중 출력되지 않은 남아있는 bit가 있는 지 판별될 수 있다. 즉, 챌린지의 길이가 0인지가 판별될 수 있다(S150). 여기서 단위 시간은 RC 소자 값에 의해 결정되는 완전한 RC 충전 혹은 방전 시간 내에서 결정될 수 있다.
만일, 챌린지의 길이가 0이 아닌 경우 다시 shift 동작을 통해 다른 bit에 대해 위의 동작을 반복할 수 있다. 즉, 챌린지의 길이가 1만큼 줄어들고, S120 단계가 진행될 수 있다(S155).
이후에, 만일 하나의 챌린지에 대해 모든 bit가 출력이 완료되면, ADC(111)로 RC 회로의 출력 값이 읽혀질 수 있다(S160). 읽혀진 값으로부터 유효 bit를 추출한 뒤, response 값이 최종적으로 생성될 수 있다(S170).
실시 예에 따라서는, 단계들 및/혹은 동작들의 일부 혹은 전부는 하나 이상의 비-일시적 컴퓨터-판독가능 매체에 저장된 명령, 프로그램, 상호작용 데이터 구조(interactive data structure), 클라이언트 및/혹은 서버를 구동하는 하나 이상의 프로세서들을 사용하여 적어도 일부가 구현되거나 혹은 수행될 수 있다. 하나 이상의 비-일시적 컴퓨터-판독가능 매체는 예시적으로 소프트웨어, 펌웨어, 하드웨어, 및/혹은 그것들의 어떠한 조합일 수 있다. 또한, 본 명세서에서 논의된 "모듈"의 기능은 소프트웨어, 펌웨어, 하드웨어, 및/혹은 그것들의 어떠한 조합으로 구현될 수 있다.
본 발명의 실시 예들의 하나 이상의 동작들/단계들/모듈들을 구현/수행하기 위한 하나 이상의 비-일시적 컴퓨터-판독가능 매체 및/혹은 수단들은 ASICs(application-specific integrated circuits), 표준 집적 회로들, 마이크로 컨트롤러를 포함하는, 적절한 명령들을 수행하는 컨트롤러, 및/혹은 임베디드 컨트롤러, FPGAs(field-programmable gate arrays), CPLDs(complex programmable logic devices), 및 그와 같은 것들을 포함할 수 있지만, 여기에 한정되지는 않는다.
도 6은 읽어들인 ADC 입력 값으로부터 유효 bit를 추출하는 예를 예시적으로 보여주는 도면이다. 읽어들인 ADC의 값은 ADC의 해상도(resolution)에 의해 길이가 결정된다. 예를 들어 ADC의 해상도가 12bit라면 n=4096이 되고, 이 중에서 동일한 challenge에 대해서 발생하는 오차 및 온도 변화에 의해서 발생하는 오차에 대한 하위 수 bit은 제거한 뒤 1 ~ k bit의 유효 bit을 이용해 response를 생성될 수 있다.
실시 예에 있어서, 제거되는 bit의 수는 RC 소자의 오차에 따라 실험적으로 결정할 수 있다.
실시 예에 있어서, 유효 bit k의 길이는 RC 소자의 오차 등에 의해 결정될 수 있다.
또한 동일한 RC 소자에 대해 한 번 유효 bit의 위치나 길이를 결정하면 그 이후로는 보드마다 매번 변경할 필요없이 그 값을 동일하게 사용할 수 있다. 예를 들어, RC 소자의 오차에 따른 ADC 입력 값을 알아보기 위해 다 수의 보드에서 동일한 challenge에 대해서 RC PUF을 동작을 시킨 후 ADC로 읽은 값의 최대 차이가 64라면, m=6이 되고 제거되는 하위 bit는 1 ~ m-1, 즉, 1 ~ 5 bit 이내에서 결정될 수 있다.
예를 들어, 만일 하위 4개의 bit을 제거하기로 결정되면, 5번째 혹은 6번째 bit이나 두 개의 bit을 모두 유효 bit으로 사용할 수 있다. 두 개의 유효 bit을 사용한다면 k=2가 된다.
만일 유효 bit을 1 bit만 사용한다면, k=1이 되고 하나의 challenge에 대해 1 bit response를 얻을 수 있는 challenge-response pair를 제공할 수 있다. 이 경우에 만일 128 bit 길이의 비밀 정보를 얻고 싶다면, 128 개의 서로 다른 challenge에 대해 RC PUF을 동작시켜 얻은 128 개의 response bit을 이용해 비밀 정보를 생성할 수 있다.
만일 하나의 challenge에 대해서 2bit response를 얻는 경우에는 128bit의 비밀 정보를 얻기 위해 64개의 challenge에 대해 RC PUF을 동작시켜 결과를 얻을 수 있다.
본 발명의 구성에 따르면, 저항-커패시터 회로 및 아날로그-디지털 변환기를 이용한 비밀 정보 생성 방법을 이용하면 기존의 방식과 대비해서 별도의 칩 없이 훨씬 더 낮은 가격으로 기존이 IoT 기기에서 손쉽게 비밀 정보를 생성할 수 있어 점점 더 그 수가 증가하는 IoT 기기를 위한 비밀 키 및 ID 생성 방법을 효과적으로 확보할 수 있다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
100: 비밀 정보 생성 장치
110: 마이크로 컨트롤러 유닛(MCU)
121: RC 회로
111: 아날로그 디지털 변환기(ADC)
P1: 제 1 핀
P2: 제 2 핀

Claims (5)

  1. 저항-커패시터 회로; 및
    상기 저항-커패시터 회로에 입력단에 연결된 제 1 핀과 상기 저항-커패시터 회로의 출력단에 연결된 제 2 핀을 포함하는 마이크로 컨트롤러 유닛을 포함하고,
    상기 마이크로 컨트롤러 유닛은,
    챌린지에 대응하는 디지털 값을 상기 제 1 핀을 통하여 상기 저항-커패시터 회로로 전송하고, 상기 디지털 값에 대응하는 상기 저항-커패시터의 출력값을 상기 제 2 핀을 통하여 수신하고, 상기 수신된 값을 아날로그-디지털 변환기를 이용하여 디지털 값으로 변환하고, 변환된 값으로부터 적어도 하나 이상의 유효 비트를 추출하여 리스판스를 생성하고,
    상기 변환된 값은
    상기 저항-커패시터 회로의 소자 특성, 상기 아날로그-디지털 변환기의 제작 공정 상의 특성 및 상기 마이크로 컨트롤러 유닛과 상기 저항-커패시터 회로의 소자가 장착되는 PCB (printed circuit board) 패턴 상의 특성에 기반한 고유 값을 포함하고,
    상기 마이크로 컨트롤러 유닛은
    상기 고유 값에 상응하는 상기 적어도 하나 이상의 유효 비트를 이용하여 상기 리스판스를 생성하고, 상기 리스판스의 비트를 이용하여 비밀 정보에 해당하는 비밀키 및 ID 중 적어도 하나를 생성하는 것을 특징으로 하는 비밀 정보 생성 장치.
  2. 제 1 항에 있어서,
    상기 저항-커패시터 회로는 하나 또는 직렬 연결된 복수의 RC 필터를 포함하는 비밀 정보 생성 장치.
  3. 제 1 항에 있어서,
    상기 마이크로 컨트롤 유닛은
    서로 다른 복수개의 챌린지를 이용하여 서로 다른 복수개의 리스판스를 생성하고, 상기 복수개의 리스판스를 이용하여 상기 리스판스의 개수에 상응하는 비트 길이의 비밀 정보를 생성하는 것을 특징으로 하는 비밀 정보 생성 장치.
  4. 제 1 항에 있어서,
    상기 마이크로 컨트롤 유닛은 상기 챌린지에 대응하는 상기 디지털 값을 저항-커패시터 회로의 충전 혹은 방전을 고려하여 결정된 비트 출력 시간 동안 1 비트씩 상기 저항-커패시터 회로로 출력하는 것을 특징으로 하는 비밀 정보 생성 장치.
  5. 저항-커패시터 회로, 아날로그-디지털 변환기와 마이크로 컨트롤 유닛을 포함하는 비밀 정보 생성 장치의 동작 방법에 있어서,
    챌린지, 상기 챌린지의 길이, 및 비트 출력 시간을 결정하는 단계;
    상기 비트 출력 시간 동안 1 비트씩 상기 챌린지에 대응하는 디지털 값을 제 1 핀을 통하여 저항-커패시터 회로로 출력하는 단계;
    상기 비트의 단위 출력 시간 후 상기 챌린지의 길이가 0인지 판별하는 단계;
    상기 챌린지의 길이가 0이 아닐 때, 상기 챌린지의 길이를 1 비트만큼 줄이고, 새로운 출력 값을 상기 저항-커패시터 회로로 출력하는 단계;
    상기 챌린지의 모든 비트에 대하여 출력이 완료되면 제 2 핀을 통하여 상기 저항-커패시터 회로의 출력값을 수신하는 단계;
    상기 마이크로 컨트롤 유닛이, 상기 아날로그-디지털 변환기를 이용하여 상기 수신된 값을 디지털 값으로 변환하는 단계;
    상기 디지털 값으로 변환된 값에서 적어도 하나의 유효 비트를 추출하는 단계; 및
    상기 추출된 비트를 이용하여 리스판스를 생성하는 단계를 포함하고,
    상기 변환된 값은
    상기 저항-커패시터 회로의 소자 특성, 상기 아날로그-디지털 변환기의 제작 공정 상의 특성 및 상기 마이크로 컨트롤러 유닛과 상기 저항-커패시터 회로의 소자가 장착되는 PCB (printed circuit board) 패턴 상의 특성에 기반한 고유 값을 포함하고,
    상기 리스판스를 생성하는 단계는
    상기 고유 값에 상응하는 상기 적어도 하나 이상의 유효 비트를 이용하여 상기 리스판스를 생성하고, 상기 리스판스의 비트를 이용하여 비밀 정보에 해당하는 비밀키 및 ID 중 적어도 하나를 생성하는 것을 특징으로 하는 방법.
KR1020190008764A 2019-01-23 2019-01-23 비밀 정보 생성 장치 및 그것의 동작 방법 KR102272750B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190008764A KR102272750B1 (ko) 2019-01-23 2019-01-23 비밀 정보 생성 장치 및 그것의 동작 방법
US16/742,037 US20200233980A1 (en) 2019-01-23 2020-01-14 Secret information generation apparatus and method for operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190008764A KR102272750B1 (ko) 2019-01-23 2019-01-23 비밀 정보 생성 장치 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20200091681A KR20200091681A (ko) 2020-07-31
KR102272750B1 true KR102272750B1 (ko) 2021-07-05

Family

ID=71608389

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190008764A KR102272750B1 (ko) 2019-01-23 2019-01-23 비밀 정보 생성 장치 및 그것의 동작 방법

Country Status (2)

Country Link
US (1) US20200233980A1 (ko)
KR (1) KR102272750B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113177007B (zh) * 2021-05-20 2023-02-21 湖北工业大学 一种基于偏差补偿的高可靠ArbiterPUF电路

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3373186B1 (en) 2015-11-03 2020-12-30 ICTK Holdings Co., Ltd. Apparatus and method for generating identification key
CA3011279A1 (en) 2016-01-11 2017-07-20 Stc.Unm A privacy-preserving, mutual puf-based authentication protocol
KR102341265B1 (ko) 2017-05-16 2021-12-22 삼성전자주식회사 물리적 복제 방지 기능 회로, 이를 포함하는 시스템 및 집적 회로

Also Published As

Publication number Publication date
US20200233980A1 (en) 2020-07-23
KR20200091681A (ko) 2020-07-31

Similar Documents

Publication Publication Date Title
EP3234857B1 (en) Reliability enhancement methods for physically unclonable function bitstring generation
US9712330B2 (en) Physically uncloneable function device using MRAM
US7333909B1 (en) Method of and circuit for verifying a data transfer protocol
EP2911086A1 (en) Integrated circuit with parts activated based on intrinsic features
JP6867582B2 (ja) 信号処理システム
KR102272750B1 (ko) 비밀 정보 생성 장치 및 그것의 동작 방법
CN111656447B (zh) 用于时钟信号抖动产生的技术
US11983303B2 (en) Intrinsic data generation device, semiconductor device and authentication system
Sauer et al. Sensitized path PUF: A lightweight embedded physical unclonable function
US9590636B1 (en) Method and apparatus for validating a system-on-chip based on a silicon fingerprint and a unique response code
CN108875417B (zh) Puf特征值的生成方法和具有puf的器件
Idriss et al. A highly reliable dual-arbiter PUF for lightweight authentication protocols
CN111627490A (zh) 同步动态随机存储器测试方法和装置
US6690220B2 (en) Reset circuit of semiconductor circuit
KR102237747B1 (ko) 반도체 장치
Lee et al. RC PUF: A low-cost and an easy-to-design PUF for resource-constrained IoT devices
CN110633777B (zh) 一种物理不可复制功能标签产生方法及电路
CN115085696A (zh) 具有可控概率分布的确定性抖动生成器
Ben-Romdhane et al. Stochastic model of a metastability-based true random number generator
US8307126B2 (en) Output pin expansion using shift register receiving data bit each software counted clock for parallel output strobe
US20090177814A1 (en) Programmable Modular Circuit For Testing and Controlling A System-On-A-Chip Integrated Circuit, and Applications Thereof
JP6062795B2 (ja) 半導体装置
Aysu et al. PASC: Physically authenticated stable-clocked soc platform on low-cost FPGAs
EP3352374B1 (en) System and method for clocking digital logic circuits
JP2007094603A (ja) プログラマブルデバイス制御装置およびプログラマブルデバイス制御方法

Legal Events

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