KR102200488B1 - 다수 챌린지 응답 쌍을 갖는 디지털 난수 생성 장치 - Google Patents

다수 챌린지 응답 쌍을 갖는 디지털 난수 생성 장치 Download PDF

Info

Publication number
KR102200488B1
KR102200488B1 KR1020190098826A KR20190098826A KR102200488B1 KR 102200488 B1 KR102200488 B1 KR 102200488B1 KR 1020190098826 A KR1020190098826 A KR 1020190098826A KR 20190098826 A KR20190098826 A KR 20190098826A KR 102200488 B1 KR102200488 B1 KR 102200488B1
Authority
KR
South Korea
Prior art keywords
transistor
inverters
inverter
random number
digital random
Prior art date
Application number
KR1020190098826A
Other languages
English (en)
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 KR1020190098826A priority Critical patent/KR102200488B1/ko
Application granted granted Critical
Publication of KR102200488B1 publication Critical patent/KR102200488B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

다수 챌린지 응답 쌍을 갖는 디지털 난수 생성 장치가 개시된다. 일 실시예에 따른 디지털 난수 생성 장치를 위한 인버터 회로는, 각각이 병렬로 연결되고, 제1 트랜지스터와 제2 트랜지스터를 포함하는 제1 복수의 인버터들과, 상기 제1 복수의 인버터들의 일단에 접속되고, 하나 이상의 제3 트랜지스터로 구성된 제1 선택회로와, 상기 제1 복수의 인버터들의 타단에 접속되고, 하나 이상의 제4 트랜지스터로 구성된 제2 선택회로와, 상기 제1 복수의 인버터들 중에서 마지막 인버터에 병렬로 연결된 제2 인버터를 포함한다.

Description

다수 챌린지 응답 쌍을 갖는 디지털 난수 생성 장치{APPARATUS FOR GENERATING DIGITAL RADOM NUMBER HAVING MULTIPLE CHALLENGE RESPONSE PAIRS}
아래 실시예들은 다수 챌린지 응답 쌍을 갖는 디지털 난수 생성 장치 및 방법에 관한 것이다.
물리적 복제 불가능 함수(Physical Uncloable Function, 이하 PUF) 시스템은 특정 입력 값인 챌린지(Challenge)에 의해 고유 값인 응답(Response)을 무작위(Random)로 빠르게 생성한다. 이때, 물리적 복제 불가능 함수 시스템의 출력을 챌린지 응답 쌍(Challenge Response Pair, 이하 CRP)라 한다.
물리적 복제 불가능 함수 시스템에서 무작위로 생성되는 고유 값은 CMOS(Complementary Metal Oxide Semiconductor)를 이용하여 물리적 복제 불가능 칩이 만들어질 때 결정된다. 물리적 복제 불가능 칩의 고유 값은 똑같은 물리적 복제 불가능 칩을 실제 공정상에서 동일하게 생산하더라도 공정상의 불일치(process mismatch)에 의하여 각각 다른 값으로 결정된다.
PUF는 용도와 성능에 따라 CRP가 많은 강한 PUF(Strong PUF)와 CRP가 적은 약한 PUF(Weak PUF)로 구분한다. 약한 PUF는 작은 회로 면적과 낮은 소모 전력 면에서 이점이 있지만, CRP가 하나뿐이므로 상대적으로 낮은 보안 강도로 충분한 소형의 저전력 장치에 사용한다. 반면에, 강한 PUF는 많은 회로 면적과 높은 소모 전력을 가지지만 CRP가 많이 필요한 높은 보안 강도를 가지는 인증(Authentication) 영역에 사용된다. 따라서, 강한 PUF는 많은 CRP 생성을 위해 포함하는 트랜지스터의 개수가 증가하기 때문에 회로의 사용 면적이 커지므로 IoT 기기 등 크기가 작은 장치에 사용하기엔 부적합하다.
실시예들은 링 오실레이터를 구성하는 인버터의 특성을 변경함으로써, 생성되는 CRP 대비 회로의 사용 면적을 효과적으로 줄일 수 있는 기술을 제공할 수 있다.
일 실시예에 따른 디지털 난수 생성 장치를 위한 인버터 회로는, 각각이 병렬로 연결되고, 제1 트랜지스터와 제2 트랜지스터를 포함하는 제1 복수의 인버터들과, 상기 제1 복수의 인버터들의 일단에 접속되고, 하나 이상의 제3 트랜지스터로 구성된 제1 선택회로와, 상기 제1 복수의 인버터들의 타단에 접속되고, 하나 이상의 제4 트랜지스터로 구성된 제2 선택회로와, 상기 제1 복수의 인버터들 중에서 마지막 인버터에 병렬로 연결된 제2 인버터를 포함한다.할 수 있다.
상기 제1 선택회로는, 상기 하나 이상의 제3 트랜지스터 중에서 어느 하나의 일단이 상기 제1 복수의 인버터들 중에서 어느 하나에 포함된 제1 트랜지스터와 직렬 연결되고, 타단이 공급 전압에 연결되고, 상기 제2 선택회로는, 상기 하나 이상의 제4 트랜지스터 중에서 어느 하나의 일단이 상기 제1 복수의 인버터들 중에서 어느 하나에 포함된 제2 트랜지스터와 직렬 연결되고, 타단이 그라운드에 연결될 수 있다.
상기 제2 인버터는, 일단이 상기 공급 전압에 연결되고, 타단이 상기 그라운드에 연결될 수 있다.
상기 제3 트랜지스터 및 상기 제4 트랜지스터의 수는 상기 제1 복수의 인버터들의 수와 동일할 수 있다.
상기 제1 트랜지스터 및 제3 트랜지스터는 PMOS이고, 상기 제2 트랜지스터 및 제4 트랜지스터는 NMOS일 수 있다.
일 실시예에 따른 디지털 난수 생성 장치는, 복수의 인버터 회로들 및 낸드(Negative-AND) 게이트를 포함하는 링 오실레이터(ring oscillator)와, 상기 링 오실레이터의 출력을 변환하는 웨이브 컨버터(wave converter)와, 상기 웨이브 컨버터의 출력을 통해 PUF(Physical Unclonable Function) 값을 출력하는 플립 플랍(flip-flop)을 포함하고, 상기 복수의 인버터 회로들은, 각각이 병렬로 연결되고, 제1 트랜지스터와 제2 트랜지스터를 포함하는 제1 복수의 인버터들과, 상기 제1 복수의 인버터들의 일단에 접속되고, 하나 이상의 제3 트랜지스터로 구성된 제1 선택회로와, 상기 제1 복수의 인버터들의 타단에 접속되고, 하나 이상의 제4 트랜지스터로 구성된 제2 선택회로, 및 상기 제1 복수의 인버터들 중에서 마지막 인버터에 병렬로 연결된 제2 인버터를 포함할 수 있다.
도 1은 강한 PUF를 위한 기존의 PUF 시스템의 일 예를 나타낸다.
도 2는 일 실시예에 따른 디지털 난수 생성 장치를 나타낸 도면이다.
도 3은 도 2에 도시된 링 오실레이터를 개략적으로 나타낸 도면이다.
도 4는 도 3에 도시된 인버터 회로의 일 예를 나타낸 도면이다.
도 5는 인버터 회로의 다른 예를 나타낸 도면이다.
도 6은 디지털 난수 생성 장치의 동작을 설명하기 위한 타이밍 다이어그램이다.
도 7은 디지털 난수 생성 장치의 시뮬레이션 그래프의 일 예이다.
도 8은 도 1의 기존의 PUF 시스템과 디지털 난수 생성 장치가 생성하는 CRP를 비교한 비교표이다.
도 9 및 10은 디지털 난수 생성 장치가 CRP를 통해 시도-응답 인증 프로토콜을 수행하는 동작의 일 예를 설명하기 위한 도면이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
제1 또는 제2등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해서 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 실시예의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 강한 PUF를 위한 기존의 PUF 시스템의 일 예를 나타낸다.
물리적 복제 불가능 함수(Physical Uncloable Function, 이하 PUF) 시스템은 특정 입력 값인 챌린지(Challenge)에 의해 고유 값인 응답(Response)을 무작위(Random)로 빠르게 생성한다. 이때, PUF 시스템의 출력을 챌린지 응답 쌍(Challenge Response Pair, 이하 CRP)라 한다.
PUF 시스템에서 무작위로 생성되는 고유 값은 CMOS(Complementary Metal Oxide Semiconductor)를 이용하여 물리적 복제 불가능 칩이 만들어질 때 결정된다. 물리적 복제 불가능 칩의 고유 값은 똑같은 물리적 복제 불가능 칩을 실제 공정상에서 동일하게 생산하더라도 공정상의 불일치(process mismatch)에 의하여 각각 다른 값으로 결정된다.
PUF는 용도와 성능에 따라 CRP가 많은 강한 PUF(Strong PUF)와 CRP가 적은 약한 PUF(Weak PUF)로 구분한다. 약한 PUF는 작은 회로 면적과 낮은 소모 전력 면에서 이점이 있지만, CRP가 하나뿐이므로 상대적으로 낮은 보안 강도로 충분한 소형의 저전력 장치에 사용한다. 반면에, 강한 PUF는 많은 회로 면적과 높은 소모 전력을 가지지만 CRP가 많이 필요한 높은 보안 강도를 가지는 인증(Authentication) 영역에 사용된다.
예를 들어, 도 1에 도시된 바와 같이, 기존의 PUF 시스템(PS)은 강한 PUF를 위해 N개의 링 오실레이터(RO) 기반의 구조로 구현될 수 있다. 기존의 PUF 시스템(PS)은 난수를 생성하기 위해 N개의 링 오실레이터(RO)가 병렬로 연결되고, N개의 링 오실레이터(RO)의 출력단에 2개의 MUX(multiplexer; MUX1 및 MUX 2)가 연결된다. 이때, 기존의 PUF 시스템(PS)의 특정 입력 값인 챌린지(challenge)는 2개의 MUX(MUX 1 및 MUX 2)가 선택한 N개의 링 오실레이터(RO) 중에서 어느 두 개가 출력하는 신호로 정의된다.
기존의 PUF 시스템(PS)은 선택된 두 개의 링 오실레이터가 출력하는 신호를 비교하여 공정상의 불일치를 통해 난수, 즉 고유 값인 응답을 무작위로 생성한다. 이때, 기존의 PUF 시스템(PS)이 N개의 링 오실레이터(RO)를 이용하여 구성됨에 따라 가지는 CRP의 갯수는 N*(N-1)개이다. 즉, 기존의 PUF 시스템(PS)은 연결되는 링 오실레이터의 갯수를 늘려 CRP를 증가시켜야 하고, 더욱이 MUX 선택 신호를 챌린지로 사용하기 때문에 강한 PUF를 위한 PUF 시스템(PS)을 구성하기 위해서는 많은 트랜지스터를 필요로 한다.
따라서, 기존의 PUF 시스템(PS)은 강한 PUF를 위해(많은 CRP 생성을 위해) 회로에 포함되는 트랜지스터의 개수가 증가하기 때문에 회로의 사용 면적이 커지므로 IoT 기기 등 크기가 작은 장치에 사용하기엔 부적합하다.
실시예들은 PUF 시스템이 포함하는 CRP 생성을 위한 트랜지스터의 개수를 링 오실레이터를 구성하는 인버터의 특성 변경을 통해 감소시킴으로써, 강한 PUF 만큼의 CRP 생성이 가능하면서도, CRP 생성을 위한 회로의 사용 면적을 효과적으로 줄일 수 있다.
이하에서는, 도 2 내지 도 9를 참조하여 실시예들을 설명하도록 한다.
도 2는 일 실시예에 따른 디지털 난수 생성 장치를 나타낸 도면이다.
디지털 난수 생성 장치(10)는 링 오실레이터(ring oscillator; 100), 웨이브 컨버터(wave converter; 200), 및 플립 플랍(flip-flop; 300)을 포함한다.
디지털 난수 생성 장치(10)는 CRP를 증가시키기 위해 추가적인 링 오실레이터를 연결하지 않아도 CRP를 증가시킬 수 있다. 디지털 난수 생성 장치(10)는 링 오실레이터를 구성하는 인버터의 트랜지스터를 ON/OFF 하여 인버터의 특성을 바꿈으로써, 강한 PUF 만큼의 CRP를 생성할 수 있다.
디지털 난수 생성 장치(10)는 링 오실레이터를 구성하는 인버터의 특성을 바꿈으로써 트랜지스터의 개수를 감소시켜 CRP 생성을 위한 회로의 사용 면적을 줄일 수 있다. 링 오실레이터(100)는 링 오실레이터(100)에 포함되는 인버터의 트랜지스터를 ON/OFF 하는 특성 변경을 통해 CRP 생성을 위한 트랜지스터의 개수를 감소시킬 수 있다. 예를 들어, 디지털 난수 생성 장치(10)는 하나의 링 오실레이터만을 이용하여 강한 PUF 만큼의 CRP를 생성할 수 있다. 즉, 디지털 난수 생성 장치(10)는 하나의 링 오실레이터만으로 구성되더라도, 링 오실레이터를 구성하는 인버터 회로에 인버터 및 트랜지스터의 간단한 추가로 CRP를 증가시킬 수 있다.
링 오실레이터(100)는 Enable 신호가 입력될 수 있다. 링 오실레이터(100)는 challenge 신호가 입력될 수 있다. 예를 들어, 링 오실레이터(100)는 단 하나만으로 구현될 수 있으며, 링 오실레이터(100)를 구성하는 인버터 및 트랜지스터의 추가만으로 CRP를 증가시킬 수 있다.
웨이브 컨버터(200)는 링 오실레이터(100)의 출력을 변환할 수 있다. 예를 들어, 웨이브 컨버터(200)는 링 오실레이터(100)의 출력을 구형파 신호로 변환할 수 있다.
웨이브 컨버터(200)는 구형파 신호를 플립 플랍(300)으로 출력(Converter OUT)할 수 있다. 웨이브 컨버터(200)는 리셋 신호(converter_RST)가 입력될 수 있다.
플립 플랍(300)은 웨이브 컨버터(200)의 출력을 통해 PUF 값(PUFOUT)을 출력할 수 있다. 플립 플랍(300)은 클락 신호(FF_CLK) 및/또는 리셋 신호(FF_RST)가 입력될 수 있다.
도 3은 도 2에 도시된 링 오실레이터를 개략적으로 나타낸 도면이다.
링 오실레이터(100)는 인버터 회로(110) 및 낸드 게이트(Negative-AND gate; 150)를 포함할 수 있다.
인버터 회로(110)는 복수의 인버터 회로(110N)로 구현될 수 있다. 예를 들어, 복수의 인버터 회로(110N)는 각각 N Bits의 챌린지 신호(Chal<0:N-1>, Chal<N:2N-1>, Chal<2N:3N-1>, Chal<3N:4N-1>)가 각각 입력될 수 있다. 즉, 복수의 인버터 회로(110N)는 챌린지 신호의 일부 비트 신호가 각각 입력될 수 있다.
예를 들어, 도 3과 같이 복수의 인버터 회로(110N)가 4개로 구현되는 경우 총 4N Bits 챌린지 신호가 입력될 수 있다. 단, 도 3에서는 복수의 인버터 회로(110N)를 인버터 회로(110) 4단으로 구성하였지만, 복수의 인버터 회로(110N)가 포함하는 인버터 회로(110)의 수는 이에 한정되지 않는다.
복수의 인버터 회로(110N)에 입력되는 챌린지 신호가 4N Bits일 때 링 오실레이터(100)는
Figure 112019082964890-pat00001
개의 서로 다른 특성을 가질 수 있다. 즉, 복수의 인버터 회로(110N) 각각은 같은 구조를 가지도록 생산되지만, 인버터 회로(110)의 제조 공정 과정에 있어서 트랜지스터 공정 편차에 의하여 각각의 인버터 회로(110)마다 동작 속도가 달라질 수 있다. 복수의 인버터 회로(110N)는 각각의 인버터 회로마다 동작 속도가 다르기 때문에 서로 다른 인버터 회로의 링 오실레이터가 출력하는 주파수도 달라질 수 있다.
복수의 인버터 회로(110N)에 연결된 마지막 인버터 회로는 링 오실레이터(100)의 출력 신호 및 낸드 게이트(150)로 입력되는 피드백 신호를 출력할 수 있다.
낸드 게이트(150)는 인버터 회로(110)로부터 피드백 신호가 입력될 수 있다. 낸드 게이트(150)는 Enable 신호(Enable)가 입력될 수 있다. 예를 들어, 낸드 게이트(150)는 Enble 신호(Enable)가 high level(또는 low level)일 경우에만 링 오실레이터(100)가 동작하도록 구현될 수 있다. 낸드 게이트(150)는 복수의 인버터 회로(110N)에 연결된 첫번째 인버터 회로(110)로 신호를 출력할 수 있다.
도 4는 도 3에 도시된 인버터 회로의 일 예를 나타낸 도면이고, 도 5는 인버터 회로의 다른 예를 나타낸 도면이다.
인버터 회로(110)는 제1 복수의 인버터들(111), 제1 선택회로(113), 제2 선택회로(115), 및 제2 인버터(117)를 포함한다.
제1 복수의 인버터들(111)은 각각이 병렬로 연결될 수 있다. 제1 복수의 인버터들(111)은 제1 트랜지스터와 제2 트랜지스터를 포함할 수 있다. 예를 들어, 제1 트랜지스터는 PMOS(p-channel MOSFET)일 수 있다. 제2 트랜지스터는 NMOS(n-channel MOSFET)일 수 있다.
제1 선택회로(113)는 제1 복수의 인버터들(111)을 구성하는 트랜지스터의 동작을 조절(즉, finger를 조절)할 수 있다. 즉, 제1 선택회로(113)는 챌린지 신호의 일부 비트 신호에 응답하여 제1 복수의 인버터들(111) 각각에 포함된 제1 트랜지스터를 선택할 수 있다.
제1 선택회로(113)는 제1 복수의 인버터들(111)의 일단에 접속될 수 있다. 제1 선택회로(113)는 하나 이상의 제3 트랜지스터 중에서 어느 하나의 일단이 제1 복수의 인버터들 중에서 어느 하나에 포함된 제1 트랜지스터와 직렬 연결될 수 있고, 타단이 공급 전압에 연결될 수 있다.
제1 선택회로(113)는 하나 이상의 제3 트랜지스터로 구성될 수 있다. 제3 트랜지스터의 수는 제1 복수의 인버터들(111)의 수와 동일할 수 있다. 예를 들어, 제3 트랜지스터는 PMOS일 수 있다. PMOS는 게이트 입력으로 챌린지 신호가 입력될 수 있다. 즉, 제1 선택회로(113)는 PMOS의 게이트 입력에 따라 제1 복수의 인버터들(110)의 동작 특성을 변경할 수 있다.
제2 선택회로(115)는 제1 복수의 인버터들(111)을 구성하는 트랜지스터의 동작을 조절(즉, finger를 조절)할 수 있다. 즉, 제2 선택회로(115)는 챌린지 신호의 일부 비트 신호에 응답하여 제1 복수의 인버터들(111) 각각에 포함된 제2 트랜지스터를 선택할 수 있다.
제2 선택회로(115)는 제1 복수의 인버터들(111)의 타단에 접속될 수 있다. 제2 선택회로(115)는 하나 이상의 제4 트랜지스터 중에서 어느 하나의 일단이 제1 복수의 인버터들 중에서 어느 하나에 포함된 제2 트랜지스터와 직렬 연결될 수 있고, 타단이 그라운드에 연결될 수 있다.
제2 선택회로(115)는 하나 이상의 제4 트랜지스터로 구성될 수 있다. 제4 트랜지스터의 수는 제1 복수의 인버터들(111)의 수와 동일할 수 있다. 예를 들어, 제4 트랜지스터는 NMOS일 수 있다. NMOS는 게이트 입력으로 챌린지 신호가 입력될 수 있다. 즉, 제2 선택회로(115)는 NMOS의 게이트 입력에 따라 제1 복수의 인버터들(110)의 동작 특성을 변경할 수 있다.
제2 인버터(117)는 제1 복수의 인버터들(111) 중에서 마지막 인버터에 병렬로 연결될 수 있다. 제2 인버터(117)는 일단이 공급 전압(VDD)에 연결되고, 타단이 그라운드(GND)에 연결될 수 있다.
예를 들어, 도 5를 참조하면, 제1 선택회로(113) 및 제2 선택회로(115)는 제1 복수의 인버터들(111)이 인버터 4개로 구현되고, 챌린지 신호가 8 Bits인 경우(CHAL<0>, CHAL<1>, CHAL<2>, CHAL<3>, CHAL<4>, CHAL<5>, CHAL<6>, CHAL<7>, CHAL<8>), 제1 복수의 인버터들(111) 중에서
Figure 112019082964890-pat00002
개의 서로 다른 인버터를 구성할 수 있다. 즉, 제1 선택회로(113) 및 제2 선택회로(115)는 양단에 추가적인 트랜지스터가 연결되지 않은 일반적인 인버터인 제2 인버터(117)가 한 개 병렬로 연결되어 있어 PMOS와 NMOS를 0개 선택할 수 있고, 8개 모두 선택할 수 있다.
인버터 회로(110)에 관하여 도 4에서는 4 Bits 챌린지 신호, 도 5에서는 8 Bits 챌린지 신호인 경우만을 설명했지만, 인버터 회로(110)에 입력되는 챌린지 신호는 이에 한정되지 않는다. 즉, 인버터 회로(110)는 제1 복수의 인버터들(111)의 갯수, 제1 선택회로(113) 및 제2 선택회로(115)를 구성하는 트랜지스터의 갯수를 확장하고, 챌린지 신호를 N Bits로 확장하면
Figure 112019082964890-pat00003
개로 CRP를 증가시킬 수 있다.
도 6은 디지털 난수 생성 장치의 동작을 설명하기 위한 타이밍 다이어그램이다.
링 오실레이터(100)는 사용자에 의해 정해진 Enable 신호(Enable)에 따라 동작할 수 있다. 즉, Enable 신호(Enable)는 설계자에 의해 정해진 시간동안 hign level을 유지하고 이후 low level이 될 수 있다. 예를 들어, 링 오실레이터(100)는 Enable 신호(Enable)가 hign level일 때 신호를 출력할 수 있다. 링 오실레이터(100)가 출력한 신호는 웨이브 컨버터(200)로 입력될 수 있다. 링 오실레이터(100)는 Enable 신호(Enable)가 low level이 되면 동작을 멈출 수 있다.
웨이브 컨버터(200)는 링 오실레이터(100)의 출력을 구형파 신호로 변환할 수 있다. 웨이브 컨버터(200)의 출력(Converter_OUT)은 링 오실레이터(100)의 동작이 멈추면 high level 또는 low level로 고정될 수 있다. 웨이브 컨버터(200)가 출력하는 구형파 신호는 플립 플랍(300)으로 입력될 수 있다. 웨이브 컨버터(200)는 웨이브 컨버터 리셋 신호(Converter_RST)에 의해 Enable 신호(Enable)가 high level이 되어 링 오실레이터(100)가 동작하기 전에 초기화 될 수 있다.
플립 플랍(300)은 플립 플랍(300)의 클락(FF_CLK)에 의하여 디지털 난수 생성 장치(10)의 최종 신호(PUF_OUT)를 출력할 수 있다. 플립 플랍(300)은 플립 플랍 리셋 신호(FF_RST)에 의해 Enable 신호(Enable)가 high level이 되어 링 오실레이터(100)가 동작하기 전에 초기화 될 수 있다.
도 6을 통해 설명한 신호들(CLK, Converter_RST, FF_RST, Enable, FF_CLK, Converter_OUT, PUF_OUT)은 상술한 순서에 관계없이 각자의 역할을 수행할 수 있음에 유의한다.
도 7은 디지털 난수 생성 장치의 시뮬레이션 그래프의 일 예이고, 도 8은 도 1의 기존의 PUF 시스템과 디지털 난수 생성 장치가 생성하는 CRP를 비교한 비교표이다.
도 7은 서로 다른 디지털 난수 생성 장치인 제1 디지털 난수 생성 장치(610) 및 제2 디지털 난수 생성 장치(650)에 같은 챌린지(challenge) 신호를 입력하였을 때 장치(610 및 650)가 서로 다른 출력을 가지는 과정에 대하여 설명하기 위한 도면이다.
링 오실레이터(100)는 설정된 Enable 신호(Enable)가 high level인 동안에만 동작할 수 있다. 즉, 링 오실레이터(100)는 Enable 신호(Enable)가 high level을 유지하는 시간동안 동작할 수 있다.
링 오실레이터(100)는 Enble 신호(Enable)가 high level인 경우 공정 편차에 의한 주파수 변화에 따라 피크(Peak) 출력 발생 횟수가 달라질 수 있다. 즉, 링 오실레이터(100)의 공정 편차에 의한 주파수 변화는 Enable 신호(Enable)가 low level이 되는 시점의 링 오실레이터(100)의 출력(Ring Oscillator OUT 1, Ring Oscillator OUT 2)을 결정할 수 있다.
링 오실레이터(100)의 출력(Ring Oscillator OUT 1, Ring Oscillator OUT 2)은 웨이브 컨버터(200)에 입력될 수 있다. 웨이브 컨버터(200)는 링 오실레이터(100)의 출력(Ring Oscillator OUT 1, Ring Oscillator OUT 2)을 구형파 신호로 변환할 수 있다. 웨이브 컨버터(200)는 구형파 신호를 다음 클락에 플립 플랍(300)으로 출력(Converter OUT 1, Converter OUT 2)할 수 있다.
플립 플랍(300)은 웨이브 컨버터(200)의 출력(Converter OUT 1, Converter OUT 2)에 따라 제1 디지털 난수 생성 장치(610)의 최종 신호(PUFOUT 1) 및 제2 디지털 난수 생성 장치(650)의 최종 신호(PUFOUT 2)를 출력할 수 있다.
예를 들어, 제1 디지털 난수 생성 장치(610) 및 제2 디지털 난수 생성 장치(650)는 A-Challenge 신호가 입력될 수 있다. A-Challenge를 입력으로 하는 링 오실레이터(100)의 Typical 주파수를 B라고 정의할 수 있다. 정해진 시간동안 B 주파수를 가지는 링 오실레이터(100)의 출력은 N번의 피크(peak)를 보여줄 수 있다. 이때, 제1 디지털 난수 생성 장치(610)의 링 오실레이터 및 제2 디지털 난수 생성 장치(650)의 링 오실레이터에는 공정 편차가 존재할 수 있다. 즉, 제1 디지털 난수 생성 장치(610)의 링 오실레이터는 N-1번의 피크, 제2 디지털 난수 생성 장치(650)의 링 오실레이터는 N번의 피크가 출력될 수 있다. 이처럼 피크의 수가 변하면 Converter_OUT의 결과가 1에서 0으로 또는 0에서 1로 변화할 수 있다. 장치(610 및 650)는 피크가 N번일 때 Converter_OUT의 출력이 1이라고 하면 N-1번 일 때는 0의 출력을 가질 수 있다.
도 8을 참조하면, 기존의 PUF 시스템(PS)과 디지털 난수 생성 장치(10)에 입력되는 챌린지 비트가 4N로 동일한 경우에 대하여 생성되는 CRP개수를 계산한 결과를 보여준다. 즉, 기존의 PUF 시스템(PS)은
Figure 112019082964890-pat00004
개의 CRP를 생성하지만, 디지털 난수 생성 장치(10)는
Figure 112019082964890-pat00005
의 CRP를 생성할 수 있다. 즉, 기존의 PUF 시스템(PS)과 디지털 난수 생성 장치(10)가 입력되는 챌린지 비트가 같을 때 디지털 난수 생성 장치(10)는 기존의 PUF 시스템(PS) 보다 약 430만배 많은 CRP를 생성하는 것을 알 수 있다.
도 9 및 10은 디지털 난수 생성 장치가 CRP를 통해 시도-응답 인증 프로토콜을 수행하는 동작의 일 예를 설명하기 위한 도면이다.
도 9는 기존의 시도(challenge)-응답(response) 인증 방법을 나타내고, 도 10은 디지털 난수 생성 장치(10)를 이용한 시도-응답 인증을 나타낸다. 기존의 시도-응답 인증 방법은 사전에 분배된 서버(Server)의 난수 생성 소프트웨어를 이용하여 이루어진다. 서버(Server)의 메모리에 저장된 CRP는 난수 생성 소프트웨어로 생성하고, 분배한다. 즉, 시도-응답 인증이 소프트웨어를 통해 수행되는 경우, 서버(Server)의 메모리 주소에 접근하고 저장된 값을 불러오는 등의 많은 연산 처리를 위해 고성능의 프로세서를 필요로 한다.
하지만, 디지털 난수 생성 장치(10)를 이용한 시도-응답 인증은 서버(Server)의 난수 생성 소프트웨어로 생성한 CRP를 디지털 난수 생성 장치(10)에서 생성하는 CRP로 대체한 것일 수 있다. 즉, 디지털 난수 생성 장치(10)를 이용한 시도-응답 인증은 기존의 서버(Server)의 난수 생성 소프트웨어로 생성한 CRP와 비교하여 메모리에 접근하는 등의 소프트웨어적인 연산처리가 불필요하기 때문에 경량의 프로세서를 탑재한 IoT 디바이스에 적합할 수 있다.
즉, 디지털 난수 생성 장치(10)는 챌린지를 1 비트 늘리는데 필요한 트랜지스터의 수는 상대적으로 적고 챌린지 1 비트가 증가하였을 때 늘어나는 CRP의 개수는 상대적으로 많기 때문에, 같은 개수의 CRP를 가질 때 사용되는 트랜지스터의 개수는 훨씬 적어질 수 있다. 디지털 난수 생성 장치(10)는 포함하는 트랜지스터의 개수가 적기 때문에 회로의 사용 면적이 감소하여 경량 프로세서를 탑재한 IoT 디바이스 인증에 사용되는 보안 칩의 면적 효율을 최적화할 수 있다.
디지털 난수 생성 장치(10)는 보안이 필요하지만 소프트웨어 보안을 적용하기 힘든 다양한 분야에서 활용될 수 있다. 즉, 디지털 난수 생성 장치(10)는 효율상 마이크로프로세서(MCU)를 적용하기 힘든, 저전력 초소형 사물인터넷(IoT)장치에 적용하여 효율적으로 보안 강도를 향상시킬 수 있다. 또한 저가격(Low cost), 저전력(Low power), 고효율(High efficiency)의 난수 발생기로 활용할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (6)

  1. 각각이 병렬로 연결되고, 제1 트랜지스터와 제2 트랜지스터를 포함하는 제1 복수의 인버터들;
    상기 제1 복수의 인버터들의 일단에 접속되고, 하나 이상의 제3 트랜지스터로 구성된 제1 선택회로;
    상기 제1 복수의 인버터들의 타단에 접속되고, 하나 이상의 제4 트랜지스터로 구성된 제2 선택회로; 및
    상기 제1 복수의 인버터들 중에서 마지막 인버터에 병렬로 연결되고, 제5 트랜지스터와 제6 트랜지스터를 포함하는 제2 인버터
    를 포함하고,
    상기 제1 트랜지스터의 게이트 및 상기 제2 트랜지스터의 게이트, 상기 제5 트랜지스터의 게이트 및 상기 제6 트랜지스터의 게이트는 서로 접속되어 출력단을 형성하는 디지털 난수 생성 장치를 위한 인버터 회로.
  2. 제1항에 있어서,
    상기 제1 선택회로는,
    상기 하나 이상의 제3 트랜지스터 중에서 어느 하나의 일단이 상기 제1 복수의 인버터들 중에서 어느 하나에 포함된 제1 트랜지스터와 직렬 연결되고, 타단이 공급 전압에 연결되고,
    상기 제2 선택회로는,
    상기 하나 이상의 제4 트랜지스터 중에서 어느 하나의 일단이 상기 제1 복수의 인버터들 중에서 어느 하나에 포함된 제2 트랜지스터와 직렬 연결되고, 타단이 그라운드에 연결되는
    디지털 난수 생성 장치를 위한 인버터 회로.
  3. 제2항에 있어서,
    상기 제2 인버터는,
    일단이 상기 공급 전압에 연결되고, 타단이 상기 그라운드에 연결되는
    디지털 난수 생성 장치를 위한 인버터 회로.
  4. 제3항에 있어서,
    상기 제3 트랜지스터 및 상기 제4 트랜지스터의 수는 상기 제1 복수의 인버터들의 수와 동일한
    디지털 난수 생성 장치를 위한 인버터 회로.
  5. 제1항에 있어서,
    상기 제1 트랜지스터 및 제3 트랜지스터는 PMOS이고,
    상기 제2 트랜지스터 및 제4 트랜지스터는 NMOS인
    디지털 난수 생성 장치를 위한 인버터 회로.
  6. 복수의 인버터 회로들 및 낸드(Negative-AND) 게이트를 포함하는 링 오실레이터(ring oscillator);
    상기 링 오실레이터의 출력을 변환하는 웨이브 컨버터(wave converter); 및
    상기 웨이브 컨버터의 출력을 통해 PUF(Physical Unclonable Function) 값을 출력하는 플립 플랍(flip-flop)
    을 포함하고,
    상기 복수의 인버터 회로들은,
    각각이 병렬로 연결되고, 제1 트랜지스터와 제2 트랜지스터를 포함하는 제1 복수의 인버터들과, 상기 제1 복수의 인버터들의 일단에 접속되고, 하나 이상의 제3 트랜지스터로 구성된 제1 선택회로와, 상기 제1 복수의 인버터들의 타단에 접속되고, 하나 이상의 제4 트랜지스터로 구성된 제2 선택회로, 및 상기 제1 복수의 인버터들 중에서 마지막 인버터에 병렬로 연결되고, 제5 트랜지스터와 제6 트랜지스터를 포함하는 제2 인버터를 포함하고,
    상기 제1 트랜지스터의 게이트 및 상기 제2 트랜지스터의 게이트, 상기 제5 트랜지스터의 게이트 및 상기 제6 트랜지스터의 게이트는 서로 접속되어 출력단을 형성하는
    디지털 난수 생성 장치.
KR1020190098826A 2019-08-13 2019-08-13 다수 챌린지 응답 쌍을 갖는 디지털 난수 생성 장치 KR102200488B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190098826A KR102200488B1 (ko) 2019-08-13 2019-08-13 다수 챌린지 응답 쌍을 갖는 디지털 난수 생성 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190098826A KR102200488B1 (ko) 2019-08-13 2019-08-13 다수 챌린지 응답 쌍을 갖는 디지털 난수 생성 장치

Publications (1)

Publication Number Publication Date
KR102200488B1 true KR102200488B1 (ko) 2021-01-08

Family

ID=74127784

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190098826A KR102200488B1 (ko) 2019-08-13 2019-08-13 다수 챌린지 응답 쌍을 갖는 디지털 난수 생성 장치

Country Status (1)

Country Link
KR (1) KR102200488B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010023423A1 (en) * 2000-03-17 2001-09-20 Stmicroelectronics S.A. Pseudo-random number generator
KR101393806B1 (ko) * 2013-04-03 2014-05-12 충북대학교 산학협력단 다단계 물리적 복제 불가 함수 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010023423A1 (en) * 2000-03-17 2001-09-20 Stmicroelectronics S.A. Pseudo-random number generator
KR101393806B1 (ko) * 2013-04-03 2014-05-12 충북대학교 산학협력단 다단계 물리적 복제 불가 함수 시스템

Similar Documents

Publication Publication Date Title
US8341201B2 (en) Random number generator
US8285767B2 (en) Apparatus and method for generating a random number
WO2017124219A1 (zh) 一种基于fpga的方波发生器及方法
US10963222B2 (en) True random number generator with stable node voltage
CN111404550B (zh) 模数转换器及其时钟产生电路
US11201610B2 (en) Selectable delay buffers and logic cells for dynamic voltage scaling in ultra low voltage designs
TWI521891B (zh) 高速串列化器
Ning et al. Design and validation of high speed true random number generators based on prime-length ring oscillators
US20150381154A1 (en) Flip-flop circuit
KR102200488B1 (ko) 다수 챌린지 응답 쌍을 갖는 디지털 난수 생성 장치
US9729128B2 (en) Area-delay-power efficient multibit flip-flop
KR101920569B1 (ko) 공정편차를 이용한 디지털 값 생성 장치 및 방법
JP6602849B2 (ja) プログラマブル遅延回路ブロック
KR102129668B1 (ko) 공정편차를 이용한 디지털 값 생성 장치 및 방법
Marchand et al. Design and characterization of the TERO-PUF on SRAM FPGAs
KR101745964B1 (ko) 비교기를 이용한 실 난수 발생기 및 발생 방법
US7274244B2 (en) Pulse multiplexed output system
Srinivasarao et al. Implementation of barrel shifter using diode free adiabatic logic (DFAL)
Rethinam et al. Pyramid Entropy Source for True Random Number Generator on FPGA
US9602085B2 (en) Data storage element and signal processing method
KR20150045566A (ko) Cmos 인버터 회로장치
US20230315960A1 (en) Spuf based on combinational logic and scan chain
US20100244920A1 (en) Delay circuit
US6701423B2 (en) High speed address sequencer
KR102192845B1 (ko) 물리적 복제 불가능 함수에 적용 가능한 응답 다중 비교를 통한 응답 불안정성 감지 장치 및 방법

Legal Events

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