KR20230011092A - 링 오실레이터, 이를 포함하는 난수 생성 장치 및 난수 생성 장치의 동작 방법 - Google Patents

링 오실레이터, 이를 포함하는 난수 생성 장치 및 난수 생성 장치의 동작 방법 Download PDF

Info

Publication number
KR20230011092A
KR20230011092A KR1020210091690A KR20210091690A KR20230011092A KR 20230011092 A KR20230011092 A KR 20230011092A KR 1020210091690 A KR1020210091690 A KR 1020210091690A KR 20210091690 A KR20210091690 A KR 20210091690A KR 20230011092 A KR20230011092 A KR 20230011092A
Authority
KR
South Korea
Prior art keywords
random number
ring oscillator
inverter
operation mode
number generator
Prior art date
Application number
KR1020210091690A
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 KR1020210091690A priority Critical patent/KR20230011092A/ko
Priority to US17/853,148 priority patent/US12040805B2/en
Priority to CN202210811396.2A priority patent/CN115622537A/zh
Publication of KR20230011092A publication Critical patent/KR20230011092A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/099Details of the phase-locked loop concerning mainly the controlled oscillator of the loop
    • H03L7/0995Details of the phase-locked loop concerning mainly the controlled oscillator of the loop the oscillator comprising a ring oscillator
    • H03L7/0996Selecting a signal among the plurality of phase-shifted signals produced by the ring oscillator
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
    • H03K3/03Astable circuits
    • H03K3/0315Ring oscillators
    • 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/582Pseudo-random number generators
    • 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
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/84Generating pulses having a predetermined statistical distribution of a parameter, e.g. random pulse generators
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • H03K5/133Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals using a chain of active delay devices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/081Details of the phase-locked loop provided with an additional controlled phase shifter
    • H03L7/0812Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
    • H03L7/0814Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used the phase shifting device being digitally controlled
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/081Details of the phase-locked loop provided with an additional controlled phase shifter
    • H03L7/0812Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
    • H03L7/0818Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used the controlled phase shifter comprising coarse and fine delay or phase-shifting means
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/083Details of the phase-locked loop the reference signal being additionally directly applied to the generator
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/099Details of the phase-locked loop concerning mainly the controlled oscillator of the loop
    • H03L7/0995Details of the phase-locked loop concerning mainly the controlled oscillator of the loop the oscillator comprising a ring oscillator
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/10Details of the phase-locked loop for assuring initial synchronisation or for broadening the capture range
    • H03L7/107Details of the phase-locked loop for assuring initial synchronisation or for broadening the capture range using a variable transfer function for the loop, e.g. low pass filter having a variable bandwidth
    • H03L7/1077Details of the phase-locked loop for assuring initial synchronisation or for broadening the capture range using a variable transfer function for the loop, e.g. low pass filter having a variable bandwidth by changing characteristics of the phase or frequency detection means

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Nonlinear Science (AREA)
  • Manipulation Of Pulses (AREA)

Abstract

본 개시의 기술적 사상의 일측면에 따른 난수 생성 장치는, 적어도 하나의 인버터를 포함하고, 출력 신호를 생성하는 링 오실레이터 상기 링 오실레이터의 동작 모드에 기초하여 위상 반전기를 제어하는 반전 선택 회로 및 제어 모듈을 포함한다. 상기 제어 모듈은 상기 링 오실레이터의 동작 모드가 상기 링 오실레이터의 주파수를 측정하기 위한 제1 동작 모드 또는 난수 발생을 위한 제2 동작 모드인지 판단하고, 상기 동작 모드가 제1 동작 모드인 경우 상기 반전 선택 회로가 상기 위상 반전기를 선택하도록 동작하는 것을 특징으로 한다.

Description

링 오실레이터, 이를 포함하는 난수 생성 장치 및 난수 생성 장치의 동작 방법{RING OSCILLATOR, RANDOM NUMBER GENERATOR INCLUDING SAME, AND OPERATION METHOD OF RANDOM NUMBER GENERATOR}
본 개시의 기술적 사상은 난수를 생성하기 위한 링 오실레이터, 이를 포함하는 난수 생성 장치 및 난수 생성 장치의 동작 방법에 관한 것이다.
현대 사회에서 난수생성기(Random Number Generator, RNG)는 사물인터넷(IoT), 인공지능, 데이터베이스, 정보보호 등 여러 분야에 걸쳐 매우 광범위하게 사용되고 있다. 특히 암호기술을 적용하는 보안 산업에서 필수적으로 사용되는 난수생성기의 결함은 보안에 직접적인 영향을 미칠 수 있으므로, 안전성을 갖춘 고성능 난수생성기를 개발하는 것이 매우 중요하다. 이에 따라, 물리적인 현상을 이용하여 완전한 난수를 생성하는 진난수생성기(True Random Number Generator, TRNG)의 개발이 활발하게 이루어지고 있다. 일반적으로 진 난수 생성기술은 위상 고정 루프(PhaseLocked Loop, PLL) 방식, 셀프 타임 링(Self-Timed Ring) 방식, 준안정성(Metastability) 방식, 그리고 발진기(Ring Oscillator) 방식과 같이 다양한 방식을 통해 랜덤 소스를 생성한다.
이 중 천이 효과를 이용한 발진기(Transition Effect Ring Oscillator, TERO) 방식 진난수생성기의 경우, 랜덤 성능을 보장하기 위해 붕괴 카운트(Collapse Count)에 기초하여 초기 주파수 트림(Trim)을 진행 후 난수 생성 동작을 수행한다. 그러나, 초기 트림만 진행 할 경우 랜덤 비트 생성 도중 온도 또는 전원이 변화하면서 발진기 코어의 주파수 및 공정/전압/온도(PVT)에 따라 랜덤 비트 생성 속도(bit rate)가 특성이 크게 변화하게 되므로 랜덤 비트 생성 속도의 산포가 커지게 된다. 따라서, 진난수생성기의 상태를 초기 및 동작중에 정확하게 모니터링하여 캘리브레이션 동작을 수행할 필요성이 있다.
본 개시의 기술적 사상이 해결하려는 과제는 난수 생성 장치의 랜덤 성능과 난수 생성 속도를 최적화하기 위해, 링 오실레이터를 모니터링하고, 캘리브레이션 하는 난수 생성기 및 이의 동작 방법을 제공하는 데에 있다.
본 개시는 적은 자원을 활용해서 링 오실레이터의 주파수를 모니터링하는 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 난수 생성 장치는, 적어도 하나의 인버터를 포함하고, 출력 신호를 생성하는 링 오실레이터 상기 링 오실레이터의 동작 모드에 기초하여 위상 반전기를 제어하는 반전 선택 회로 및 제어 모듈을 포함한다. 상기 제어 모듈은 상기 링 오실레이터의 동작 모드가 상기 링 오실레이터의 주파수를 측정하기 위한 제1 동작 모드 또는 난수 발생을 위한 제2 동작 모드인지 판단하고, 상기 동작 모드가 제1 동작 모드인 경우 상기 반전 선택 회로가 상기 위상 반전기를 선택하도록 동작하는 것을 특징으로 한다.
본 개시의 기술적 사상의 일측면에 따른 난수 생성 장치에 의해 수행되는 난수 발생 방법은, 제1 동작 모드 에서, 링 오실레이터의 주파수 측정을 위해 제1 신호의 위상을 반전시키는 단계, 상기 링 오실레이터의 주파수를 측정하고, 측정된 주파수에 기초하여 상기 주파수를 캘리브레이션 하는 단계 및 제2 동작 모드에서, 상기 링 오실레이터의 동작 결과에 기초하여 난수를 생성하는 단계를 포함한다. 상기 링 오실레이터는 적어도 하나의 인버터를 포함하고, 난수 발생의 기초가 되는 출력 신호를 생성하는 것을 특징으로 한다.
본 개시의 기술적 사상의 일측면에 따른 링 오실레이터는 복수의 인버터들, 동작 모드에 기초하여 위상 반전기를 제어하는 반전 선택 회로 및 제어 모듈을 포함한다. 상기 제어 모듈은 상기 동작 모드가 주파수를 측정하기 위한 제1 동작 모드 또는 난수 발생을 위한 제2 동작 모드인지 판단하고, 상기 동작 모드가 제1 동작 모드인 경우 상기 반전 선택 회로가 상기 위상 반전기를 선택하도록 동작하는 것을 특징으로 한다.
본 개시의 일 실시예에 따른 난수 생성 장치는 적은 자원을 활용해서 링 오실레이터의 주파수를 모니터링하고, 캘리브레이션하는 동작을 통해 난수 생성 장치의 랜덤 성능과 난수 생성 속도를 최적화하는 효과가 있다.
또한 본 개시의 일 실시예에 따른 난수 생성 장치는 초기 동작뿐 아니라 난수를 생성하는 중간에도 붕괴 카운트를 모니터링하여, 난수 생성 장치의 랜덤 성능을 안정적으로 관리할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 난수 발생 시스템을 개략적으로 나타낸 블록도이다.
도 2a는 본 개시의 일 실시 예에 따른 장치를 개략적으로 나타낸 블록도이다.
도 2b는 본 개시의 일 실시 예에 따른 난수 발생 장치를 나타낸 블록도이다.
도 3a는 본 개시의 일 실시 예에 따른 링 오실레이터를 구조를 나타내는 도면이고, 도 3b는 링 오실레이터에서 발생하는 신호를 설명하기 위한 도면이다..
도 4는 본 개시의 일 실시 예에 따른 난수 발생 장치를 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 난수 발생 장치를 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시 예에 따른 난수 발생 장치에서 생성된 붕괴 카운트를 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 난수 발생 장치에서 생성된 붕괴 카운트의 적정 범위를 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시 예에 따른 난수 발생 장치의 동작을 설명하기 위한 순서도이다.
도 9는 본 개시의 일 실시 예에 따른 난수 발생 장치의 동작을 설명하기 위한 순서도이다.
도 10은 본 개시의 일 실시 예에 따른 난수 발생 장치에서 발생하는 신호를 설명하기 위한 도면이다.
도 11은 본 개시의 일 실시 예에 따른 난수 발생 장치에서 발생하는 신호를 설명하기 위한 도면이다.
도 12는 본 개시의 일 실시 예에 따른 난수 발생 장치에서 발생하는 신호를 설명하기 위한 도면이다.
도 13은 본 개시의 일 실시 예에 따른 전자 서명 서비스 시스템을 나타낸 도면이다.
도 14는 본 개시의 일 실시예에 따라 생성된 전자 서명을 통한 보안 검증을 수행하는 통신 기기의 예시들을 나타낸다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 일 실시 예에 따른 난수 발생 장치를 개략적으로 나타낸 블록도이다.
난수 발생 장치는 링 오실레이터(2) 및 붕괴 카운터(3)를 포함할 수 있다. 링 오실레이터(2)는 위상반전회로(1)를 포함할 수 있다.
링 오실레이터(2)는 복수개의 인버터 또는 버퍼를 포함할 수 있다. 링 오실레이터(2)는 복수개의 인버터를 체인 형태로 연결하여 연결된 인버터의 개수만큼의 딜레이를 갖고 복수개의 인버터를 거쳐 입력이 반전되어 출력되며 일정 주기를 갖는 펄스를 생성할 수 있다. 링 오실레이터(2)는 위상반전회로(1)를 포함할 수 있다. 위상반전회로(1)는 멀티플렉서 및 인버터를 포함할 수 있다. 링 오실레이터(2)는 위상반전회로(1)에 포함된 멀티플렉서를 통해 펄스를 생성시 위상 반전기를 이용할지 여부를 결정할 수 있다. 예시적 실시예로, 링 오실레이터(2)는 제1 모드에서는 복수개의 인터버가 연결된 체인을 이용하여 펄스를 생성하고, 제2 모드에서는 상기 체인에 인버터가 추가된 구성을 이용하여 펄스를 생성할 수 있다. 예시적 실시예로, 위상반전회로(1)는 적어도 하나의 인버터를 포함할 수 있다.
붕괴 카운터(3)는 링 오실레이터(2)에서 발생된 펄스 개수를 셀 수 있다. 붕괴 카운터(3)는 복수의 플립 플롭을 포함할 수 있고, 붕괴 카운터(3)가 카운팅할 펄스 개수의 범위에 따라 포함하는 플립 플롭의 개수를 달리할 수 있다. 붕괴 카운트는 오실레이터(2)에서 생성된 펄스의 개수일 수 있다.
도 2a는 본 개시의 일 실시 예에 따른 장치(10)를 개략적으로 나타낸 블록도이다.
도 2a를 참조하면, 장치(10)는 프로세서(11), 저장 장치(12), 입출력 장치(13), 메모리(14), 통신 서브 시스템(15), 버스(16) 및 난수 생성 장치(17)를 포함할 수 있다. 장치(10)는 버스(16)를 통해 전기적으로 커플링될 수 있는(또는, 서로 통신할 수 있는) 하드웨어 요소(element)들을 포함할 수 있다. 즉, 프로세서(11)는 하드웨어 요소들을 포함할 수 있으며, 하드웨어 요소들은 하나 또는 그 초과의 범용 프로세서들 및/또는 하나 또는 그 이상의 특수-목적 프로세서(예를 들면, 디지털 신호 프로세싱 칩들, 그래픽 가속 프로세서들 등)을 포함할 수 있다. 입출력 장치(13)는 프로세서(11)에 의해 처리될 예정이거나, 처리될 데이터를 입출력할 수 있다.
저장 장치(12)는 로컬 및/또는 네트워크 액세스 가능한 저장소를 제한 없이 포함할 수 있다. 예를 들면, 저장 장치(12)는 디스크 드라이브, 드라이브 어레이, 광학 저장 디바이스, 고체-상태 저장 디바이스 등을 포함할 수 있다. 저장 장치(12)는 프로그램밍이 가능하거나, 플래시-업데이트가 가능할 수 있으며, 다양한 파일 시스템들, 데이터 베이스 구조 등이 적용될 수 있도록 구현될 수 있다.
통신 서브 시스템(15)은 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 장치, 무선 통신 장치 및/또는 칩셋(예를 들면, 블루투스 장치, 802.11 장치, Wi-Fi 장치, WiMax 장치, 셀룰러 통신 장치 등)등을 제한 없이 포함할 수 있다. 통신 서브 시스템(15)은 본 발명의 일 실시 예에 따라 생성된 전자 서명 관련 데이터가 네트워크, 다른 컴퓨터 시스템들/장치들 및/또는 임의의 다른 장치들과 교환(또는, 전송)되도록 허용할 수 있다.
메모리(14)는 동작 시스템(14a)을 포함하고, 장치 드라이버들, 실행 가능한 라이브러리들, 및/또는 프로그램 코드들을 구비하는 어플리케이션(14b)을 포함할 수 있다. 동작 시스템(14a) 및 어플리케이션(14b)은 소프트웨어 요소로서 코드 및/또는 명령들을 컴퓨터(또는, 컴퓨터 내의 프로세서)에 의해 실행함으로써 구현될 수 있다.
본 개시의 일 실시 예에 따른 난수 생성 장치(17)는 보안을 위하여 전자 데이터(또는, 서명 대상 데이터)에 대한 전자 서명을 생성하기 위하여 다양한 연산 동작들을 수행하는 장치로서, 소정의 전자 서명 알고리즘 방식을 기반으로 전자 데이터에 대한 전자 서명을 생성할 수 있다. 난수 생성 장치(17)는 난수를 생성하기 위해 링 오실레이터(18)를 포함할 수 있다.
링 오실레이터(18)는 복수개의 인버터를 체인 형태로 연결하여 연결된 인버터의 개수만큼의 딜레이를 갖고 복수개의 인버터를 거쳐 입력이 반전되어 출력되며 일정 주기를 갖는 펄스를 생성할 수 있다. 링 오실레이터(18)에 포함된 인버터는 PMOS와 NMOS의 크기 비율이 다르게 구성된 스큐 인버터일 수 있다. 링 오실레이터(18) 기반의 진 난수 생성기술은 일반적으로 링 오실레이터(18)를 랜덤소스로 활용하여 링 오실레이터(18)의 출력을 디플립플롭(D Flip-Flop)의 입력 또는 클록 신호로 넣어주는 방법을 통해 샘플링하여 난수를 생성할 수 있다. 링 오실레이터(18) 기반의 난수 생성기술은 링 오실레이터(18) 출력이 잡음의 영향을 받아 클록의 값이 주기보다 빠르게 또는 느리게 변화하여 출력이 불규칙해지는 것이 핵심으로, 지터가 발생하는 정도와 빈도에 따라 난수의 질이 달라질 수 있다.
일 실시 예로, 난수 생성 장치(17)는 붕괴 카운트를 이용하여 난수를 생성할 수 있다. 링 오실레이터(18)에서 생성된 펄스 신호는 링 오실레이터(18)에 포함된 스큐 인버터의 미스매치로 인하여 펄스 신호의 상승 엣지와 하강 엣지의 타이밍이 점점 달라지다가 발진이 멈추게 된다. 링 오실레이터(18)의 발진이 멈출 때까지의 펄스 개수가 붕괴 카운트일 수 있다. 난수 생성 장치(17)는 붕괴 카운트가 홀수인지 짝수인지에 따라 랜덤 비트를 생성할 수 있다.
일 실시 예로, 난수 생성 장치(17)는 하드웨어 로직으로 구현되거나, 논리 합성에 의해서 설계되는 로직 블록을 포함할 수 있다. 또한, 난수 생성 장치(17)는 저장 장치(12)와 같은 비-일시적 컴퓨터 판독 가능 저장 매체 상에 저장된 코드의 세트 및/또는 명령들이 난수 생성 장치(17)에 의해 실행됨으로써 구현되는 소프트웨어 블록을 포함할 수 있다. 다른 실시 예들에서, 저장 매체는 코드의 세트 및/또는 명령들이 저장된 범용 컴퓨터를 프로그래밍 또는 적응시키는데 사용될 수 있도록, 컴퓨터 장치와 분리되는 장치(예를 들어, 콤팩트 디스크, USB(Universal Serial Bus) 등과 같은 탈착 가능한 매체) 또는 설치 패키치로 제공될 수 있다. 이들 코드의 세트 및/또는 명령들은, 난수 생성 장치(17)에 의해 실행 가능한 실행 가능 코드의 형태를 취할 수 있고, 난수 생성 장치(17) 상에서의 편집(compilation) 및/또는 설치 시에, 실행 가능 코드의 형태를 취하는 소스 및/또는 설치 가능한 코드의 형태를 취할 수 있다.
도 2b는 본 개시의 일 실시 예에 따른 난수 발생 장치를 나타낸 블록도이다.
난수 생성 장치(100)는 링 오실레이터(110), 카운터(120), 비교기(130), 랜덤 데이터 생성기(140), 캘리브레이터(150) 및 컨트롤러(160)을 포함할 수 있다.
링 오실레이터(110)는 복수개의 인버터를 포함할 수 있다. 링 오실레이터(110)는 복수개의 인버터를 체인 형태로 연결하여 연결된 인버터의 개수만큼의 딜레이를 갖고 복수개의 인버터를 거쳐 입력이 반전되어 출력되며 일정 주기를 갖는 펄스(PLS)를 생성할 수 있다. 링 오실레이터(110)는 반전 회로(112)를 포함할 수 있다. 반전 회로(112)는 멀티플렉서(미도시) 및 위상 반전기(미도시)를 포함할 수 있다. 링 오실레이터(110)는 반전 회로(112)에 포함된 멀티플렉서를 통해 펄스(PLS)를 생성시 위상 반전기를 이용할지 여부를 결정할 수 있다. 예시적 실시예로, 링 오실레이터(110)는 제1 모드에서는 복수개의 인터버가 연결된 체인을 이용하여 펄스(PLS)를 생성하고, 제2 모드에서는 상기 체인에 위상 반전기(미도시)가 추가된 구성을 이용하여 펄스(PLS)를 생성할 수 있다. 예시적 실시예로, 위상 반전기는 적어도 하나의 인버터를 포함할 수 있다.
카운터(120)는 링 오실레이터(110)에서 발생된 펄스(PLS)의 개수(CNT)를 셀 수 있다. 카운터(120)는 복수의 플립 플롭을 포함할 수 있고, 카운터(120)가 카운팅할 펄스(PLS) 개수(CNT)의 범위에 따라 포함하는 플립 플롭의 개수를 달리할 수 있다. 붕괴 카운트는 오실레이터(110)에서 생성된 펄스(PLS)의 개수(CNT)일 수 있다.
비교기(130)는 카운터(120)에서 생성된 붕괴 카운트가 적정 범위인지 판단할 수 있다. 비교기(130)는 상한값 및 하한값을 기준으로 입력값이 유효 범위인지 판단하고 유효 플래그(VFG)를 출력할 수 있다. 예를 들어, 비교기(130)는 붕괴 카운트가 기설정된 상한값 및 하한값 사이에 있는 경우 유효 플래그(VFG)를 로직 하이(logic high)로 출력하고, 그렇지 않으면 유효 플래그(VFG)를 로직 로우(logic low)로 출력할 수 있다.
랜덤 데이터 생성기(140)는 카운터(120)에서 생성된 붕괴 카운트를 기초로 랜덤 비트를 생성할 수 있다. 랜덤 데이터 생성기(140)는 복수의 랜덤 비트를 생성하여 출력할 수 있다. 랜덤 데이터 생성기(140)에서 제공하는 랜덤 데이터 출력(ROUT)은 붕괴 카운트 또는 랜덤 비트를 포함할 수 있다.
캘리브레이터(150)는 레퍼런스 주파수(RFQ)를 입력으로 생성된 펄스(PLS)의 주파수와 비교하여 링 오실레이터(110)에서 생성되는 펄스(PLS)의 주파수를 재조절할 수 있다. 예를 들어, 캘리브레이터(150)는 기설정된 기간동안 링 오실레이터(110)에서 발생된 펄스(PLS)의 개수(CNT)와 레퍼런스 주파수(RFQ)의 펄스의 개수를 비교할 수 있다. 캘리브레이터(150)는 링 오실레이터(110)에서 생성되는 펄스(PLS)의 주파수를 재조절하기 위한 캘리브레이션 신호(CAL)를 생성할 수 있다.
컨트롤러(160)는 난수 생성 장치(100)를 제어하기 위해 제어 신호(CTRL) 및 클럭 신호를 생성할 수 있다. 컨트롤러(160)는 제어 신호(CTRL) 및 클럭 신호를 링 오실레이터(110)에 제공할 수 있고, 링 오실레이터(110)는 수신된 제어신호(CTRL) 및 클럭 신호에 기초하여 일정 주기를 갖는 펄스(PLS)를 생성할 수 있다. 컨트롤러(160)는 캘리브레이터(150)에서 생성된 캘리브레이션 신호(CAL)를 수신하여, 링 오실레이터(110)에 제공할 제어 신호(CTRL)를 생성할 수 있다. 컨트롤러(160)는 비교기(130)에서 붕괴 카운트가 적정 범위인지 판단하기 위한 상한값 또는 하한값을 설정할 수 있다.
도 3a는 본 개시의 일 실시 예에 따른 링 오실레이터를 구조를 나타내는 도면이고, 도 3b는 링 오실레이터에서 발생하는 신호를 설명하기 위한 도면이다.
도 3a를 참조하면 링 오실레이터(200)는 제1 NAND 게이트(210), 제2 NAND 게이트(211), 제1 인버터(220), 제2 인버터(221), 제3 인버터(222), 제4 인버터(223), 제5 인버터(224), 제6 인버터(225)를 포함할 수 있다. 링 오실레이터(200)는 제1 인버터(220)와 제3 인버터(222) 사이에 복수개의 인버터를 더 포함할 수 있고, 제2 인버터(221)와 제4 인버터(223) 사이에 복수개의 인버터를 더 포함할 수 있다. 링 오실레이터(200)의 제1 인버터(220)에서 제3 인버터(222)까지 구성된 인버터 체인은 짝수개의 인버터를 포함할 수 있고, 제1 인버터(220)의 입력 신호는 복수개의 인버터를 거치면서 지연되어 제3 인버터(222)에서 반전되어 출력될 수 있다. 링 오실레이터(200)에 포함된 인버터는 스큐 인버터일 수 있고, 제1 인버터(220)에 입력되는 클럭 신호는 상승 엣지와 하강 엣지가 순차적으로 다르게 지연되어 제3 인버터(222)에서 반전되어 출력될 수 있다. 제3 인버터(222)에서 출력되는 신호(S3)는 제2 NAND 게이트(211)에 입력 신호로 제공될 수 있다.
링 오실레이터(200)의 제2 인버터(221)에서 제4 인버터(223)까지 구성된 인버터 체인은 짝수개의 인버터를 포함할 수 있고, 제2 인버터(221)의 입력 신호는 복수개의 인버터를 거치면서 지연되어 제4 인버터(223)에서 반전되어 출력될 수 있다. 링 오실레이터(200)에 포함된 인버터는 스큐 인버터일 수 있고, 제2 인버터(221)에 입력되는 신호는 상승 엣지와 하강 엣지가 순차적으로 다르게 지연되어 제4 인버터(223)에서 반전되어 출력될 수 있다. 제4 인버터(223)에서 출력되는 신호(S4)는 제1 NAND 게이트(210)에 입력 신호로 제공될 수 있다.
예를 들어, 링 오실레이터(200)의 제3 인버터(222)에서 출력되는 신호(S3)는 제5 인버터(224)에서 반전되어 외부에 펄스 신호(S5)로 제공될 수 있다. 링 오실레이터(200)의 제6 인버터(225)에서 출력되는 신호는 다른 카운터 또는 다른 장치로 연결될 수 있다.
링 오실레이터(200)에서 생성하는 펄스 신호(S5)는 카운터(250)에 제공될 수 있다. 카운터(250)는 링 오실레이터(200)에서 발생된 펄스의 개수를 셀 수 있다. 카운터(250)는 복수의 플립 플롭(252)을 포함할 수 있고, 카운터(250)가 셀 펄스 개수의 범위에 따라 사용하는 플립 플롭(252)의 개수를 달리할 수 있다. 붕괴 카운트는 카운터(250)에서 생성된 펄스의 개수일 수 있다.
예를 들어 도3a 및 도3b를 참조하면, 링 오실레이터(200)는 입력 신호(START)로 클락 신호(CLK)를 수신할 수 있다. 링 오실레이터(200)에서 입력된 클락 신호(CLK)의 첫번째 주기(D2)가 입력신호로 활용될 수 있다. 예를 들어, 클락 신호(CLK)는 제1 시점(a01)에서 로직 하이에서 로직 로우로 하강하고, 제2 시점(a02)에 로직 로우에서 로직 하이로 상승하며, 링 오실레이터(200)는 제2 시점(a02)에 동작을 시작할 수 있다.
제1 NAND 게이트(210)의 제1 입력(S1)은 링 오실레이터(200)의 동작을 시작하기 전 로직 로우에서 링 오실레이터(200)의 동작을 시작하면서 로직 하이로 변경될 수 있다. 제1 NAND 게이트(210)의 제2 입력(S4)은 링 오실레이터(200)의 동작을 시작하기전 로직 하이를 유지하고, 링 오실레이터(200)의 동작을 시작한 이후 로직 로우 및 로직 하이로 발진할 수 있다. 예를 들어, 제1 NAND 게이트(210)의 제1 입력(S1)은 링 오실레이터(200)의 동작이 시작된 이후 로직 하이를 유지할 수 있고, 제1 NAND 게이트(210)의 제2 입력(S4)은 링 오실레이터(200)의 동작이 시작되면 제2 시점(a02)에 로직 하이에서 로직 로우로 변경되고, 제2 NAND 게이트(211)에서 출력된 신호가 제4 인버터(223)을 거치면 제3 시점(a03)에 로직 로우에서 로직 하이로 변경될 수 있다.
제2 NAND 게이트(211)의 제1 입력(S2)은 링 오실레이터(200)의 동작을 시작하기 전 로직 로우에서 링 오실레이터(200)의 동작을 시작하면서 로직 하이로 변경될 수 있다 제2 NAND 게이트(211)의 제2 입력(S3)은 링 오실레이터(200)의 동작을 시작하기전 로직 하이를 유지하고, 링 오실레이터(200)의 동작을 시작한 이후 로직 로우 및 로직 하이로 발진할 수 있다. 예를 들어, 제2 NAND 게이트(211)의 제1 입력(S2)은 링 오실레이터(200)의 동작이 시작된 이후 로직 하이를 유지할 수 있고, 제2 NAND 게이트(211)의 제2 입력(S3)은 링 오실레이터(200)의 동작이 시작되면 제2 시점(a02)에 로직 하이에서 로직 로우로 변경되고, 제2 NAND 게이트(211)에서 출력된 신호가 제4 인버터(223)을 거치면 제3 시점(a03)에 로직 로우에서 로직 하이로 변경될 수 있다.
제1 NAND 게이트(210)의 제2 입력(S4)과 제2 NAND 게이트(211)의 제2 입력(S3)은 오실레이터(200)의 동작 초기에는 유사한 주기로 발진하지만, 오실레이터(200)에 포함된 스큐 인버터의 미스매치에 의해 듀티 비율이 달라질 수 있다. 예를 들어, 제2 NAND 게이트(211)의 제2 입력(S3)은 초기에는 로직 하이와 로직 로우가 1:1 비율을 유지하지만, 발진중 로직 하이 비율이 로직 로우보다 점차적으로 감소한다. 제2 NAND 게이트(211)의 제2 입력(S3)은 제23 시점(a23)에서 제24 시점(a24)까지의 로직 하이 기간이, 제21 시점(a21)에서 제22 시점(a22)까지 로직 하이 기간보다 짧아진다. 링 오실레이터(200)가 발진을 지속하면 제2 NAND 게이트(211)의 제2 입력(S3)은 결국 로직 로우로 고정되면서 발진이 종료된다.
예를 들어, 제1 NAND 게이트(210)의 제2 입력(S4)은 초기에는 로직 하이와 로직 로우가 1:1 비율을 유지하지만, 발진중 로직 로우 비율이 로직 하이보다 점차적으로 감소한다. 제1 NAND 게이트(210)의 제2 입력(S4)은 제13 시점(a13)에서 제14 시점(a14)까지의 로직 로우 기간이, 제11 시점(a11)에서 제12 시점(a12)까지 로직 로우 기간보다 짧아진다. 링 오실레이터(200)가 발진을 지속하면 제1 NAND 게이트(210)의 제2 입력(S4)은 결국 로직 하이로 고정되면서 발진이 종료된다.
예를 들어, 카운터(250)는 제2 NAND 게이트(211)의 제2 입력(S3)이 발진하는 동안 펄스 수를 측정할 수 있다. 카운터(250)가 측정하는 펄스는 제2 NAND 게이트(211)의 제2 입력(S3)을 반전시킨 출력 신호(S5)일 수 있다. 난수 발생 장치는 카운터(250)가 측정한 펄스 수가 홀수인지 짝수인지에 따라 랜덤 비트를 생성할 수 있다.
도 4는 본 개시의 일 실시 예에 따른 난수 발생 장치를 설명하기 위한 도면이다.
링 오실레이터(300)는 복수개의 인버터를 포함하면서 인버터 체인을 구성할 수 있고, 반전 선택 회로(310)를 더 포함할 수 있다.
반전 선택 회로(310)는 위상 반전기(312), 버퍼(314) 및 제1 멀티플렉서(316)를 포함할 수 있다. 위상 반전기(312)는 인버터 또는 스큐 인버터일 수 있다. 반전 선택 회로(310)는 링 오실레이터(300)의 주파수를 측정하기 위한 제1 동작 모드에서 멀티플렉서(316)를 통해 위상 반전기(312)를 선택하고, 난수 발생을 위한 제2 동작 모드에서 멀티플렉서(316)를 통해 버퍼(314)를 선택할 수 있다. 반전 선택 회로(310)는 제1 동작 모드에서 제1 신호(P1)를 반전시켜 제2 신호(P2)로 제공할 수 있다. 반전 선택 회로(310)는 제2 동작 모드에서 제1 신호(P1)를 그대로 제2 신호(P2)로 제공할 수 있다. 제1 동작 모드에서는 링 오실레이터(300)의 주파수를 측정하기 위해 출력 신호(PLS)가 계속 발진할 수 있다.
링 오실레이터(300)는 인버터 또는 인버터 선택 모듈(320)을 포함할 수 있다. 인버터 선택 모듈(320)은 복수개의 스큐 인버터와 제2 멀티플렉서(326)을 포함할 수 있다. 예를 들어, 제1 스큐 인버터(322)와 제2 스큐 인버터(324)는 PMOS와 NMOS의 크기 비율이 다르게 구성되고, 라이징 엣지의 지연 시간과 폴링 엣지의 지연시간이 다른 스큐 인버터일 수 있다. 제2 멀티플렉서(326)는 붕괴 카운트 또는 붕괴 카운트의 산포를 조절하기 위해 복수개의 스큐 인버터 중 하나를 선택할 수 있다. 링 오실레이터(300)는 붕괴 카운트 또는 붕괴 카운트의 산포를 조절하기 위해 인버터를 모두 인버터 선택 모듈(320)의 형태로 구성할 수 있다. 예를 들어, 붕괴 카운트 또는 붕괴 카운트의 산포가 기설정된 범위를 벗어나면 링 오실레이터(300)는 제2 멀티플렉서(326)를 이용하여 제1 스큐 인버터(322) 대신 제2 스큐 인버터(324)를 선택할 수 있다.
링 오실레이터(300)는 출력 신호(PLS)의 주파수를 조절하기 위해 제3 멀티플렉서(330)를 포함할 수 있다. 제3 멀티플렉서(330)는 링 오실레이터(300)에 포함된 제1 인버터 선택 모듈 출력(P3), 제2 인버터 선택 모듈 출력(P4) 또는 제n 인버터 선택 모듈 출력(Pn) 중 어느 하나를 선택해서 출력 신호(PLS)로 내보낼 수 있다. 링 오실레이터(300)는 출력 신호(PLS)의 주파수를 조절하기 위해 별도의 기준 클럭과 출력 신호(PLS)를 비교할 수 있다. 링 오실레이터(300)의 제어는 난수 발생 장치에 포함된 컨트롤러 또는 제어 모듈에 의해 이루어 질 수 있다.
도 5는 본 개시의 일 실시 예에 따른 난수 발생 장치를 설명하기 위한 도면이다.
난수 발생 장치는 링 오실레이터의 출력 신호를 처리하기 위해 카운터(410), 비교기(420), 랜덤 데이터 생성기(430), 캘리브레이터(440)를 포함할 수 있다.
카운터(410)는 링 오실레이터에서 발생된 펄스(PLS)의 개수(CNT)를 셀 수 있다. 카운터(410)는 복수의 플립 플롭을 포함할 수 있고, 카운터(410)가 셀 펄스(PLS) 개수(CNT)의 범위에 따라 포함하는 플립 플롭의 개수를 달리할 수 있다. 붕괴 카운트는 카운터(410)에서 생성된 펄스(PLS)의 개수(CNT)일 수 있다.
비교기(420)는 카운터(410)에서 생성된 붕괴 카운트가 적정 범위인지 판단할 수 있다. 비교기(420)는 상한값(UL) 및 하한값(LL)을 기준으로 입력값이 유효 범위인지 판단하고 유효 플래그(VFG)를 출력할 수 있다. 예를 들어, 비교기(420)는 붕괴 카운트가 기설정된 상한값(UL) 및 하한값(LL) 사이에 있는 경우 유효 플래그(VFG)를 로직 하이로 출력하고, 그렇지 않으면 유효 플래그(VFG)를 로직 로우로 출력할 수 있다.
랜덤 데이터 생성기(430)는 카운터(410)에서 생성된 붕괴 카운트를 기초로 랜덤 비트를 생성할 수 있다. 랜덤 데이터 생성기(430)는 복수의 랜덤 비트를 생성하여 출력할 수 있다. 랜덤 데이터 생성기(430)에서 제공하는 랜덤 데이터 출력(ROUT)은 붕괴 카운트 또는 랜덤 비트를 포함할 수 있다.
캘리브레이터(440)는 레퍼런스 클락(Reference CLK)를 입력으로 링 오실레이터에서 생성된 펄스(PLS)의 주파수와 비교하여 링 오실레이터에서 생성되는 펄스(PLS)의 주파수를 재조절할 수 있다. 캘리브레이터(440)는 링 오실레이터에서 생성되는 펄스(PLS)의 주파수를 재조절하기 위한 캘리브레이션 신호(CAL)를 생성할 수 있다.
도 6은 본 개시의 일 실시 예에 따른 난수 발생 장치에서 생성된 붕괴 카운트를 설명하기 위한 도면이다.
난수 발생 장치에서 생성되는 붕괴 카운트가 클수록 랜덤 성능도 높아질 수 있다. 도 6을 참조하면 붕괴 카운트가 커질수록 붕괴 카운트의 산포가 커지기 때문에 홀수 또는 짝수 중 어떤 것이 나올지에 대한 엔트로피가 커지기 때문이다. 도 6의 그래프에서 X축은 붕괴 카운트, Y축은 발생 빈도수를 나타낸다. 예를 들어, 난수 발생 장치에서 생성되는 제1 붕괴 카운트 산포(XA)는 평균 붕괴 카운트가 100이고 붕괴 카운트의 산포가 작다. 난수 발생 장치에서 생성되는 제2 붕괴 카운트 산포(XB)는 평균 붕괴 카운트가 200이고 붕괴 카운트의 산포가 제1 붕괴 카운트 산포(XA)보다 크다. 난수 발생 장치에서 생성되는 제3 붕괴 카운트 산포(XC)는 평균 붕괴 카운트가 400이고 붕괴 카운트의 산포가 제2 붕괴 카운트 산포(XB)보다 크다.
다만 붕괴 카운트가 커지면, 난수 발생 장치는 하나의 랜덤 비트를 생성하는데 소요되는 시간이 길어지고, 따라서 랜덤 성능은 높아지지만 랜덤 비트를 생성하는 속도인 비트 레이트 성능은 저하될 수 있다. 따라서 난수 발생 장치의 랜덤 성능과 비트레이트 성능을 최적화 하기 위해서 링 오실레이터의 출력 신호 주파수, 붕괴 카운트를 적절하게 캘리브레이션 할 필요가 있다.
도 7은 본 개시의 일 실시 예에 따른 난수 발생 장치에서 생성된 붕괴 카운트의 적정 범위를 설명하기 위한 도면이다.
난수 발생 장치의 랜덤 성능과 비트레이트 성능을 최적화 하기 위한 붕괴 카운트의 범위는 초기 동작에 대응되는 제1 붕괴 카운트 범위(MODE1 RANGE)와 링 오실레이터의 난수 발생 동작에 대응되는 제2 붕괴 카운트 범위(MODE2 RANGE)를 분리해서 관리할 수 있다. 예를 들어, 난수 발생 장치는 초기에 링오실레이터를 트림하는 경우 엄격한 범위인 제1 붕괴 카운트 범위(MODE1 RANGE)를 기준으로 트림을 진행하고, 난수 발생 도중에는 랜덤 성능과 비트 레이트 성능이 보장되는 한 넓은 범위인 제2 붕괴 카운트 범위(MODE2 RANGE)를 기준으로 트림을 진행하여, 동작 중 불필요한 재트림 횟수를 줄일 수 있다. 제1 붕괴 카운트 범위(MODE1 RANGE)의 상한값(UL1)은 제2 붕괴 카운트 범위(MODE2 RANGE)의 상한값(UL2)보다 작고, 제1 붕괴 카운트 범위(MODE1 RANGE)의 하한값(LL1)은 제2 붕괴 카운트 범위(MODE2 RANGE)의 하한값(LL2)보다 클 수 있다.
도 8은 본 개시의 일 실시 예에 따른 난수 발생 장치의 동작을 설명하기 위한 순서도이다.
난수 발생 장치는 난수 발생을 위한 적정 주파수로 동작하기 위해 링 오실레이터 주파수 측정 모드인 제1 동작 모드로 동작할 수 있다(S110). 난수 발생 장치는 제1 동작 모드로 동작하기 위해 위상 반전기가 포함된 반전 선택 회로를 통해 신호를 반전시켜 출력할 수 있다. 난수 발생 장치는 신호를 반전 시키기 위해 멀티플렉서를 통해 위상 반전기를 선택할 수 있다. 난수 발생 장치가 위상 반전기를 선택하면, 링 오실레이터의 인버터 체인에 포함된 인버터의 개수가 짝수개에서 홀수개로 바뀌고 무한 발진을 하게될 수 있다.
난수 발생 장치는 측정된 링 오실레이터 주파수가 기준 범위인지 판단할 수 있다(S120). 난수 발생 장치는 무한 발진하는 링 오실레이터의 펄스 신호와, 레퍼런스 클럭을 비교하여 링 오실레이터에서 발생하는 펄스 신호의 주파수를 조절할 수 있다.
난수 발생 장치는 측정된 링 오실레이터 주파수가 기준 범위를 벗어나는 경우, 링 오실레이터 주파수 트림을 수행할 수 있다(S122).
난수 발생 장치는 측정된 링 오실레이터 주파수가 기준 범위를 만족시키는 경우 난수 발생을 위한 제2 동작 모드로 링 오실레이터를 동작시킬 수 있다(S130). 난수 발생 장치는 멀티플렉서를 통해 제 1 동작 모드에서 선택한 위상 반전기 대신 버퍼를 선택할 수 있다. 링 오실레이터의 인버터 체인에 포함된 인버터의 개수는 홀수개에서 짝수개로 바뀌고 난수 발생을 위한 펄스 신호를 생성할 수 있다.
난수 발생 장치는 생성된 붕괴 카운트가 링 오실레이터의 초기 동작에 대응되는 제1 붕괴 카운트 범위 내인지 판단할 수 있다(S140). 난수 발생 장치의 랜덤 성능과 비트레이트 성능을 최적화 하기 위한 붕괴 카운트의 범위는 초기 동작에 대응되는 제1 붕괴 카운트 범위와 링 오실레이터의 난수 발생 동작에 대응되는 제2 붕괴 카운트 범위를 분리해서 관리할 수 있다. 예를 들어, 난수 발생 장치는 초기에 링오실레이터를 트림하는 경우 엄격한 범위인 제1 붕괴 카운트 범위를 기준으로 트림을 진행하고, 난수 발생 도중에는 랜덤 성능과 비트 레이트 성능이 보장되는 한 넓은 범위인 제2 붕괴 카운트 범위를 기준으로 트림을 진행하여, 동작 중 불필요한 재트림 횟수를 줄일 수 있다.
난수 발생 장치는 생성된 붕괴 카운트가 제1 붕괴 카운트 범위를 벗어나는 경우 붕괴 카운트 트림을 수행할 수 있다(S142). 난수 발생 장치는 붕괴 카운트 트림을 수행하기 위해 난수 발생 장치에 포함된 복수의 스큐 인버터 중 적어도 하나를 멀티플렉서를 통해 선택할 수 있다.
난수 발생 장치는 생성된 붕괴 카운트가 제1 붕괴 카운트 범위를 만족하는 경우 트림을 확정할 수 있다(S150).
난수 발생 장치는 랜덤 데이터를 생성할 수 있다(S160). 난수 발생 장치는 붕괴 카운트를 기초로 랜덤 비트를 생성할 수 있다.
난수 발생 장치는 랜덤 데이터의 추가 생성이 필요한지 판단할 수 있다(S170). 난수 발생 장치는 링 오실레이터에서 생성된 붕괴 카운트에 기초하여 랜덤 비트를 생성할 수 있으며, 필요한 난수의 크기에 따라 복수의 랜덤 비트가 필요한 경우 랜덤 데이터의 추가 생생이 필요하다고 판단할 수 있다.
난수 발생 장치는 랜덤 데이터의 추가 생성이 필요한 경우 링 오실레이터 주파수가 기준 범위 내인지 다시 판단할 수 있다(S172).
난수 발생 장치는 링 오실레이터 주파수가 기준 범위를 벗어나는 경우 링 오실레이터 주파수 측정 모드(S110)단계부터 동작을 다시 수행할 수 있다.
난수 발생 장치는 링 오실레이터 주파수가 기준 범위인 경우, 생성된 붕괴 카운트가 링 오실레이터의 난수 발생 동작에 대응되는 제2 붕괴 카운트 범위 내인지 판단할 수 있다(S174).
난수 발생 장치는 붕괴 카운트가 제2 붕괴 카운트 범위를 만족하면 바로 랜덤 데이터를 생성할 수 있다(S160). 난수 발생 장치는 붕괴 카운트가 제2 붕괴 카운트 범위를 벗어나면, 다시 붕괴 카운트 트림을 수행하기 위한 단계(S140)로 돌아갈 수 있다.
도 9는 본 개시의 일 실시 예에 따른 난수 발생 장치의 동작을 설명하기 위한 순서도이다.
난수 발생 장치는 난수 발생을 위한 적정 주파수로 동작하기 위해 링 오실레이터 주파수 측정 모드인 제1 동작 모드로 동작할 수 있다(S210). 난수 발생 장치는 제1 동작 모드로 동작하기 위해 위상 반전기가 포함된 반전 선택 회로를 통해 신호를 반전시켜 출력할 수 있다. 난수 발생 장치는 신호를 반전 시키기 위해 멀티플렉서를 통해 위상 반전기를 선택할 수 있다. 난수 발생 장치가 위상 반전기를 선택하면, 링 오실레이터의 인버터 체인에 포함된 인버터의 개수가 짝수개에서 홀수개로 바뀌고 무한 발진을 하게될 수 있다.
난수 발생 장치는 측정된 링 오실레이터 주파수가 기준 범위인지 판단할 수 있다(S220). 난수 발생 장치는 무한 발진하는 링 오실레이터의 펄스 신호와, 레퍼런스 클럭을 비교하여 링 오실레이터에서 발생하는 펄스 신호의 주파수를 조절할 수 있다.
난수 발생 장치는 측정된 링 오실레이터 주파수가 기준 범위를 벗어나는 경우, 링 오실레이터 주파수 트림을 수행할 수 있다(S222).
난수 발생 장치는 측정된 링 오실레이터 주파수가 기준 범위를 만족시키는 경우 난수 발생을 위한 제2 동작 모드로 링 오실레이터를 동작시킬 수 있다(S230). 난수 발생 장치는 멀티플렉서를 통해 제 1 동작 모드에서 선택한 위상 반전기 대신 버퍼를 선택할 수 있다. 링 오실레이터의 인버터 체인에 포함된 인버터의 개수는 홀수개에서 짝수개로 바뀌고 난수 발생을 위한 펄스 신호를 생성할 수 있다.
난수 발생 장치는 생성된 붕괴 카운트가 링 오실레이터의 초기 동작에 대응되는 제1 붕괴 카운트 범위 내인지 판단할 수 있다(S240). 난수 발생 장치의 랜덤 성능과 비트레이트 성능을 최적화 하기 위한 붕괴 카운트의 범위는 초기 동작에 대응되는 제1 붕괴 카운트 범위와 링 오실레이터의 난수 발생 동작에 대응되는 제2 붕괴 카운트 범위를 분리해서 관리할 수 있다. 예를 들어, 난수 발생 장치는 초기에 링오실레이터를 트림하는 경우 엄격한 범위인 제1 붕괴 카운트 범위를 기준으로 트림을 진행하고, 난수 발생 도중에는 랜덤 성능과 비트 레이트 성능이 보장되는 한 넓은 범위인 제2 붕괴 카운트 범위를 기준으로 트림을 진행하여, 동작 중 불필요한 재트림 횟수를 줄일 수 있다.
난수 발생 장치는 생성된 붕괴 카운트가 제1 붕괴 카운트 범위를 벗어나는 경우 붕괴 카운트 트림을 수행할 수 있다(S242). 난수 발생 장치는 붕괴 카운트 트림을 수행하기 위해 난수 발생 장치에 포함된 복수의 스큐 인버터 중 적어도 하나를 멀티플렉서를 통해 선택할 수 있다.
난수 발생 장치는 생성된 붕괴 카운트가 제1 붕괴 카운트 범위를 만족하는 경우 트림을 확정할 수 있다(S250).
난수 발생 장치는 랜덤 데이터를 생성할 수 있다(S260). 난수 발생 장치는 붕괴 카운트를 기초로 랜덤 비트를 생성할 수 있다.
난수 발생 장치는 랜덤 데이터의 추가 생성이 필요한지 판단할 수 있다(S270). 난수 발생 장치는 링 오실레이터에서 생성된 붕괴 카운트에 기초하여 랜덤 비트를 생성할 수 있으며, 필요한 난수의 크기에 따라 복수의 랜덤 비트가 필요한 경우 랜덤 데이터의 추가 생생이 필요하다고 판단할 수 있다.
난수 발생 장치는 랜덤 데이터의 추가 생성이 필요한 경우, 생성된 붕괴 카운트가 링 오실레이터의 난수 발생 동작에 대응되는 제2 붕괴 카운트 범위 내인지 판단할 수 있다(S272).
난수 발생 장치는 붕괴 카운트가 제2 붕괴 카운트 범위를 만족하면 바로 랜덤 데이터를 생성할 수 있다(S260). 난수 발생 장치는 붕괴 카운트가 제2 붕괴 카운트 범위를 벗어나면, 다시 붕괴 카운트 트림을 수행하기 위한 단계(S240)로 돌아갈 수 있다.
도 10은 본 개시의 일 실시 예에 따른 난수 발생 장치에서 발생하는 신호를 설명하기 위한 도면이다.
도 10을 참조하면, 난수 발생 장치는 동작 초기에 링 오실레이터 주파수 측정 모드인 제1 동작 모드로 동작할 수 있다. 난수 발생 장치는 제1 동작 모드에서 주파수 트림 모드(FT-Mode)신호를 로직 하이로 유지하고, 오실레이터 주파수 트림 비트(OFTB)를 로직 하이로 유지할 수 있다.
난수 발생 장치는 제11 시점(t11)에서 스타트 신호(START)가 로직 로우에서 로직 하이로 변경되면 링 오실레이터의 발진을 시작할 수 있다. 난수 발생 장치는 링 오실레이터의 펄스 신호(Osc_Out)의 주파수를 측정하기 위해 기준 클락 신호(Reference CLK)를 수신할 수 있다.
난수 발생 장치는 제11 시점(t11)에서 제12 시점(t12)까지 링 오실레이터의 펄스 신호(Osc_Out)의 주파수를 측정할 수 있다. 난수 발생 장치는 카운터를 이용하여, 링 오실레이터의 펄스 신호(Osc_Out)의 카운트 값(OF_cnt)을 생성하면서, 동시에 기준 클락 신호(Reference CLK)의 카운트 값(Reference Clock Counter)을 생성할 수 있다. 난수 발생 장치는 생성된 링 오실레이터의 펄스 신호(Osc_Out)의 카운트 값(OF_cnt) 및 기준 클락 신호(Reference CLK)의 카운트 값(Reference Clock Counter)에 기초하여, 링 오실레이터의 펄스 신호(Osc_Out)의 주파수 트림 여부를 판단하고, 주파수 트림이 필요한 경우 주파수 트림 플래그(Frequency Trim Tim Flag)를 제12 시점(t12)에서 제13 시점(t13)까지 로직 하이로 출력할 수 있다.
난수 발생 장치는 주파수 트림 플래그(Frequency Trim Tim Flag) 값에 기초하여 제1 동작 모드를 유지하면서 제14 시점(t14)에서부터 다시 링 오실레이터 주파수 측정 및 트림을 반복할 수 있다.
도 11은 본 개시의 일 실시 예에 따른 난수 발생 장치에서 발생하는 신호를 설명하기 위한 도면이다.
도 11을 참조하면, 난수 발생 장치는 난수 발생을 위한 제2 동작 모드로 링 오실레이터를 동작시킬 수 있다. 난수 발생 장치는 제21 시점(t21)에서 스타트 신호(START)가 로직 로우에서 로직 하이로 변경되면 링 오실레이터의 발진을 시작할 수 있다. 제2 동작 모드에서 링 오실레이터의 펄스 신호(Osc_Out)는 일정 시간 발진 후 정지할 수 있다.
난수 발생 장치는 링 오실레이터의 펄스 신호(Osc_Out)의 펄스 수 또는 붕괴 카운트(Collapse Counter)를 측정할 수 있다. 난수 발생 장치는 발진이 종료되는 제22 시점(t22)에 측정된 붕괴 카운트(Collapse Counter)를 기초로 붕괴 카운트 범위를 만족하는지 판단할 수 있다. 예를 들어, 붕괴 카운트가 유효한 경우 제22 시점(t22)에서 2클락 이후인 제23 시점(t23)에 붕괴 카운트 범위 유효 플래그(Collapse Count Range Valid Flg)를 로직 하이로 출력할 수 있다.
난수 발생 장치는 제25 시점(t25)에서 다시 난수 발생 동작을 수행할 수 있다.
도 12는 본 개시의 일 실시 예에 따른 난수 발생 장치에서 발생하는 신호를 설명하기 위한 도면이다.
도 12를 참조하면, 난수 발생 장치는 난수 발생을 위한 제2 동작 모드로 링 오실레이터를 동작시킬 수 있다. 난수 발생 장치는 제31 시점(t31)에서 스타트 신호(START)가 로직 로우에서 로직 하이로 변경되면 링 오실레이터의 발진을 시작할 수 있다. 제2 동작 모드에서 링 오실레이터의 펄스 신호(Osc_Out)는 일정 시간 발진 후 정지할 수 있다.
난수 발생 장치는 링 오실레이터의 펄스 신호(Osc_Out)의 펄스 수 또는 붕괴 카운트(Collapse Counter)를 측정할 수 있다. 난수 발생 장치는 발진이 종료되는 제32 시점(t32)에 측정된 붕괴 카운트(Collapse Counter)를 기초로 붕괴 카운트 범위를 만족하는지 판단할 수 있다. 예를 들어, 붕괴 카운트가 기설정된 붕괴 카운트 범위를 벗어나는 경우 제32 시점(t32)에서 2클락 이후인 제33 시점(t33)에 붕괴 카운트 범위 유효 플래그(Collapse Count Range Valid Flg)신호로 붕괴 카운트 범위 판단 결과를 출력할 수 있다. 난수 발생 장치는 붕괴 트림 비트(Collapse Trim Bit)를 변경하고, 붕괴 카운트 트림 동작을 수행할 수 있다.
도 13은 본 개시의 일 실시 예에 따른 전자 서명 서비스 시스템(600)을 나타낸 도면이다.
도 13을 참조하면, 실시예에 따른 전자 서명 서비스 시스템(600)은 사용자 단말(620)과, 사용자의 전자 서명 생성을 위한 데이터를 저장하고 사용자에게 전자 서명 서비스를 제공하는 전자 서명 서버(610), 전자 서명을 이용하는 전자 서명 이용 서버(630) 및 전자 서명을 인증하는 인증 서버(640)를 포함할 수 있다.
전자 서명 이용 서버(630)는 전자 서명을 이용하는 기관에 의해 운영되는 서버를 의미한다. 전자 서명 이용 서버(630)는 은행 서버, 공공 기관에 의해 운영되는 서버, 전자 상거래 서비스를 제공하는 서버 등을 포함할 수 있으며, 이에 제한되는 것은 아니다. 전자 서명 이용 서버(630)는 사용자의 인증이 필요한 전자 문서, 즉 서명 대상 문서를 발행할 수 있다. 전자 서명 이용 서버(630)는 상기 서명 대상 문서로부터 도출된 서명 대상 데이터를 사용자 단말(620)에 전송할 수 있다. 상기 서명 대상 데이터는 서명 대상 문서의 원문 데이터를 그대로 포함할 수도 있고, 서명 대상 문서의 원문 데이터를 암호화에 적절하도록 가공한 데이터를 포함할 수도 있다. 전자 서명 이용 서버(630)는 상기 서명 대상 데이터에 대한 전자 서명을 사용자 단말(620)에게 요청할 수 있다.
인증 서버(640)는 전자 서명의 검증을 위한 인증서를 발행하고 관리하는 공인 인증 기관에 의해 운영되는 서버를 의미한다. 상기 공인 인증 기관의 예로는 금융결제원, 한국정보인증, 한국증권전산, 한국전자인증, 한국전산원, 한국무역정보통신 등이 있다.
사용자 단말(620)은 전자 서명의 권한을 가진 사용자가 사용하는 장치를 의미한다. 사용자 단말은 스마트 폰, 태블릿 PC, 랩톱 등을 포함할 수 있으나 이에 제한되는 것은 아니다. 사용자 단말(620)은 전자 서명 이용 서버(620) 및 전자 서명 서비스 서버(610)와 통신할 수 있는 통신 수단을 포함할 수 있다. 사용자 단말(620)은 전자 서명 이용 서버(630)로부터 서명 대상 데이터 및 서명 대상 데이터에 대한 전자 서명의 요청 수신할 수 있다.
사용자 단말(620)은 도 1 등에서 서술된 실시 예들에 따라 전자 서명을 생성할 때에 필요한 난수에 대하여 랜덤 성능과 비트 레이트 성능이 최적화된 난수 발생 장치를 통해, 단말(620)의 전자 서명 알고리즘 방식에서의 난수 조건에 부합하는 난수를 생성할 수 있다.
사용자 단말(620)은 전자 서명을 직접 생성하지 않고, 전자 서명 서비스 서버(610)에게 전자 서명을 생성해 줄 것을 요청할 수 있다. 필요한 경우, 사용자 단말(620)은 상기 서명 대상 데이터를 전자 서명이 용이한 포맷으로 가공한 후, 가공된 서명 대상 데이터에 대한 전자 서명의 요청을 전자 서명 서비스 서버(610)에게 전송할 수 있다. 이 때에, 전자 서명 서비스 서버(610)도 도 1 등에서 서술된 실시 예들에 따른 난수 생성 동작을 수행할 수 있다.
사용자 단말(620)은 전자 서명 서비스 서버(610)로부터 전자 서명을 수신하면, 전자 서명을 이용하여 전자 서명문을 생성할 수 있다. 전자 서명문은 전자 서명 이용 서버(630) 또는 인증 서버(640)에서 검증이 가능한 포맷으로 작성될 수 있다. 사용자 단말(620)은 생성한 전자 서명문을 전자 서명 이용 서버(630)에 전송할 수 있다.
도 14는 본 개시의 일 실시예에 따라 생성된 전자 서명을 통한 보안 검증을 수행하는 통신 기기의 예시들을 나타낸다. 구체적으로, 도 14는 WLAN을 이용하는 무선 통신 시스템에서 다양한 무선 통신 기기들이 상호 통신하는 예시를 나타낸다.
가정용 기기(721), 가전(722), 엔터테인먼트 기기(723) 및 AP(710)는 IoT(Internet of Things) 네트워크 시스템을 구성할 수 있다. 가정용 기기(721), 가전(722), 엔터테인먼트 기기(723) 및 AP(Access Point)(710) 각각은 본 개시의 일 실시예에 따른 난수 생성 동작을 수행하고, 이러한 난수를 이용하여 전자 서명을 생성할 수 있다. 각각 생성된 전자 서명을 통하여 IoT 네트워크 시스템을 구성하는 기기들(710, 721, 722, 723)간의 보안성을 강화할 수 다. 가정용 기기(721), 가전(722) 및 엔터테인먼트 기기(723)는 AP(710)와 무선 통신할 수 있고, 가정용 기기(721), 가전(722) 및 엔터테인먼트 기기(723)는 상호 무선 통신할 수도 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 적어도 하나의 인버터를 포함하는 인버터 체인으로 구성되어 출력 신호를 생성하는 링 오실레이터;
    상기 링 오실레이터의 동작 모드에 기초하여 상기 인버터 체인 입력단의 신호를 반전시키는 제1 위상 반전기를 제어하는 반전 선택 회로; 및
    제어 모듈;을 포함하고,
    상기 제어 모듈은 상기 링 오실레이터의 동작 모드가 상기 링 오실레이터의 주파수를 측정하기 위한 제1 동작 모드 또는 난수 발생을 위한 제2 동작 모드인지 판단하고, 상기 동작 모드가 제1 동작 모드인 경우 상기 반전 선택 회로가 상기 제1 위상 반전기를 선택하도록 동작하는 것을 특징으로 하는 난수 생성 장치.
  2. 제1항에 있어서,
    상기 반전 선택 회로는 제1 위상 반전기, 버퍼 및 제1 멀티플렉서를 포함하고,
    상기 제1 멀티플렉서는 상기 동작 모드에 따라 상기 제1 위상 반전기 또는 상기 버퍼의 신호를 선택하는 것을 특징으로 하는 난수 생성 장치.
  3. 제1항에 있어서,
    상기 인버터는 PMOS와 NMOS의 크기 비율이 다르게 구성된 스큐(skewed) 인버터인 것을 특징으로 하는 난수 생성 장치.
  4. 제1항에 있어서,
    상기 제어 모듈은 상기 인버터간의 미스매치로 인해 상기 링 오실레이터의 출력 신호가 일정 기간동안 발진 후 정지하는 동안의 펄스 개수를 카운트하여 붕괴 카운트(collapse count)를 생성하는 것을 특징으로 하는 난수 생성 장치.
  5. 제4항에 있어서,
    상기 링 오실레이터는 상기 붕괴 카운트의 범위를 조절하기 위한 제2 멀티플렉서를 포함하고,
    상기 제2 멀티플렉서는 상승 지연 시간과 하락 지연 시간이 다른 복수의 인버터 중에서 상기 인버터 체인을 구성하는 인버터를 선택하는 것을 특징으로 하는 난수 생성 장치.
  6. 제4항에 있어서,
    상기 제어 모듈은 상기 링 오실레이터의 초기 동작에 대응되는 제1 붕괴 카운트 범위 및 상기 링 오실레이터의 난수 발생 동작에 대응되는 제2 붕괴 카운트 범위에 기초하여 상기 붕괴 카운트의 범위를 캘리브레이션하는 것을 특징으로 하는 난수 생성 장치.
  7. 제4항에 있어서,
    상기 붕괴 카운트를 캘리브레이션 하기 위해 기설정된 붕괴 카운트 범위 상한값 및 하한값과 상기 붕괴 카운트를 비교하는 비교기를 더 포함하는 것을 특징으로 하는 난수 생성 장치.
  8. 제4항에 있어서,
    상기 제어 모듈은 상기 붕괴 카운트가 기설정된 범위를 벗어나는 경우 상기 붕괴 카운트를 캘리브레이션하는 것을 특징으로 하는 난수 생성 장치.
  9. 제6항에 있어서,
    상기 제2 붕괴 카운트 범위의 하한값은 상기 제1 붕괴 카운트 범위의 하한값보다 작고, 상기 제2 붕괴 카운트 범위의 상한값은 상기 제1 붕괴 카운트 범위의 상한값보다 큰것을 특징으로 하는 난수 생성 장치.
  10. 제1항에 있어서,
    상기 제1 동작 모드에서 상기 링 오실레이터의 출력 신호는 발진을 유지하고,
    상기 제어 모듈은 기준 클럭 신호를 수신하고, 상기 기준 클럭 신호와 상기 출력 신호를 비교하여 상기 출력 신호의 주파수를 조절하는 것을 특징으로 하는 난수 생성 장치.
  11. 제1항에 있어서,
    상기 링 오실레이터는 상기 출력 신호의 주파수를 조절하기 위한 제3 멀티플렉서를 포함하고,
    상기 제3 멀티플렉서는 상기 인버터 체인을 구성하는 인버터 각각의 출력들을 수신하여 상기 인버터 체인을 구성하는 인버터의 개수를 선택하도록 구성되는 것을 특징으로 하는 난수 생성 장치.
  12. 난수 생성 장치에 의해 수행되는 난수 발생 방법에 있어서,
    제1 동작 모드 에서, 링 오실레이터의 주파수 측정을 위해 제1 신호의 위상을 반전시키는 단계;
    상기 링 오실레이터의 주파수를 측정하고, 측정된 주파수에 기초하여 상기 주파수를 캘리브레이션 하는 단계; 및
    제2 동작 모드에서, 상기 링 오실레이터의 동작 결과에 기초하여 난수를 생성하는 단계;를 포함하고,
    상기 링 오실레이터는 적어도 하나의 인버터를 포함하고, 난수 발생의 기초가 되는 출력 신호를 생성하는 것을 특징으로 하는 난수 발생 방법.
  13. 제12항에 있어서,
    제1 신호의 위상을 반전시키는 단계는 제1 멀티플렉서를 통해 제1 위상 반전기를 선택하는 단계를 포함하고,
    상기 난수를 생성하는 단계는 상기 제1 멀티플렉서를 통해 버퍼를 선택하는 단계를 포함하는것을 특징으로 하는 난수 발생 방법.
  14. 제12항에 있어서,
    상기 난수를 생성하는 단계는 상기 인버터간의 미스매치로 인해 상기 링 오실레이터의 출력 신호가 일정 기간동안 발진 후 정지하는 동안의 펄스 개수를 측정하여 붕괴 카운트를 생성하는 단계를 더 포함하는 것을 특징으로 하는 난수 발생 방법.
  15. 제14항에 있어서,
    상기 난수 생성 장치의 초기화 단계에서 제1 붕괴 카운트 범위에 기초하여 상기 붕괴 카운트의 범위를 캘리브레이션하는 단계; 및
    상기 난수 생성 장치의 초기화 이후 동작 단계에서 제2 붕괴 카운트 범위에 기초하여 상기 붕괴 카운트의 범위를 캘리브레이션하는 단계를 더 포함하는 것을 특징으로 하는 난수 발생 방법.
  16. 제15항에 있어서,
    상기 제2 붕괴 카운트 범위의 하한값은 상기 제1 붕괴 카운트 범위의 하한값보다 작고, 상기 제2 붕괴 카운트 범위의 상한값은 상기 제1 붕괴 카운트 범위의 상한값보다 큰것을 특징으로 하는 난수 발생 방법.
  17. 제12항에 있어서,
    상기 주파수를 캘리브레이션 하는 단계에서 상기 난수 생성 장치는 상기 출력 신호의 발진을 유지하고, 기준 클럭 신호를 수신하고, 상기 기준 클럭 신호와 상기 출력 신호를 비교하여 상기 출력 신호의 주파수를 조절하는 단계를 더 포함하는 것을 특징으로 하는 난수 발생 방법.
  18. 복수의 인버터들;
    동작 모드에 기초하여 인버터 체인 입력단의 신호를 반전시키는 제1 위상 반전기를 제어하는 반전 선택 회로; 및
    제어 모듈;을 포함하고,
    상기 제어 모듈은 상기 동작 모드가 주파수를 측정하기 위한 제1 동작 모드 또는 난수 발생을 위한 제2 동작 모드인지 판단하고, 상기 동작 모드가 제1 동작 모드인 경우 상기 반전 선택 회로가 상기 제1 위상 반전기를 선택하도록 동작하는 것을 특징으로 하는 링 오실레이터.
  19. 제18항에 있어서,
    난수 발생을 위해 생성된 붕괴 카운트의 범위를 조절하기 위해 상승 지연 시간과 하락 지연 시간이 다른 복수의 인버터 중 하나를 선택하는 제2 멀티플렉서를 더 포함하는 것을 특징으로 하는 링 오실레이터.
  20. 제18항에 있어서,
    상기 제1 동작 모드에서 출력 신호는 발진을 유지하고,
    상기 제어 모듈은 기준 클럭 신호를 수신하고, 상기 기준 클럭 신호와 상기 출력 신호를 비교하여 상기 출력 신호의 주파수를 조절하는 것을 특징으로 하는 링 오실레이터.
KR1020210091690A 2021-07-13 2021-07-13 링 오실레이터, 이를 포함하는 난수 생성 장치 및 난수 생성 장치의 동작 방법 KR20230011092A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210091690A KR20230011092A (ko) 2021-07-13 2021-07-13 링 오실레이터, 이를 포함하는 난수 생성 장치 및 난수 생성 장치의 동작 방법
US17/853,148 US12040805B2 (en) 2021-07-13 2022-06-29 Ring oscillator, random number generator including the same, and operation method of random number generator
CN202210811396.2A CN115622537A (zh) 2021-07-13 2022-07-11 环形振荡器、随机数生成器以及随机数生成器的操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210091690A KR20230011092A (ko) 2021-07-13 2021-07-13 링 오실레이터, 이를 포함하는 난수 생성 장치 및 난수 생성 장치의 동작 방법

Publications (1)

Publication Number Publication Date
KR20230011092A true KR20230011092A (ko) 2023-01-20

Family

ID=84857075

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210091690A KR20230011092A (ko) 2021-07-13 2021-07-13 링 오실레이터, 이를 포함하는 난수 생성 장치 및 난수 생성 장치의 동작 방법

Country Status (3)

Country Link
US (1) US12040805B2 (ko)
KR (1) KR20230011092A (ko)
CN (1) CN115622537A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4290401A1 (en) * 2021-08-31 2023-12-13 BOE Technology Group Co., Ltd. Physical unclonable function device and operation method therefor, and electronic device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4248950B2 (ja) * 2003-06-24 2009-04-02 株式会社ルネサステクノロジ 乱数発生装置
KR101987141B1 (ko) 2013-03-04 2019-10-01 삼성전자주식회사 난수 발생기
CN104572014B (zh) * 2013-10-15 2019-02-22 恩智浦美国有限公司 具有重复激活的振荡器的真随机数生成器
US9335972B2 (en) 2013-11-29 2016-05-10 The Regents Of The University Of Michigan True random number generator
FR3023396B1 (fr) 2014-07-02 2016-07-29 Stmicroelectronics Rousset Generateur de nombres aleatoires
US10331410B2 (en) 2016-11-09 2019-06-25 Google Llc Hardened random number generator with ring oscillator collapse time random truncation

Also Published As

Publication number Publication date
US20230019282A1 (en) 2023-01-19
US12040805B2 (en) 2024-07-16
CN115622537A (zh) 2023-01-17

Similar Documents

Publication Publication Date Title
US8850281B2 (en) Digital signatures
US7702945B2 (en) Semiconductor device and communication control method
US20090110188A1 (en) Configurable random number generator
KR101987141B1 (ko) 난수 발생기
US10445068B2 (en) Random number generator
US20140059099A1 (en) Reducing bias in hardware generated random numbers
WO2021098077A1 (zh) 一种真随机数发生器和真随机数发生方法
Peetermans et al. A highly-portable true random number generator based on coherent sampling
US9384682B2 (en) Electronic circuit, electronic apparatus, and authentication system
US12040805B2 (en) Ring oscillator, random number generator including the same, and operation method of random number generator
US20170269904A1 (en) Random number generator
US11777541B2 (en) Digital fingerprint generation circuit, generation method and electronic device
KR100649881B1 (ko) 클락 신호들을 동기시키기 위한 반도체 장치 및 클락신호들을 동기시키는 방법
TW202321860A (zh) 隨機數產生器及其操作方法
US11906581B2 (en) Hardware component and a method for implementing a camouflage of current traces generated by a digital system
JP6697776B2 (ja) 固有情報生成装置
Billmann et al. Open-source crypto ip cores for fpgas–overview and evaluation
WO2021142830A1 (zh) 随机数生成电路、随机数生成方法和电子设备
US11171949B2 (en) Generating authentication information utilizing linear feedback shift registers
CN103678996A (zh) 信息处理装置、信息处理方法以及程序
KR101406941B1 (ko) Fpga 기반된 진정한 난수 생성기의 성능 향상을 위한 장치 및 방법
US20230025153A1 (en) Random number generating circuit for generating random number based on plurality of sampling signals, and operating method thereof
KR20140023559A (ko) 카스 레이턴시 설정 회로 및 이를 포함하는 반도체 메모리 장치
Tehranipoor et al. True Random Number Generator (TRNG)
CN111010880A (zh) 随机数发生器的建模方法、装置、介质及随机数发生器

Legal Events

Date Code Title Description
A201 Request for examination