KR102410193B1 - 비밀 정보 생성 장치 및 방법 - Google Patents

비밀 정보 생성 장치 및 방법 Download PDF

Info

Publication number
KR102410193B1
KR102410193B1 KR1020180149802A KR20180149802A KR102410193B1 KR 102410193 B1 KR102410193 B1 KR 102410193B1 KR 1020180149802 A KR1020180149802 A KR 1020180149802A KR 20180149802 A KR20180149802 A KR 20180149802A KR 102410193 B1 KR102410193 B1 KR 102410193B1
Authority
KR
South Korea
Prior art keywords
value
puf
data communication
output
communication unit
Prior art date
Application number
KR1020180149802A
Other languages
English (en)
Other versions
KR20200063719A (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 KR1020180149802A priority Critical patent/KR102410193B1/ko
Priority to US16/552,553 priority patent/US20200167504A1/en
Publication of KR20200063719A publication Critical patent/KR20200063719A/ko
Application granted granted Critical
Publication of KR102410193B1 publication Critical patent/KR102410193B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • GPHYSICS
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • 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]
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • 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
    • 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/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Storage Device Security (AREA)

Abstract

비밀 정보 생성 장치 및 방법이 개시된다. 본 발명의 일실시예에 따른 비밀 정보 생성 장치는 컨텐츠 값에 대한 출력 요청을 수신하여 상기 컨텐츠 값을 출력하는 데이터 통신부 및 상기 컨텐츠 값에 기반하여 PUF(PHYSICALLY UNCLONABLE FUNCTION) 출력 값을 생성하고, 상기 PUF 출력 값의 출력 특성 값을 산출하고, 상기 출력 특성 값을 이용하여 오류가 정정된 PUF 출력 값을 이용하여 비밀 정보를 생성하는 마이크로 컨트롤러 부를 포함한다.

Description

비밀 정보 생성 장치 및 방법 {APPARATUS AND METHOD FOR GENERATING SECURE INFORMATION}
본 발명은 IoT 디바이스 보안 기술에 관한 것으로, 보다 상세하게는 IoT 디바이스의 고유 특성에 기반한 비밀 정보 생성 기술에 관한 것이다.
최근 스마트그리드, AMI, 지능형 교통서비스, 실시간 모니터링 등 다양한 IoT (사물인터넷: Internet of Things) 산업이 활성화됨에 따라 향후 10년 동안 수십억 대의 클라우드 연결 장치가 설계, 제조 및 배포 될 것으로 예상되고 있다. 그러나, IoT 디바이스 보안을 위한 기술에 대한 인식이 부족하고, 기존 소프트웨어적인 보안 기능들(예를 들어 사용자 ID/PW, 디바이스 인증용 마스터 키 등을 메모리에 저장)이 있으나, 보안 상의 취약점을 이용하여 ID/PW나 키를 알아내어 공격하는 사례가 다수 보고되고 있다. 이에 대규모 IoT 디바이스의 사용이 현실화 되는 상황에서 IoT 디바이스가 사용자를 위한 ID/PW를 스스로 만들어 인증하고 신뢰 실행을 제공할 수 있도록 해주는 하드웨어 고유특성에 기반을 둔 비밀 정보를 생성하는 기술이 필요하다.
물리적 복제 방지 (Physically Unclonable Function, PUF) 기술은 반도체 칩의 제조공정특성에 따라 자연스럽게 나타나는 각 반도체 칩의 물리적인 특성 차이에 기반하여 디바이스별로 고유하고 복제 불가능한 ID/PW 또는 마스터키 등을 생성하는데 사용되고 있다. 초기 PUF는 반도체 칩 구현 시 소자의 특성에 기반한 아이디어를 FPGA 또는 ASIC으로 구현하여 성능을 확인하는 것이 일반적이었으며, Arbiter-PUF, RO(Ring oscillator)-PUF, VIA PUF 등이 있다. 하지만 IoT 디바이스와 같이 자원제약적인 환경에서는 별도의 PUF를 구현한 FPGA나 ASIC을 장착하기가 힘든 환경인 경우가 대다수이다.
최근에는 이러한 문제점을 해결하기 위해 상용 디바이스로부터 직접 PUF 출력을 유도하는 기술이 등장하였다. 대표적인 기법은 디바이스에 기본적으로 장착되어 있는 SRAM, DRAM 등과 같은 메모리의 물리적 특성을 이용한 메모리 기반 PUF 출력 생성 기법이다. SRAM PUF는 전원이 켜졌을 때 SRAM 셀의 이진 상태가 디바이스마다 고유하다는 특징을 이용하였으며, DRAM PUF는 DRAM 셀의 정보를 유지하기 위한 Refresh 기능을 정지시키고 시간에 따른 셀의 방전 상태가 디바이스마다 고유하다는 특징을 이용하였다. 이러한 기법은 별도의 반도체 칩을 만들 필요가 없기 때문에 기존 디바이스에 바로 적용하여 호환성과 비용절감의 효과를 볼 수 있는 장점이 있다.
하지만 이러한 방법 또한 항상 적용 가능한 기술은 아니며, SRAM PUF은 전원이 켜지는 초기 부팅단계에서만 사용될 수 있기 때문에 실시간으로 PUF 출력을 얻어 낼 수 없다는 단점이 있고, DRAM PUF는 그 출력 값을 얻어 내는데 상당한 시간이 걸린다는 단점이 있다. 따라서 종래의 기술 이외에 상용 IoT 디바이스로부터 직접적으로 디바이스의 하드웨어 고유특성인 PUF 출력을 얻어 고유한 비밀정보를 생성할 수 있는 다양한 기법에 대한 요구사항이 증가하고 있다.
한편, 한국공개특허 제 10-2015-0051012호“ PUF를 이용하는 하드웨어 암호키 생성 장치 및 방법”는 본 발명은 PUF(Physically Unclonable Function) 로직을 이용하여 하드웨어의 암호키를 생성하는 장치 및 방법에 관하여 개시하고 있다.
본 발명은 외부 IoT 디바이스로부터 실시간으로 PUF 출력을 획득하여 비밀 정보를 생성하는 것을 목적으로 한다.
또한, 본 발명은 종래 기술에 비해 더욱 다양한 환경에서 ID/PW, 마스터 키를 효과적으로 생성하는 것을 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 비밀 정보 생성 장치는 컨텐츠 값에 대한 출력 요청을 수신하여 상기 컨텐츠 값을 출력하는 데이터 통신부 및 상기 컨텐츠 값에 기반하여 PUF(PHYSICALLY UNCLONABLE FUNCTION) 출력 값을 생성하고, 상기 PUF 출력 값의 출력 특성 값을 산출하고, 상기 출력 특성 값을 이용하여 오류가 정정된 PUF 출력 값을 이용하여 비밀 정보를 생성하는 마이크로 컨트롤러 부를 포함한다.
이 때, 데이터 통신부는 외부 장치와 통신한 데이터를 저장하기 위한 버퍼 및 상기 외부 장치와 통신을 수행하기 위한 고유 정보가 저장된 레지스터를 포함할 수 있다.
이 때, 상기 버퍼는 SRAM 으로 구성되고, 상기 마이크로 컨트롤러 부로부터 칩 인에이블(CHIP ENABLE) 신호를 수신하여 상기 SRAM의 셀의 이진 상태를 상기 컨텐츠 값으로 출력할 수 있다.
이 때, 상기 마이크로 컨트롤러 부는 상기 버퍼가 출력한 상기 SRAM의 셀의 이진 상태를 이용하여 상기 PUF 출력 값을 생성할 수 있다.
이 때, 상기 마이크로 컨트롤러 부는 레지스터가 출력한 값을 이용하여 상기 PUF 출력 값을 생성할 수 있다.
이 때, 상기 마이크로 컨트롤러 부는 상기 버퍼에게 컨텐츠 값의 시작 주소와 사이즈를 지정하여 상기 컨텐츠 값을 요청하고, 상기 버퍼로부터 상기 컨텐츠 값을 획득하여 상기 PUF 출력 값을 생성할 수 있다.
이 때, 상기 마이크로 컨트롤러 부는 데이터 통신부에 상기 레지스터의 컨텐츠 값을 요청하고, 상기 저장소로부터 상기 컨텐츠 값을 획득하여 상기 PUF 출력 값을 생성할 수 있다.
이 때, 상기 레지스터는 상기 통신을 수행하기 위한 I 채널과 Q 채널의 위상과 진폭을 보정한 캘리브레이션 값을 컨텐츠 값으로 출력할 수 있다.
이 때, 상기 레지스터는 상기 외부 장치와의 물리적 거리에 상응하는 고유 특성 값을 포함할 수 있다.
이 때, 상기 레지스터는 상기 데이터 통신부에서 발생하는 누설 전자파가 아날로그-디지털 변환된 출력 비트열을 상기 컨텐츠 값으로 출력할 수 있다.
이 때, 상기 마이크로 컨트롤러 부는 상기 PUF 출력 값의 출력 특성 값을 산출하기 위하여 상기 PUF 출력 값의 안정성 값과 고유성 값을 산출할 수 있다.
이 때, 상기 마이크로 컨트롤러 부는 상기 데이터 통신부를 통해 하나의 외부 장치에게 기설정된 챌린지 값을 적어도 두 번 이상 입력하고, 상기 하나의 외부 장치로부터 수신한 응답 값들의 유사한 정도를 산출하여 상기 안정성 값을 산출할 수 있다.
이 때, 상기 마이크로 컨트롤러 부는 상기 데이터 통신부를 통해 복수개의 외부 장치들마다 상기 기설정된 챌린지 값을 입력하고, 상기 복수개의 외부 장치들로부터 수신한 응답 값들의 상이한 정도를 산출하여 상기 고유성 값을 산출할 수 있다.
이 때, 상기 데이터 통신부는 상기 PUF 출력 값의 출력 특성 값을 산출한 결과에 기반하여 상기 PUF 출력 값의 오류를 정정할 수 있다.
이 때, 상기 데이터 통신부는 오류 정정 코드를 이용하여 상기 PUF 출력 값의 안정성 값과 고유성 값에 기반한 상기 PUF 출력 값의 오류를 정정하기 위한 코드워드를 생성하는 오류 정정부를 더 포함할 수 있다.
이 때, 상기 오류 정정부는 상기 마이크로 컨트롤러부가, 상기 PUF 출력 값에 기반하여 생성한 헬퍼 데이터와 상기 PUF 출력 값을 이용하여 상기 코드워드를 생성할 수 있다.
또한, 상기의 목적을 달성하기 위한 본 발명의 일실시예에 따른 비밀 정보 생성 방법은 비밀 정보 생성 장치의 비밀 정보 생성 방법에 있어서, 데이터 통신부가, 마이크로 컨트롤러 부로부터 컨텐츠 값에 대한 출력 요청을 수신하여 상기 컨텐츠 값을 출력하는 단계; 마이크로 컨트롤러 부가, 상기 데이터 통신부에 요청한 컨텐츠 값에 기반하여 PUF(PHYSICALLY UNCLONABLE FUNCTION) 출력 값을 생성하는 단계; 상기 마이크로 컨트롤러 부가, 상기 PUF 출력 값의 출력 특성 값을 산출하는 단계 및 상기 마이크로 컨트롤러 부가, 상기 출력 특성 값을 이용하여 오류가 정정된 PUF 출력 값을 이용하여 비밀 정보를 생성하는 단계를 포함한다.
이 때. 상기 PUF 출력 값의 출력 특성 값을 산출하는 단계는 상기 마이크로 컨트롤러 부가, 상기 PUF 출력 값의 출력 특성 값을 산출하기 위하여 상기 PUF 출력 값의 안정성 값과 고유성 값을 산출할 수 있다.
이 때, 상기 PUF 출력 값의 출력 특성 값을 산출하는 단계는 상기 마이크로 컨트롤러 부가, 상기 데이터 통신부를 통해 하나의 외부 장치에게 기설정된 챌린지 값을 적어도 두 번 이상 입력하고, 상기 하나의 외부 장치로부터 수신한 응답 값들의 유사한 정도를 산출하여 상기 안정성 값을 산출할 수 있다.
이 때, 상기 PUF 출력 값의 출력 특성 값을 산출하는 단계는 상기 마이크로 컨트롤러 부가, 상기 데이터 통신부를 통해 복수개의 외부 장치들마다 상기 기설정된 챌린지 값을 입력하고, 상기 복수개의 외부 장치들로부터 수신한 응답 값들의 상이한 정도를 산출하여 상기 고유성 값을 산출할 수 있다.
이 때, 상기 PUF 출력 값의 출력 특성 값을 산출하는 단계는 상기 데이터 통신부가, 상기 PUF 출력 값의 출력 특성 값을 산출한 결과에 기반하여 상기 PUF 출력 값의 오류를 정정할 수 있다.
이 때, 상기 PUF 출력 값의 출력 특성 값을 산출하는 단계는 상기 데이터 통신부가, 오류 정정 코드를 이용하여 상기 PUF 출력 값의 안정성 값과 고유성 값에 기반한 상기 PUF 출력 값의 오류를 정정하기 위한 코드워드를 생성할 수 있다.
이 때, 상기 PUF 출력 값의 출력 특성 값을 산출하는 단계는 상기 마이크로 컨트롤러 부가 상기 PUF 출력 값에 기반하여 헬퍼 데이터를 생성하고, 상기 데이터 통신부가 상기 헬퍼 데이터와 상기 PUF 출력 값을 이용하여 상기 코드워드를 생성할 수 있다.
본 발명은 외부 IoT 디바이스로부터 실시간으로 PUF 출력을 획득하여 비밀 정보를 생성할 수 있다.
또한, 본 발명은 종래 기술에 비해 더욱 다양한 환경에서 ID/PW, 마스터 키를 효과적으로 생성할 수 있다.
도 1은 본 발명의 일실시예에 따른 AP 또는 DCU를 통한 IoT 디바이스의 인터넷 연결을 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 비밀 정보 생성 장치를 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 데이터 통신 모듈을 장착한 IoT 디바이스를 나타낸 도면이다.
도 4는 도 3에 도시된 데이터 통신 모듈의 일 예를 세부적으로 나타낸 블록도이다.
도 5는 본 발명의 일실시예에 따른 비밀 정보 생성 방법을 나타낸 동작흐름도이다.
도 6은 본 발명의 일실시예에 따른 버퍼 컨텐츠를 이용한 비밀 정보 생성 과정을 나타낸 도면이다.
도 7은 본 발명의 일실시예에 따른 캘리브레이션 값을 이용한 비밀 정보 생성 과정을 나타낸 도면이다.
도 8은 본 발명의 일실시예에 따른 레지스터 컨텐츠를 이용한 비밀 정보 생성 과정을 나타낸 도면이다.
도 9는 본 발명의 일실시예에 따른 ADC 출력 비트열을 이용한 비밀 정보 생성 과정을 나타낸 도면이다.
도 10은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 AP 또는 DCU를 통한 IoT 디바이스의 인터넷 연결을 나타낸 도면이다.
도 1을 참조하면, IoT 무선 인터넷 환경은 AP (Access Point)나 DCU (Data Collect Unit)과 같은 인터넷 접속 장치(10) 및 IoT 디바이스(100)를 포함한다.
IoT 디바이스(100)는 직접 인터넷에 연결될 수도 있고, 인터넷 접속 장치(10)를 통해 인터넷에 연결 될 수도 있다. 이렇게 IoT 디바이스가 직간접적으로 인터넷에 연결되기 위해서는 데이터 통신 모듈과 데이터 통신을 제어할 수 있는 MCU(Micro Controller Unit)가 포함될 수 있다.
IoT 디바이스(100)는 WiFi 기술, 블루투스 기술, NFC (Near Field Communication) 기술, IEEE 802.15.4 기반 기술 및 LoRa (Long Range) 기술 등 다양한 데이터 통신 접속 기술이 적용될 수 있다. 이 때, IoT 디바이스(100)는 데이터 통신 접속 기술이 갖는 통신 거리, 통신 속도, 전력 소모 특성 등을 고려하고, IoT 디바이스의 역량(전력, 메모리, CPU 등)에 따라 등급별로 필요한 데이터 접속 기술을 선택하여 적용시킬 수 있다.
이렇게 IoT 디바이스(100)는 대부분 인터넷 연결 기능을 제공하게 되어 디바이스 간 악성코드 전이 및 공격 위협 발생 빈도가 증가될 가능성이 매우 높다. 특히 사용자 및 디바이스 인증 과정에서 외부 공격에 의한 ID/PW 유출, 디바이스에 설정된 초기 PW 미변경으로 인한 외부 공격 등의 보안 이슈가 있다. 이로 인해 IoT 디바이스 정지 및 오작동 유발에 의한 인프라 마비, 생명 위협 등의 위험성이 높아지고 있으며, 경량/저전력 디바이스에 기존 IP 보안 기술을 적용하는데 한계가 있다.
이러한 문제를 해결하기 위해 본 발명의 일실시예에 따른 비밀 정보 생성 장치 및 방법은 물리적으로 안전한 ID 및 복제 방지 기술인 PUF (Physically Unclonable Function, 물리적 복제방지 기능)를 활용하여 IoT 디바이스에 보안기술을 적용할 수 있다. PUF는 반도체 칩의 제조공정 특성에 따라 자연스럽게 나타나는 각 반도체 칩의 물리적 특성 차이에 기반하여 각 디바이스별로 고유하고 복제 불가능한 특징으로 디지털 지문의 역할을 할 수 있다. 본 발명에서는 IoT 디바이스(100)가 필수적으로 장착 또는 내장하고 있는 데이터 통신 모듈로부터 실시간으로 PUF 출력을 얻어내는 비밀 정보 생성 장치 및 방법을 제안한다.
도 2는 본 발명의 일실시예에 따른 비밀 정보 생성 장치를 나타낸 블록도이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 비밀 정보 생성 장치는 마이크로 컨트롤러 부(Micro Controller Unit, MCU)(110) 및 데이터 통신부(120)를 포함한다.
이 때, 본 발명의 일실시예에 따른 비밀 정보 생성 장치는 마이크로 컨트롤러 부(110)가 데이터 통신부(120)로부터 데이터를 획득하여 비밀 정보를 생성하는 IoT 디바이스(100)에 상응할 수 있다.
마이크로 컨트롤러 부(110)는 칩 인 에이블(Chip enable, CE)신호를 이용하여 데이터 통신부(120)의 Power ON/OFF 를 수행할 수 있다
데이터 통신부(120)는 마이크로 컨트롤러 부(110)에 알려야 할 정보가 있을 때 Interrupt를 발생시킬 수 있고, 그리고 Data Interface 를 통해 데이터를 전송할 수 있다.
Data Interface는 널리 쓰이고 있는 4-wire SPI (Serial Peripheral Interface)에 상응할 수 있다.
이 때, 데이터 통신부(120)는 외부 장치와 통신한 데이터를 저장하기 위한 버퍼(121) 및 상기 외부 장치와 통신을 수행하기 위한 고유 정보가 저장된 레지스터(122)를 포함할 수 있다.
이 때, 데이터 통신부(120)는 마이크로 컨트롤러 부(110)로부터 컨텐츠 값에 대한 출력 요청을 수신하여 컨텐츠 값을 출력할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 데이터 통신부(120) 에 요청한 컨텐츠 값에 기반하여 PUF(PHYSICALLY UNCLONABLE FUNCTION) 출력 값을 생성할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 상기 PUF 출력 값의 출력 특성 값을 산출하고, 상기 출력 특성 값을 이용하여 오류가 정정된 PUF 출력 값을 이용하여 비밀 정보를 생성할 수 있다.
이 때, 버퍼(121)는 SRAM 으로 구성되고, 상기 마이크로 컨트롤러 부로부터 칩 인에이블(CHIP ENABLE) 신호를 수신하여 상기 SRAM의 셀의 이진 상태를 컨텐츠 값으로 출력할 수 있다.
이 때, 버퍼(121)는 데이터 통신 모듈의 TX/RX Buffer 에 상응할 수 있고, TX/RX Buffer는 디바이스간 데이터를 주고 받기 위한 Buffer로 데이터 송신/수신 저장소에 상응할 수 있다.
이 때, TX/RX Buffer는 SRAM으로 구성되어 있기 때문에 전원이 인가되었을 때 SRAM 셀의 이진상태가 디바이스마다 고유하게 나타나므로 PUF로 이용될 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 데이터 통신부(120)의 전원을 CE 신호를 통해 언제든지 On/Off를 할 수 있으므로, 언제든지 실시간으로 데이터 통신부(120)의 버퍼로부터 PUF 출력을 생성할 수 있다. 따라서, 마이크로 컨트롤러 부(110)는 종래 기술에서 IoT 디바이스에 직접적으로 장착되어 있는 SRAM을 PUF로 이용했을 때 전원을 수시로 On/Off 할 수 없어 PUF 출력을 실시간으로 얻을 수 없다는 단점을 해결할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 상기 버퍼(121)가 출력한 상기 SRAM의 셀의 이진 상태를 이용하여 상기 PUF 출력 값을 생성할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 상기 버퍼(121)에게 컨텐츠 값의 시작 주소와 사이즈를 지정하여 상기 컨텐츠 값을 요청하고, 상기 버퍼(121)로부터 상기 컨텐츠 값을 획득하여 상기 PUF 출력 값을 생성할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 데이터 통신부(120)의 전원을 Off 하고, 다시 전원을 On 할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 데이터 통신부(120)에게 버퍼(121)의 시작 Address 와 Size를 지정하여 데이터를 요청할 수 있다.
이 때, 데이터 통신부(120)는 해당 시작 Address 와 Size에 상응하는 버퍼 컨텐츠를 마이크로 컨트롤러 부(110) 및 오류 정정부(124)에 전송할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 버퍼 컨텐츠를 이용하여 PUF 출력 값을 생성할 수 있다.
또한, 컨텐츠 값은 상기 데이터 통신부(120)의 레지스터(122)에 저장된 수신 경로 상의 I 채널과 Q 채널의 위상과 진폭을 보정한 캘리브레이션 값을 포함할 수 있다.
이 때, 데이터 통신부(120)의 수신 경로(Path)는 I 채널(In-phase)과 Q 채널(Quadrature-phase)을 포함할 수 있다
이 때, 두 Phase 의 차이는 90도 이고 Amplitude 가 일치해야 하지만, 실제로 반도체 공정상 정확히 90도의 Phase 차이를 유지할 수 없고, Amplitude 도 일치할 수 없어 고유한 캘리브레이션 값을 이용하여 보정할 수 있다.
즉, 캘리브레이션 값은 I 채널과 Q 채널을 보정하기 위한 I/Q Mismatch, DC offset, 주파수, 임피던스, 필터대역폭 등을 보정한 값에 상응할 수 있다.
따라서, 캘리브레이션 값은 IoT 디바이스들 마다 고유한 값을 가지게 되므로 이를 이용하여 고유한 PUF 출력 값이 생성될 수 있다.
이 때, 데이터 통신부(120)는 전원이 인가된 상태에서 캘리브레이션 명령을 수신하면 캘리브레이션을 수행한 결과로 캘리브레이션 값을 컨텐츠 값으로 레지스터(122)에 저장할 수 있다.
이 때, 마이크로 컨트롤러부(120)는 캘리브레이션 값이 저장된 레지스터(122)의 Address를 데이터 통신부(120)에 제공할 수 있다.
이 때, 데이터 통신부(120)는 해당 Address 의 레지스터 컨텐츠를 마이크로 컨트롤러 부(110) 및 오류 정정부(124)에 전송할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 레지스터 컨텐츠를 이용하여 PUF 출력 값을 생성할 수 있다.
또한, 컨텐츠 값은 상기 데이터 통신부에 저장된 상기 외부 장치와의 물리적 거리에 상응하는 고유 특성 값을 포함할 수 있다.
이 때, 고유 특성 값은 데이터 통신부(120)가 제공하는 RSSI 값, AGC 값, Frequency/Clock Offset 등을 포함할 수 있다.
비밀 정보 생성 장치는 AP 또는 DCU가 비콘(Beacon)을 송신하고 IoT 디바이스가 비콘을 수신하는 환경에서만 고유 특성 값을 이용할 수 있다.
IoT 서비스 중에는 IoT 디바이스가 정지상태인 환경이 많다. 이 때, AP와 IoT 디바이스간 거리는 변하지 않으며, 이러한 특성을 이용하여 비밀 정보 생성 장치는 IoT 디바이스의 고유 특성 값을 추출할 수 있다.
먼저, 데이터 통신부(120)는 수신 Packet의 RSSI (Received Signal Strength Indicator)를 측정할 수 있다. RSSI 값은 AP와의 거리에 따라 달라지는 값으로 AP와의 거리가 서로 다르다면 IoT 디바이스마다 고유한 값을 가질 수 있다.
또한, 데이터 통신부(120)은 AP와의 거리에 상관없이 Packet을 수신하기 위해 AGC (Automatic gain control) 기능을 내장할 수 있다.
이 때, AGC Gain 값은 AP와의 거리에 따라 달라지는 값으로 AP와의 거리가 서로 다르다면 IoT 디바이스마다 고유한 값을 가질 수 있다.
AP와 IoT 디바이스는 서로 다른 Clock을 사용하고 서로 다른 주파수 합성기를 통해 전송 주파수를 생성하기 때문에 필연적으로 Frequency/Clock Offset이 발생할 수 있다. Frequency/Clock Offset 값은 각 IoT 디바이스들 마다 필연적으로 다른 값을 가지게 되고 이를 고유 특성 값으로 이용하여 PUF로 이용할 수 있다.
마이크로 컨트롤러 부(110)는 데이터 통신부(120)의 전원을 On 시키고 패킷을 수신할 수 있는 상태로 동작시킬 수 있다.
이 때, 데이터 통신부(120)는 AP나 DCU로부터 패킷(예: 비콘 패킷)을 수신 받으면 마이크로 컨트롤러 부(110)에게 Interrupt로 알릴 수 있다.
이 때, 데이터 통신부(120)는 패킷을 수신 받으면서 생성한 RSSI, AGC Gain, Frequency Offset, Clock Offset 등의 정보인 고유 특성 값을 레지스터(122)에 저장할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 고유 특성 값이 저장된 레지스터(122)의 Address를 데이터 통신부(120)에 제공할 수 있다.
이 때, 데이터 통신부(120)는 해당 Address 의 레지스터 컨텐츠를 마이크로 컨트롤러 부(110) 및 오류 정정부(124)에 전송할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 레지스터 컨텐츠를 이용하여 PUF 출력 값을 생성할 수 있다.
또한, 컨텐츠 값은 상기 데이터 통신부에서 발생하는 누설 전자파가 아날로그-디지털 변환되어 출력된 출력 비트열을 포함할 수 있다.
아날로그-디지털 컨버터(Analog-Digital Converter, ADC) (123)는 Analog 신호를 Digital 신호로 변경해 주는 장치로 대부분의 데이터 통신 모듈의 수신 Path에 내장되어 있을 수 있다.
이 때, 데이터 통신부(120)에 포함된 아날로그-디지털 컨버터(123)는 전원이 인가되어 동작상태일 때, 유효한 입력 아날로그(Analog) 값이 인가되면 그에 해당하는 디지털 비트열로 변환하여 출력 비트열을 출력할 수 있다.
이 때, 출력 비트열은 누설 전자파가 아날로그-디지털 컨버터(123)에서 샘플링되어 출력된 디바이스의 고유한 특성으로 인해 발생한 것으로 PUF 출력 값으로 이용될 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 누설 전자파를 발생하기 위해 임의의 코드를 반복적으로 실행하여 아날로그-디지털 컨버터(123)의 동작 주파수에 해당하는 누설 전자파를 발생시킬 수 있다.
이 때, 누설 전자파의 주파수는 마이크로 컨트롤러 부(110)에서 사용하는 Clock, 보드 특성 등에 따라 IoT 디바이스마다 고유한 값을 나타낼 수 있고, 이를 샘플링한 출력 비트열도 서로 다른 고유한 값을 갖게 되어 출력 비트열을 PUF 출력으로 사용할 수 있다.
마이크로 컨트롤러 부(110)는 데이터 통신부(120)의 Power를 On 시키고, ADC를 동작시킬 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 아날로그-디지털 컨버터(123)에 누설전자파가 유기되도록 임의 코드를 반복적으로 실행시킬 수 있다. 이 때 발생하는 누설 전자파의 주파수는 IoT 디바이스마다 동일한 코드를 실행시켜도(동일한 챌린지(Challenge) 값) 마이크로 컨트롤러 부(110)에서 사용하는 Clock과 보드 특성에 따라 다른 주파수가 발생할 수 있다.
이 때, 데이터 통신부(120)는 아날로그-디지털 컨버터(123)로부터 출력된 출력 비트열을 마이크로 컨트롤러 부(110) 및 오류 정정부(124)에게 전달할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 레지스터(122)에 저장된 출력 비트열을 이용하여 PUF 출력 값을 생성할 수 있다.
또한, 마이크로 컨트롤러 부(110)는 상기 PUF 출력 값의 출력 특성 값을 산출하기 위하여 상기 PUF 출력 값의 안정성 값과 고유성 값을 산출할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 상기 데이터 통신부(120)를 통해 하나의 외부 장치에게 기설정된 챌린지 값을 적어도 두 번 이상 입력하고, 상기 하나의 외부 장치로부터 수신한 응답 값들의 유사한 정도를 산출하여 상기 안정성 값을 산출할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 수학식 1을 이용하여 안정성 값을 산출할 수 있다.
안정성 값(Steadiness)는 PUF 출력 값의 안정성을 나타낼 수 있다.
이 때, 안정성 값은 버퍼(121)에 고정된 챌린지 값(Challenge)(본 발명의일실시예에 따른 버퍼의 특정 위치(Address)를 반복적으로 입력하여 동일한 출력(응답 값 및 응답 비트열)이 출력되는지 확인하는 척도를 나타내며 Intra-chip variation(IC)으로 수학식 1과 같이 나타낼 수 있다.
[수학식 1]
Figure 112018119007281-pat00001
이 때, 수학식 1에서 IC 는 Intra-Chip variation 이며 i 번째 IC를 나타낸 것을 알 수 있다. HD는 Hamming Distance 이며, r i,ref 는 i번째 디바이스에서의 N개의 출력 응답 값(Response)의 평균 값(Mean Value)을 나타낸 것을 알 수 있다.
이 때, IC는 0에 가까울수록 PUF 출력 값의 안정성이 우수한 성능을 나타내며, 온도(T)와 전압(V)에 영향을 받을 수도 있다.
또한, 마이크로 컨트롤러 부(110)는 상기 데이터 통신부(120)를 통해 복수개의 외부 장치들마다 상기 기설정된 챌린지 값을 입력하고, 상기 복수개의 외부 장치들로부터 수신한 응답 값들의 상이한 정도를 산출하여 상기 고유성 값을 산출할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 수학식 2를 이용하여 고유성 값을 산출할 수 있다.
고유성 값(Uniqueness)는 PUF 출력 값의 고유성을 나타낼 수 있다.
이 때, 고유성 값은 복수개의 외부 장치들(IoT 디바이스)을 구분할 수 있는 유일성을 나타낼 수 있다.
이 때, 고유성 값은 동일한 챌린지 값(Challenge)을 복수의 IoT 디바이스들에 입력하여 얻은 출력 응답 값 및 응답 비트열들이 서로 상이하여 충분한 엔트로피를 가져야 함을 나타내며 Extra-Chip variation(EC)으로 수학식 2와 같이 나타낼 수 있다.
[수학식 2]
Figure 112018119007281-pat00002
이 때, 수학식 2에서 EC 는 Extra-Chip variation 이며 i 번째 EC를 나타낸 것을 알 수 있다. HD는 Hamming Distance 이며,
Figure 112018119007281-pat00003
는 k번째 디바이스에서의 N개의 출력 응답 값(Response)의 평균 값(Mean Value)을 나타낸 것을 알 수 있다.
이 때, EC는 50%에 가까울수록 PUF 출력 값의 고유성이 우수한 성능 임을 나타낼 수 있다.
표 1은 데이터 통신부(120)의 버퍼(121)로부터 획득한 PUF 출력 값의 PUF 출력 특성 값을 산출한 결과를 나타낸 것을 알 수 있다
IC
(Steadiness)
EC
(Uniqueness)
디바이스 #1 3.1 % 49.2 %
디바이스 #2 2.8 %
디바이스 #3 2.6 %
디바이스 #4 2.1 %
표 1에서 기재된 바와 같이, 데이터 통신부(120)로부터 얻은 PUF 출력 값(Response)의 안정성 값(Steadiness)과 고유성 값(Uniqueness)의 출력 특성이 각각 0%와 50%에 근접하여 그 특성이 우수함을 알 수 있다.
그러나, 표 1의 안정성 값 산출 결과와 같이 단일 디바이스에서 얻은 출력값이 매번 얻을 때 마다 동일한 값이 아닌 2~3%로 오류가 나는 것을 알 수 있다.
PUF 출력을 키생성 등 보안목적으로 사용하기 위해서는 오류가 0이여야 하며 이를 위해 오류정정코드(Error correction code)를 사용하여 오류를 0으로 만들어 주어야 한다.
이 때, 데이터 통신부(120)는 상기 PUF 출력 값의 출력 특성 값을 산출한 결과에 기반하여 상기 PUF 출력 값의 오류를 정정할 수 있다.
이 때, 데이터 통신부(120)는 오류 정정 코드를 이용하여 상기 PUF 출력 값의 안정성 값과 고유성 값에 기반한 상기 PUF 출력 값의 오류를 정정하기 위한 코드워드를 생성하는 오류 정정부(124)를 더 포함할 수 있다.
이 때, 오류 정정부(124)는 데이터 통신부(120)에 하드웨어로 구현되어 있어 하드웨어 적으로 PUF 출력 값의 오류를 정정할 수 있다.
이 때, 마이크로 컨트롤러부(110)는 PUF 출력 값으로부터 헬퍼 데이터(Helper data)를 생성하여 데이터 통신부(120)에 전송할 수 있다.
이 때, 오류 정정부(124)는 상기 마이크로 컨트롤러부(110)가, 상기 PUF 출력 값에 기반하여 생성한 헬퍼 데이터와 상기 PUF 출력 값을 이용하여 코드워드(Codeword)를 생성할 수 있다.
이 때, 마이크로 컨트롤러부(110)는 오류 정정부(124)로부터 수신한 코드워드를 이용하여 PUF 출력 값의 오류를 정정할 수 있다.
이 때, 마이크로 컨트롤러부(110)는 오류가 정정된 PUF 출력 값을 이용하여 비밀 정보를 생성할 수 있다.
이 때, 비밀 정보는 ID/PW, 비밀키, 암호키 또는 마스터키 등에 상응할 수 있다.
이 때, 오류 정정부(124)는 인터리버(Interleaver)를 이용하여 PUF 출력 값을 랜더마이즈(Randomize) 시킬 수 있다.
도 3은 본 발명의 일실시예에 따른 데이터 통신 모듈을 장착한 IoT 디바이스를 나타낸 도면이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 비밀 정보 생성장치는 STM32L162 MCU 및 IEEE 802.15.4g CHIP의 데이터 통신 모듈을 포함하는 IoT 디바이스에 상응할 수 있다.
이 때, IoT 디바이스의 STM32L162 MCU 는 비밀 정보 생성 장치의 마이크로 컨트롤러 부(110)로 사용될 수 있고, IoT 디바이스의 IEEE 802.15.4g CHIP 은 비밀 정보 생성 장치의 데이터 통신부(120)로 사용될 수 있다.
IEEE 802.15.4g SUN 무선통신 기술은 최근 사물인터넷 접속기술로 비면허 대역 주파수를 활용하여 독자적인 망을 구축하는 것이 특징인 저전력 장거리 통신기술 (Low-Power Wide-Area, LPWA)의 후보기술로 알려져 있으며, 국내에서는 한국전력의 AMI (Advanced Metering Infrastructure) 분야 시범서비스에 활용되고 있다. 또한 AMI 뿐만 아니라 도시 지하매설물 모니터링 및 관리 시스템, 지능형 교통서비스, 실시간 모니터링 등 다양한 사물인터넷 서비스에 활용될 수 있는 무선통신 기술이다.
도 4는 도 3에 도시된 데이터 통신 모듈의 일 예를 세부적으로 나타낸 블록도이다.
도 4를 참조하면, IEEE 802.15.4g CHIP 데이터 통신 모듈은 SPI를 통해 MCU와 통신하며, CE를 통해 데이터 통신 모듈의 전원을 완전히 Off할 수 있는 것을 알 수 있다. 그리고, 데이터 통신 모듈이라면 반드시 존재하는 TX/RX Buffer 포함된 것을 알 수 있다. 이 때, TX/RX Buffer 는 SRAM으로 구성돌 수 있다.
TX/RX Buffer는 디바이스간 데이터를 주고 받기 위한 Buffer로 데이터 송신/수신 저장소에 상응할 수 있다. TX/RX Buffer는 SRAM으로 구성되어 있기 때문에 전원이 인가되었을 때 SRAM 셀의 이진상태가 디바이스마다 고유하게 나타나므로 PUF로 이용될 수 있다. 그리고 MCU는 필요시 데이터 통신 모듈의 전원을 CE를 통해 언제든지 On/Off를 할 수 있으므로, 언제든지 실시간으로 데이터 통신 모듈의 버퍼로부터 PUF 출력을 얻어낼 수 있다. 이는 IoT 디바이스에 직접적으로 장착되어 있는 SRAM을 PUF로 이용했을 때 전원을 수시로 On/Off 할 수 없어 PUF 출력을 실시간으로 얻을 수 없다는 단점을 해결할 수 있다.
도 5는 본 발명의 일실시예에 따른 비밀 정보 생성 방법을 나타낸 동작흐름도이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 비밀 정보 생성 방법은 먼저 데이터를 요청할 수 있다(S210).
즉, 단계(S210)는 마이크로 컨트롤러 부(110)가 데이터 통신부(120)의 버퍼(121)에 칩 인에이블 신호를 통해 Power On/Off 를 제어하고 요청할 데이터의 address 와 size를 이용하여 데이터(컨텐츠 값)를 요청할 수 있다.
이 때, 단계(S210)는 마이크로 컨트롤러 부(110)가 데이터 통신부(120)의 레지스터(122)에 저장된 고유 정보인 캘리브레이션 값 또는 외부 장치와의 물리적 거리에 상응하는 고유 특성 값에 대한 레지스터 컨텐츠를 요청할 수도 있고, 데이터 통신부(120)에서 발생한 누설 전자파가 아날로그-디지털 변환된 출력 비트열을 요청할 수도 있다.
또한, 본 발명의 일실시예에 따른 비밀 정보 생성 방법은 데이터를 획득할 수 있다(S220).
즉, 단계(S220)는 데이터 통신부(120)가 버퍼(121)에서 해당 address 의 데이터(컨텐츠 값)를 획득하여 마이크로 컨트롤러 부(110)에 제공할 수 있다.
이 때, 버퍼(121)는 SRAM 으로 구성되고, 마이크로 컨트롤러 부(110)로부터 칩 인에이블(CHIP ENABLE) 신호를 수신하여 상기 SRAM의 셀의 이진 상태를 컨텐츠 값으로 출력할 수 있다.
이 때, 버퍼(121)는 데이터 통신 모듈의 TX/RX Buffer 에 상응할 수 있고, TX/RX Buffer는 디바이스간 데이터를 주고 받기 위한 Buffer로 데이터 송신/수신 저장소에 상응할 수 있다.
이 때, TX/RX Buffer는 SRAM으로 구성되어 있기 때문에 전원이 인가되었을 때 SRAM 셀의 이진상태가 디바이스마다 고유하게 나타나므로 PUF로 이용될 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 데이터 통신부(120)의 전원을 CE 신호를 통해 언제든지 On/Off를 할 수 있으므로, 언제든지 실시간으로 데이터 통신부(120)의 버퍼로부터 PUF 출력을 생성할 수 있다. 따라서, 마이크로 컨트롤러 부(110)는 종래 기술에서 IoT 디바이스에 직접적으로 장착되어 있는 SRAM을 PUF로 이용했을 때 전원을 수시로 On/Off 할 수 없어 PUF 출력을 실시간으로 얻을 수 없다는 단점을 해결할 수 있다.
이 때, 단계(S220)는 데이터 통신부(120)의 레지스터(122)에 저장된 고유 정보인 캘리브레이션 값 또는 외부 장치와의 물리적 거리에 상응하는 고유 특성 값에 대한 레지스터 컨텐츠를 출력할 수도 있고, 데이터 통신부(120)에서 발생한 누설 전자파가 아날로그-디지털 컨버터(123)로부터 아날로그-디지털 변환된 출력 비트열을 출력할 수도 있다.
또한, 본 발명의 일실시예에 따른 비밀 정보 생성 방법은 PUF 출력 값을 생성할 수 있다(S230).
즉, 단계(S230)는 마이크로 컨트롤러 부(110)가 상기 버퍼(121)가 출력한 상기 SRAM의 셀의 이진 상태(버퍼 컨텐츠), 레지스터 컨텐츠(캘리 브레이션 값, 거리 기반 고유 특성 값) 또는 ADC 출력 비트열을 이용하여 상기 PUF 출력 값을 생성할 수 있다.
이 때, 단계(S230)는 마이크로 컨트롤러 부(110)가 데이터 통신부(120)로부터 상기에서 설명한 버퍼 컨텐츠, 캘리브레이션 값, 거리 기반 고유 특성 값, 및 ADC 출력 비트열을 이용하여 PUF 출력 값을 생성할 수 있다.
또한, 본 발명의 일실시예에 따른 비밀 정보 생성 방법은 오류 정정을 요청할 수 있다(S240)
즉, 단계(S240)는 마이크로 컨트롤러 부(110)가 상기 PUF 출력 값의 출력 특성 값을 산출하고, 출력 특성 값에 기반하여 PUF 출력 값의 오류 정정을 데이터 통신부(120)에 요청할 수 있다.
이 때, 단계(S240)는 마이크로 컨트롤러 부(110)가 상기 PUF 출력 값의 출력 특성 값을 산출하기 위하여 상기 PUF 출력 값의 안정성 값과 고유성 값을 산출할 수 있다.
이 때, 단계(S240)는 마이크로 컨트롤러 부(110)가 상기 데이터 통신부(120)를 통해 하나의 외부 장치에게 기설정된 챌린지 값을 적어도 두 번 이상 입력하고, 상기 하나의 외부 장치로부터 수신한 응답 값들의 유사한 정도를 산출하여 상기 안정성 값을 산출할 수 있다.
이 때, 단계(S240)는 마이크로 컨트롤러 부(110)가 수학식 1을 이용하여 안정성 값을 산출할 수 있다.
안정성 값(Steadiness)는 PUF 출력 값의 안정성을 나타낼 수 있다.
이 때, 안정성 값은 버퍼(121)에 고정된 챌린지 값(Challenge)(본 발명의일실시예에 따른 버퍼(121)의 특정 위치(Address)를 반복적으로 입력하여 동일한 출력(응답 값 및 응답 비트열)이 출력되는지 확인하는 척도를 나타내며 Intra-chip variation(IC)으로 수학식 1과 같이 나타낼 수 있다.
이 때, 수학식 1에서 IC 는 Intra-Chip variation 이며 i 번째 IC를 나타낸 것을 알 수 있다. HD는 Hamming Distance 이며, r i,ref 는 i번째 디바이스에서의 N개의 출력 응답 값(Response)의 평균 값(Mean Value)을 나타낸 것을 알 수 있다.
이 때, IC는 0에 가까울수록 PUF 출력 값의 안정성이 우수한 성능을 나타내며, 온도(T)와 전압(V)에 영향을 받을 수도 있다.
이 때, 단계(S240)는 마이크로 컨트롤러 부(110)가 상기 데이터 통신부(120)를 통해 복수개의 외부 장치들마다 상기 기설정된 챌린지 값을 입력하고, 상기 복수개의 외부 장치들로부터 수신한 응답 값들의 상이한 정도를 산출하여 상기 고유성 값을 산출할 수 있다.
이 때, 단계(S240)는 마이크로 컨트롤러 부(110)가 수학식 2를 이용하여 고유성 값을 산출할 수 있다.
고유성 값(Uniqueness)는 PUF 출력 값의 고유성을 나타낼 수 있다.
이 때, 고유성 값은 복수개의 외부 장치들(IoT 디바이스)을 구분할 수 있는 유일성을 나타낼 수 있다.
이 때, 고유성 값은 동일한 챌린지 값(Challenge)을 복수의 IoT 디바이스들에 입력하여 얻은 출력 응답 값 및 응답 비트열들이 서로 상이하여 충분한 엔트로피를 가져야 함을 나타내며 Extra-Chip variation(EC)으로 수학식 2와 같이 나타낼 수 있다.
이 때, 수학식 2에서 EC 는 Extra-Chip variation 이며 i 번째 EC를 나타낸 것을 알 수 있다. HD는 Hamming Distance 이며,
Figure 112018119007281-pat00004
는 k번째 디바이스에서의 N개의 출력 응답 값(Response)의 평균 값(Mean Value)을 나타낸 것을 알 수 있다.
이 때, EC는 50%에 가까울수록 PUF 출력 값의 고유성이 우수한 성능 임을 나타낼 수 있다.
표 1은 데이터 통신부(120)의 버퍼(121)로부터 획득한 PUF 출력 값의 PUF 출력 특성 값을 산출한 결과를 나타낸 것을 알 수 있다
표 1에서 기재된 바와 같이, 데이터 통신부(120)로부터 얻은 PUF 출력 값(Response)의 안정성 값(Steadiness)과 고유성 값(Uniqueness)의 출력 특성이 각각 0%와 50%에 근접하여 그 특성이 우수함을 알 수 있다.
그러나, 표 1의 안정성 값 산출 결과와 같이 단일 디바이스에서 얻은 출력값이 매번 얻을 때 마다 동일한 값이 아닌 2~3%로 오류가 나는 것을 알 수 있다.
PUF 출력을 키생성 등 보안목적으로 사용하기 위해서는 오류가 0이여야 하며 이를 위해 오류정정코드(Error correction code)를 사용하여 오류를 0으로 만들어 주어야 한다.
이 때, 단계(S240)는 마이크로 컨트롤러부(110)가, PUF 출력 값으로부터 헬퍼 데이터(Helper data)를 생성하여 데이터 통신부(120)에 전송할 수 있다.
또한, 본 발명의 일실시예에 따른 비밀 정보 생성 방법은 오류 정정을 수행할 수 있다(S250).
즉, 단계(S250)는 데이터 통신부(120)가 마이크로 컨트롤러부(110)로부터 수신한 헬퍼 데이터와 PUF 출력 값을 이용하여 코드워드를 생성할 수 있다.
이 때, 단계(S250)는 마이크로 컨트롤러부(110)가 데이터 통신부(120)로부터 수신한 코드워드를 이용하여 PUF 출력 값의 오류를 정정할 수 있다.
또한, 본 발명의 일실시예에 따른 비밀 정보 생성 방법은 오류가 정정된 PUF 출력 값을 생성할 수 있다(S260).
즉, 단계(S260)는 마이크로 컨트롤러부(110)가 오류가 정정된 PUF 출력 값을 이용하여 비밀 정보를 생성할 수 있다.
이 때, 비밀 정보는 ID/PW, 비밀키, 암호키 또는 마스터키 등에 상응할 수 있다.
도 6은 본 발명의 일실시예에 따른 버퍼 컨텐츠를 이용한 비밀 정보 생성 과정을 나타낸 도면이다.
도 6을 참조하면, 본 발명의 일실시예에 따른 버퍼 컨텐츠를 이용한 비밀 정보 생성 과정을 나타낸 것을 알 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 데이터 통신부(120)의 전원을 Off 하고(S310), 다시 전원을 On 할 수 있다(S320).
이 때, 마이크로 컨트롤러 부(110)는 데이터 통신부(120)에게 버퍼(121)의 시작 Address 와 Size를 지정하여 버퍼(121)에게 버퍼 컨텐츠를 요청할 수 있다(S330).
이 때, 버퍼 컨텐츠는 마이크로 컨트롤러 부(110)로부터 수신한 칩 인에이블(CHIP ENABLE) 신호로부터 생성된 SRAM의 셀의 이진 상태에 상응할 수 있다.
이 때, 데이터 통신부(120)는 해당 시작 Address 와 Size에 상응하는 버퍼 컨텐츠를 마이크로 컨트롤러 부(110) 및 오류 정정을 위한 오류 정정부(124)에 전송할 수 있다(S340).
이 때, 마이크로 컨트롤러 부(110)는 버퍼 컨텐츠를 이용하여 PUF 출력 값을 생성하고, PUF 출력 값의 출력 특성 값을 산출할 수 있다(S350).
이 때, 마이크로 컨트롤러 부(110)는 PUF 출력 값의 출력 특성 값에 기반하여 PUF 출력 값의 오류를 정정하기 위한 헬퍼 데이터를 생성할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 생성한 헬퍼 데이터를 데이터 통신부(120)에 전송하여 오류 정정을 요청할 수 있다.
PUF 출력을 키생성 등 보안목적으로 사용하기 위해서는 오류가 0이여야 하며 이를 위해 오류정정코드(Error correction code)를 사용하여 오류를 0으로 만들어 주어야 한다.
이 때, 데이터 통신부(120)는 상기 PUF 출력 값의 출력 특성 값을 산출한 결과에 기반하여 상기 PUF 출력 값의 오류를 정정할 수 있다(S360).
이 때, 데이터 통신부(120)는 오류 정정 코드를 이용하여 상기 PUF 출력 값의 안정성 값과 고유성 값에 기반한 상기 PUF 출력 값의 오류를 정정하기 위한 코드워드를 생성하는 오류 정정부(124)를 더 포함할 수 있다.
이 때, 오류 정정부(124)는 데이터 통신부(120)에 하드웨어로 구현되어 있어 하드웨어 적으로 PUF 출력 값의 오류를 정정하기 위한 코드워드(Codeword)를 생성할 수 있다.
이 때, 오류 정정부(124)는 상기 마이크로 컨트롤러부(110)가, 상기 PUF 출력 값에 기반하여 생성한 헬퍼 데이터와 상기 PUF 출력 값을 이용하여 코드워드(Codeword)를 생성할 수 있다.
이 때, 마이크로 컨트롤러부(110)는 오류 정정부(124)로부터 수신한 코드워드를 이용하여 PUF 출력 값의 오류를 정정할 수 있다.
이 때, 마이크로 컨트롤러부(110)는 오류가 정정된 PUF 출력 값을 이용하여 비밀 정보를 생성할 수 있다.
도 7은 본 발명의 일실시예에 따른 캘리브레이션 값을 이용한 비밀 정보 생성 과정을 나타낸 도면이다.
도 7을 참조하면 본 발명의 일실시예에 따른 캘리브레이션 값을 이용한 비밀 정보 생성 과정을 나타낸 것을 알 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 데이터 통신부(120)에 POWER를 On 시키고(S410), 캘리브레이션을 명령할 수 있다(S420).
이 때, 데이터 통신부(120)는 전원이 인가된 상태에서 캘리브레이션 명령을 수신하면 캘리브레이션을 수행한 결과로 캘리브레이션 값을 레지스터(122)에 저장할 수 있다.
캘리브레이션 값 수신 경로 상의 I 채널과 Q 채널의 위상과 진폭을 보정한 값에 상응할 수 있다.
이 때, 데이터 통신부(120)의 수신 경로(Path)는 I 채널(In-phase)과 Q 채널(Quadrature-phase)을 포함할 수 있다
이 때, 두 Phase 의 차이는 90도 이고 Amplitude 가 일치해야 하지만, 실제로 반도체 공정상 정확히 90도의 Phase 차이를 유지할 수 없고, Amplitude 도 일치할 수 없어 고유한 캘리브레이션 값을 이용하여 보정할 수 있다.
즉, 캘리브레이션 값은 I 채널과 Q 채널을 보정하기 위한 I/Q Mismatch, DC offset, 주파수, 임피던스, 필터대역폭 등을 보정한 값에 상응할 수 있다.
따라서, 캘리브레이션 값은 IoT 디바이스들 마다 고유한 값을 가지게 되므로 이를 이용하여 고유한 PUF 출력 값이 생성될 수 있다.
이 때, 마이크로 컨트롤러부(120)는 캘리브레이션 값이 저장된 레지스터(122)의 Address를 데이터 통신부(120)에 제공할 수 있다(S430).
이 때, 데이터 통신부(120)는 해당 Address 의 켈리브레이션 값을 레지스터 컨텐츠로 마이크로 컨트롤러 부(110) 및 오류 정정을 위한 오류 정정부(124)에 전송할 수 있다(S440).
이 때, 마이크로 컨트롤러 부(110)는 레지스터 컨텐츠를 이용하여 PUF 출력 값을 생성하고, PUF 출력 값의 출력 특성 값을 산출할 수 있다(S450).
이 때, 마이크로 컨트롤러 부(110)는 PUF 출력 값의 출력 특성 값에 기반하여 PUF 출력 값의 오류를 정정하기 위한 헬퍼 데이터를 생성할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 생성한 헬퍼 데이터를 데이터 통신부(120)에 전송하여 오류 정정을 요청할 수 있다.
PUF 출력을 키생성 등 보안목적으로 사용하기 위해서는 오류가 0이여야 하며 이를 위해 오류정정코드(Error correction code)를 사용하여 오류를 0으로 만들어 주어야 한다.
이 때, 데이터 통신부(120)는 상기 PUF 출력 값의 출력 특성 값을 산출한 결과에 기반하여 상기 PUF 출력 값의 오류를 정정할 수 있다(S460).
이 때, 데이터 통신부(120)는 오류 정정 코드를 이용하여 상기 PUF 출력 값의 안정성 값과 고유성 값에 기반한 상기 PUF 출력 값의 오류를 정정하기 위한 코드워드를 생성하는 오류 정정부(124)를 더 포함할 수 있다.
이 때, 오류 정정부(124)는 데이터 통신부(120)에 하드웨어로 구현되어 있어 하드웨어 적으로 PUF 출력 값의 오류를 정정하기 위한 코드워드(Codeword)를 생성할 수 있다.
이 때, 오류 정정부(124)는 상기 마이크로 컨트롤러부(110)가, 상기 PUF 출력 값에 기반하여 생성한 헬퍼 데이터와 상기 PUF 출력 값을 이용하여 코드워드(Codeword)를 생성할 수 있다.
이 때, 마이크로 컨트롤러부(110)는 오류 정정부(124)로부터 수신한 코드워드를 이용하여 PUF 출력 값의 오류를 정정할 수 있다.
이 때, 마이크로 컨트롤러부(110)는 오류가 정정된 PUF 출력 값을 이용하여 비밀 정보를 생성할 수 있다.
도 8은 본 발명의 일실시예에 따른 레지스터 컨텐츠를 이용한 비밀 정보 생성 과정을 나타낸 도면이다.
마이크로 컨트롤러 부(110)는 데이터 통신부(120)의 전원을 On 시키고, 패킷을 수신할 수 있는 상태로 동작시킬 수 있다(S510).
이 때, 데이터 통신부(120) AP나 DCU로부터 패킷(예: 비콘 패킷)을 수신 받으면 마이크로 컨트롤러 부(110)에게 Interrupt로 알릴 수 있다(S520).
이 때, 데이터 통신부(120)는 패킷을 수신 받으면서 생성한 RSSI, AGC Gain, Frequency Offset, Clock Offset 등의 정보인 고유 특성 값을 레지스터(122)에 저장할 수 있다.
고유 특성 값은 데이터 통신부(120)에 저장된 외부 장치와의 물리적 거리에 상응하는 거리 정보에 상응할 수 있다.
이 때, 고유 특성 값은 데이터 통신부(120)가 제공하는 RSSI 값, AGC 값, Frequency/Clock Offset 등을 포함할 수 있다.
비밀 정보 생성 장치는 AP 또는 DCU가 비콘(Beacon)을 송신하고 IoT 디바이스가 비콘을 수신하는 환경에서만 고유 특성 값을 이용할 수 있다.
IoT 서비스 중에는 IoT 디바이스가 정지상태인 환경이 많다. 이 때, AP와 IoT 디바이스간 거리는 변하지 않으며, 이러한 특성을 이용하여 비밀 정보 생성 장치는 IoT 디바이스의 고유 특성 값을 추출할 수 있다.
데이터 통신부(120)는 수신 Packet의 RSSI (Received Signal Strength Indicator)를 측정할 수 있다. RSSI 값은 AP와의 거리에 따라 달라지는 값으로 AP와의 거리가 서로 다르다면 IoT 디바이스마다 고유한 값을 가질 수 있다.
또한, 데이터 통신부(120)은 AP와의 거리에 상관없이 Packet을 수신하기 위해 AGC (Automatic gain control) 기능을 내장할 수 있다.
이 때, AGC Gain 값은 AP와의 거리에 따라 달라지는 값으로 AP와의 거리가 서로 다르다면 IoT 디바이스마다 고유한 값을 가질 수 있다.
AP와 IoT 디바이스는 서로 다른 Clock을 사용하고 서로 다른 주파수 합성기를 통해 전송 주파수를 생성하기 때문에 필연적으로 Frequency/Clock Offset이 발생할 수 있다. Frequency/Clock Offset 값은 각 IoT 디바이스들 마다 필연적으로 다른 값을 가지게 되고 이를 고유 특성 값으로 이용하여 PUF로 이용할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 고유 특성 값이 저장된 레지스터(122)의 Address를 데이터 통신부(120)에 제공할 수 있다(S530).
이 때, 데이터 통신부(120)는 해당 Address 의 고유 특성 값을 레지스터 컨텐츠로 마이크로 컨트롤러 부(110) 및 오류 정정을 위한 오류 정정부(124)에 전송할 수 있다(S540).
이 때, 마이크로 컨트롤러 부(110)는 레지스터 컨텐츠를 이용하여 PUF 출력 값을 생성하고, PUF 출력 값의 출력 특성 값을 산출할 수 있다(S550).
이 때, 마이크로 컨트롤러 부(110)는 PUF 출력 값의 출력 특성 값에 기반하여 PUF 출력 값의 오류를 정정하기 위한 헬퍼 데이터를 생성할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 생성한 헬퍼 데이터를 데이터 통신부(120)에 전송하여 오류 정정을 요청할 수 있다.
PUF 출력을 키생성 등 보안목적으로 사용하기 위해서는 오류가 0이여야 하며 이를 위해 오류정정코드(Error correction code)를 사용하여 오류를 0으로 만들어 주어야 한다.
이 때, 데이터 통신부(120)는 상기 PUF 출력 값의 출력 특성 값을 산출한 결과에 기반하여 상기 PUF 출력 값의 오류를 정정할 수 있다(S560).
이 때, 데이터 통신부(120)는 오류 정정 코드를 이용하여 상기 PUF 출력 값의 안정성 값과 고유성 값에 기반한 상기 PUF 출력 값의 오류를 정정하기 위한 코드워드를 생성하는 오류 정정부(124)를 더 포함할 수 있다.
이 때, 오류 정정부(124)는 데이터 통신부(120)에 하드웨어로 구현되어 있어 하드웨어 적으로 PUF 출력 값의 오류를 정정하기 위한 코드워드(Codeword)를 생성할 수 있다.
이 때, 오류 정정부(124)는 상기 마이크로 컨트롤러부(110)가, 상기 PUF 출력 값에 기반하여 생성한 헬퍼 데이터와 상기 PUF 출력 값을 이용하여 코드워드(Codeword)를 생성할 수 있다.
이 때, 마이크로 컨트롤러부(110)는 오류 정정부(124)로부터 수신한 코드워드를 이용하여 PUF 출력 값의 오류를 정정할 수 있다.
이 때, 마이크로 컨트롤러부(110)는 오류가 정정된 PUF 출력 값을 이용하여 비밀 정보를 생성할 수 있다.
도 9는 본 발명의 일실시예에 따른 ADC 출력 비트열을 이용한 비밀 정보 생성 과정을 나타낸 도면이다.
도 9를 참조하면, 본 발명의 일실시예에 따른 ADC 출력 비트열을 이용한 비밀 정보 생성 과정을 나타낸 것을 알 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 데이터 통신부(120)에 전원을 ON 시키고(S610), 아날로그-디지털 컨버터(123)를 동작시킬 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 누설 전자파를 발생시키기 위한 임의코드를 반복 실행할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 누설 전자파를 발생하기 위해 임의의 코드를 반복적으로 실행하여 아날로그-디지털 컨버터(123)의 동작 주파수에 해당하는 누설 전자파를 발생시킬 수 있다.
아날로그-디지털 컨버터(Analog-Digital Converter, ADC) (123)는 Analog 신호를 Digital 신호로 변경해 주는 장치로 대부분의 데이터 통신 모듈의 수신 Path에 내장되어 있을 수 있다.
이 때, 데이터 통신부(120)에 포함된 아날로그-디지털 컨버터(123)는 전원이 인가되어 동작상태일 때, 유효한 입력 아날로그(Analog) 값이 인가되면 그에 해당하는 디지털 비트열로 변환하여 출력 비트열을 출력할 수 있다(S630).
출력 비트열은 누설 전자파가 아날로그-디지털 컨버터(123)에서 샘플링되어 출력된 디바이스의 고유한 특성으로 인해 발생한 것으로 PUF 출력 값으로 이용될 수 있다.
이 때, 누설 전자파의 주파수는 마이크로 컨트롤러 부(110)에서 사용하는 Clock, 보드 특성 등에 따라 IoT 디바이스마다 고유한 값을 나타낼 수 있고, 이를 샘플링한 출력 비트열도 서로 다른 고유한 값을 갖게 되어 출력 비트열을 PUF 출력으로 사용할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 아날로그-디지털 컨버터(123)에 누설전자파가 유기되도록 임의 코드를 반복적으로 실행시킬 수 있다. 이 때 발생하는 누설 전자파의 주파수는 IoT 디바이스마다 동일한 코드를 실행시켜도(동일한 챌린지(Challenge) 값) 마이크로 컨트롤러 부(110)에서 사용하는 Clock과 보드 특성에 따라 다른 주파수가 발생할 수 있다.
이 때, 데이터 통신부(120)는 아날로그-디지털 컨버터(123)로부터 출력된 출력 비트열을 마이크로 컨트롤러 부(110) 및 오류 정정부(124)에게 전달할 수 있다(S630).
이 때, 마이크로 컨트롤러 부(110)는 출력 비트열를 이용하여 PUF 출력 값을 생성하고, PUF 출력 값의 출력 특성 값을 산출할 수 있다(S650).
이 때, 마이크로 컨트롤러 부(110)는 PUF 출력 값의 출력 특성 값에 기반하여 PUF 출력 값의 오류를 정정하기 위한 헬퍼 데이터를 생성할 수 있다.
이 때, 마이크로 컨트롤러 부(110)는 생성한 헬퍼 데이터를 데이터 통신부(120)에 전송하여 오류 정정을 요청할 수 있다.
PUF 출력을 키생성 등 보안목적으로 사용하기 위해서는 오류가 0이여야 하며 이를 위해 오류정정코드(Error correction code)를 사용하여 오류를 0으로 만들어 주어야 한다.
이 때, 데이터 통신부(120)는 상기 PUF 출력 값의 출력 특성 값을 산출한 결과에 기반하여 상기 PUF 출력 값의 오류를 정정할 수 있다(S660).
이 때, 데이터 통신부(120)는 오류 정정 코드를 이용하여 상기 PUF 출력 값의 안정성 값과 고유성 값에 기반한 상기 PUF 출력 값의 오류를 정정하기 위한 코드워드를 생성하는 오류 정정부(124)를 더 포함할 수 있다.
이 때, 오류 정정부(124)는 데이터 통신부(120)에 하드웨어로 구현되어 있어 하드웨어 적으로 PUF 출력 값의 오류를 정정하기 위한 코드워드(Codeword)를 생성할 수 있다.
이 때, 오류 정정부(124)는 상기 마이크로 컨트롤러부(110)가, 상기 PUF 출력 값에 기반하여 생성한 헬퍼 데이터와 상기 PUF 출력 값을 이용하여 코드워드(Codeword)를 생성할 수 있다.
이 때, 마이크로 컨트롤러부(110)는 오류 정정부(124)로부터 수신한 코드워드를 이용하여 PUF 출력 값의 오류를 정정할 수 있다.
이 때, 마이크로 컨트롤러부(110)는 오류가 정정된 PUF 출력 값을 이용하여 비밀 정보를 생성할 수 있다.
도 10은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
도 10을 참조하면, 본 발명의 일실시예에 따른 비밀 정보 생성 장치는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다. 도 10에 도시된 바와 같이, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.
이상에서와 같이 본 발명의 일실시예에 따른 비밀 정보 생성 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
10: 인터넷 접속 장치 100: IoT 디바이스
110: 마이크로 컨트롤러 부 120: 데이터 통신부
121: 버퍼 122: 레지스터
123: 아날로그-디지털 컨버터 124: 오류 정정부
1100: 컴퓨터 시스템 1110: 프로세서
1120: 버스 1130: 메모리
1131: 롬 1132: 램
1140: 사용자 인터페이스 입력 장치
1150: 사용자 인터페이스 출력 장치
1160: 스토리지 1170: 네트워크 인터페이스
1180: 네트워크

Claims (20)

  1. 컨텐츠 값에 대한 출력 요청을 수신하여 상기 컨텐츠 값을 출력하는 데이터 통신부; 및
    상기 컨텐츠 값에 기반하여 PUF(PHYSICALLY UNCLONABLE FUNCTION) 출력 값을 생성하고, 상기 PUF 출력 값의 출력 특성 값을 산출하고, 상기 출력 특성 값을 이용하여 오류가 정정된 PUF 출력 값을 이용하여 비밀 정보를 생성하는 마이크로 컨트롤러 부;
    를 포함하고,
    상기 데이터 통신부는
    외부 장치와 통신한 데이터를 저장하기 위한 버퍼; 및
    상기 외부 장치와 통신을 수행하기 위한 고유 정보가 저장된 레지스터;
    를 포함하고,
    상기 버퍼는
    SRAM 으로 구성되고, 상기 마이크로 컨트롤러 부로부터 칩 인에이블(CHIP ENABLE) 신호를 수신하여 상기 SRAM의 셀의 이진 상태를 상기 컨텐츠 값으로 출력하는 것을 특징으로 하는 비밀 정보 생성 장치.
  2. 삭제
  3. 삭제
  4. 청구항 1에 있어서,
    상기 마이크로 컨트롤러 부는
    상기 버퍼가 출력한 상기 SRAM의 셀의 이진 상태를 이용하여 상기 PUF 출력 값을 생성하는 것을 특징으로 하는 비밀 정보 생성 장치.
  5. 청구항 1에 있어서,
    상기 레지스터는
    상기 통신을 수행하기 위한 I 채널과 Q 채널의 위상과 진폭을 보정한 캘리브레이션 값을 상기 컨텐츠 값으로 출력하는 것을 특징으로 하는 비밀 정보 생성 장치.
  6. 청구항 1에 있어서,
    상기 레지스터는
    상기 외부 장치와의 물리적 거리에 상응하는 고유 특성 값을 상기 컨텐츠 값으로 출력하는 것을 특징으로 하는 비밀 정보 생성 장치.
  7. 청구항 1에 있어서,
    상기 데이터 통신부는
    상기 데이터 통신부에서 발생하는 누설 전자파가 아날로그-디지털 변환된 출력 비트열을 상기 컨텐츠 값으로 출력하는 것을 특징으로 하는 비밀 정보 생성 장치.
  8. 청구항 1에 있어서,
    상기 마이크로 컨트롤러 부는
    상기 PUF 출력 값의 출력 특성 값을 산출하기 위하여 상기 PUF 출력 값의 안정성 값과 고유성 값을 산출하는 것을 특징으로 비밀 정보 생성 장치.
  9. 청구항 8에 있어서,
    상기 마이크로 컨트롤러 부는
    상기 데이터 통신부를 통해 하나의 외부 장치에게 기설정된 챌린지 값을 적어도 두 번 이상 입력하고, 상기 하나의 외부 장치로부터 수신한 응답 값들의 유사한 정도를 산출하여 상기 안정성 값을 산출하는 것을 특징으로 하는 비밀 정보 생성 장치.
  10. 청구항 9에 있어서,
    상기 마이크로 컨트롤러 부는
    상기 데이터 통신부를 통해 복수개의 외부 장치들마다 상기 기설정된 챌린지 값을 입력하고, 상기 복수개의 외부 장치들로부터 수신한 응답 값들의 상이한 정도를 산출하여 상기 고유성 값을 산출하는 것을 특징으로 하는 비밀 정보 생성 장치.
  11. 청구항 8에 있어서,
    상기 데이터 통신부는
    상기 PUF 출력 값의 출력 특성 값을 산출한 결과에 기반하여 상기 PUF 출력 값의 오류를 정정하는 것을 특징으로 하는 비밀 정보 생성 장치.
  12. 청구항 11에 있어서,
    상기 데이터 통신부는
    오류 정정 코드를 이용하여 상기 PUF 출력 값의 안정성 값과 고유성 값에 기반한 상기 PUF 출력 값의 오류를 정정하기 위한 코드워드를 생성하는 오류 정정부를 더 포함하는 것을 특징으로 하는 비밀 정보 생성 장치.
  13. 청구항 12에 있어서,
    상기 오류 정정부는
    상기 마이크로 컨트롤러부가, 상기 PUF 출력 값에 기반하여 생성한 헬퍼 데이터와 상기 PUF 출력 값을 이용하여 상기 코드워드를 생성하는 것을 특징으로 하는 비밀 정보 생성 장치.
  14. 비밀 정보 생성 장치의 비밀 정보 생성 방법에 있어서,
    데이터 통신부가, 마이크로 컨트롤러 부로부터 컨텐츠 값에 대한 출력 요청을 수신하여 상기 컨텐츠 값을 출력하는 단계;
    상기 마이크로 컨트롤러 부가, 상기 데이터 통신부에 요청한 컨텐츠 값에 기반하여 PUF(PHYSICALLY UNCLONABLE FUNCTION) 출력 값을 생성하는 단계;
    상기 마이크로 컨트롤러 부가, 상기 PUF 출력 값의 출력 특성 값을 산출하는 단계; 및
    상기 마이크로 컨트롤러 부가, 상기 출력 특성 값을 이용하여 오류가 정정된 PUF 출력 값을 이용하여 비밀 정보를 생성하는 단계;
    를 포함하고,
    상기 데이터 통신부는
    외부 장치와 통신한 데이터를 저장하기 위한 버퍼; 및
    상기 외부 장치와 통신을 수행하기 위한 고유 정보가 저장된 레지스터;
    를 포함하고,
    상기 버퍼는 SRAM 으로 구성되고,
    상기 컨텐츠 값을 출력하는 단계는
    상기 버퍼가, 상기 마이크로 컨트롤러 부로부터 칩 인에이블(CHIP ENABLE) 신호를 수신하여 상기 SRAM의 셀의 이진 상태를 상기 컨텐츠 값으로 출력하는 것을 특징으로 하는 비밀 정보 생성 방법.
  15. 청구항 14에 있어서,
    상기 PUF 출력 값의 출력 특성 값을 산출하는 단계는
    상기 마이크로 컨트롤러 부가, 상기 PUF 출력 값의 출력 특성 값을 산출하기 위하여 상기 PUF 출력 값의 안정성 값과 고유성 값을 산출하는 것을 특징으로 비밀 정보 생성 방법.
  16. 청구항 15에 있어서,
    상기 PUF 출력 값의 출력 특성 값을 산출하는 단계는
    상기 마이크로 컨트롤러 부가, 상기 데이터 통신부를 통해 하나의 외부 장치에게 기설정된 챌린지 값을 적어도 두 번 이상 입력하고, 상기 하나의 외부 장치로부터 수신한 응답 값들의 유사한 정도를 산출하여 상기 안정성 값을 산출하는 것을 특징으로 하는 비밀 정보 생성 방법.
  17. 청구항 16에 있어서,
    상기 PUF 출력 값의 출력 특성 값을 산출하는 단계는
    상기 마이크로 컨트롤러 부가, 상기 데이터 통신부를 통해 복수개의 외부 장치들마다 상기 기설정된 챌린지 값을 입력하고, 상기 복수개의 외부 장치들로부터 수신한 응답 값들의 상이한 정도를 산출하여 상기 고유성 값을 산출하는 것을 특징으로 하는 비밀 정보 생성 방법.
  18. 청구항 17에 있어서,
    상기 PUF 출력 값의 출력 특성 값을 산출하는 단계는
    상기 데이터 통신부가, 상기 PUF 출력 값의 출력 특성 값을 산출한 결과에 기반하여 상기 PUF 출력 값의 오류를 정정하는 것을 특징으로 하는 비밀 정보 생성 방법.
  19. 청구항 18에 있어서,
    상기 PUF 출력 값의 출력 특성 값을 산출하는 단계는
    상기 데이터 통신부가, 오류 정정 코드를 이용하여 상기 PUF 출력 값의 안정성 값과 고유성 값에 기반한 상기 PUF 출력 값의 오류를 정정하기 위한 코드워드를 생성하는 것을 특징으로 하는 비밀 정보 생성 방법.
  20. 청구항 19에 있어서,
    상기 PUF 출력 값의 출력 특성 값을 산출하는 단계는
    상기 마이크로 컨트롤러 부가 상기 PUF 출력 값에 기반하여 헬퍼 데이터를 생성하고, 상기 데이터 통신부가 상기 헬퍼 데이터와 상기 PUF 출력 값을 이용하여 상기 코드워드를 생성하는 것을 특징으로 하는 비밀 정보 생성 방법.
KR1020180149802A 2018-11-28 2018-11-28 비밀 정보 생성 장치 및 방법 KR102410193B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180149802A KR102410193B1 (ko) 2018-11-28 2018-11-28 비밀 정보 생성 장치 및 방법
US16/552,553 US20200167504A1 (en) 2018-11-28 2019-08-27 Apparatus and method for generating secret information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180149802A KR102410193B1 (ko) 2018-11-28 2018-11-28 비밀 정보 생성 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20200063719A KR20200063719A (ko) 2020-06-05
KR102410193B1 true KR102410193B1 (ko) 2022-06-20

Family

ID=70770802

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180149802A KR102410193B1 (ko) 2018-11-28 2018-11-28 비밀 정보 생성 장치 및 방법

Country Status (2)

Country Link
US (1) US20200167504A1 (ko)
KR (1) KR102410193B1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101744388B1 (ko) * 2014-04-09 2017-06-09 (주) 아이씨티케이 인증 장치 및 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Cedric Marchand 외 6명, Implementation and Characterization of a Physical Unclonable Function for IoT: A Case Study With the TERO-PUF, IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL.37, NO.1 (2018.01.)*
Sven Puchinger 외 4명, On Error Correction for Physical Unclonable Fuctions, SCC 2015, 10th International ITG Conference on Systems, Communications and Coding (2015.)*

Also Published As

Publication number Publication date
US20200167504A1 (en) 2020-05-28
KR20200063719A (ko) 2020-06-05

Similar Documents

Publication Publication Date Title
US10075820B2 (en) Secure broadcast beacon communications
US8000658B2 (en) Communicating apparatus, communicating method, and computer program product
US20170134943A1 (en) Secure wireless low-power wake-up
US9722988B2 (en) Techniques for authenticating a device for wireless docking
US8031763B2 (en) Automatic tuning circuit for a continuous-time equalizer
US20130311764A1 (en) System for protection and authentication of location services with distributed security
US10194392B2 (en) Terminal device, wireless device wirelessly communicating with the same, and wireless communication system including the terminal device and wireless device
BR112014003853B1 (pt) Aparelho e método para utilização em associação com comunicação sem fio, e memória que armazena instruçôes executáveis por máquina
CN105451222A (zh) 一种终端建立连接的方法、装置及系统
CN105120453A (zh) 密钥生成方法
Xu et al. Exploring the feasibility of physical layer key generation for LoRaWAN
Montoya et al. Sward: a secure wake-up radio against denial-of-service on iot devices
KR102410193B1 (ko) 비밀 정보 생성 장치 및 방법
Rabbani et al. Reserve: Remote attestation of intermittent iot devices
US20230328523A1 (en) Authentication method and device, and related products
US10200202B2 (en) Method and technical equipment for short range data transmission
US11425656B2 (en) Method and device for handling wake-up signals
Oh et al. Secure key extraction for IoT devices integrating IEEE 802.15. 4g/k transceiver
CN102487505B (zh) 一种传感器节点的接入认证方法、装置及系统
CN102324950B (zh) 一种无线通信芯片
Saravanaselvan et al. Implementation of an efficient light weight security algorithm for energy-constrained wireless sensor nodes
JP6161392B2 (ja) 認証システム及び認証方法
Gowthami et al. Data Provenance for Multi-Hop Internet of Things
JP5860523B1 (ja) 時間デジタル変換器
KR102050560B1 (ko) IoT 단말을 위한 저전력 통신 장치 및 방법

Legal Events

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