KR20230011092A - 링 오실레이터, 이를 포함하는 난수 생성 장치 및 난수 생성 장치의 동작 방법 - Google Patents
링 오실레이터, 이를 포함하는 난수 생성 장치 및 난수 생성 장치의 동작 방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 17
- 230000010355 oscillation Effects 0.000 claims description 13
- 239000000872 buffer Substances 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 26
- 238000004891 communication Methods 0.000 description 11
- 238000009826 distribution Methods 0.000 description 10
- 238000003860 storage Methods 0.000 description 10
- 238000012544 monitoring process Methods 0.000 description 5
- 230000010363 phase shift Effects 0.000 description 5
- 238000009966 trimming Methods 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 230000000630 rising effect Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical group [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/099—Details of the phase-locked loop concerning mainly the controlled oscillator of the loop
- H03L7/0995—Details of the phase-locked loop concerning mainly the controlled oscillator of the loop the oscillator comprising a ring oscillator
- H03L7/0996—Selecting a signal among the plurality of phase-shifted signals produced by the ring oscillator
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators 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/03—Astable circuits
- H03K3/0315—Ring oscillators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/1733—Controllable logic circuits
- H03K19/1737—Controllable logic circuits using multiplexers
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/84—Generating pulses having a predetermined statistical distribution of a parameter, e.g. random pulse generators
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K5/13—Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
- H03K5/133—Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals using a chain of active delay devices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/081—Details of the phase-locked loop provided with an additional controlled phase shifter
- H03L7/0812—Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
- H03L7/0814—Details 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/081—Details of the phase-locked loop provided with an additional controlled phase shifter
- H03L7/0812—Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
- H03L7/0818—Details 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/083—Details of the phase-locked loop the reference signal being additionally directly applied to the generator
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/099—Details of the phase-locked loop concerning mainly the controlled oscillator of the loop
- H03L7/0995—Details of the phase-locked loop concerning mainly the controlled oscillator of the loop the oscillator comprising a ring oscillator
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/10—Details of the phase-locked loop for assuring initial synchronisation or for broadening the capture range
- H03L7/107—Details 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/1077—Details 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
본 개시의 기술적 사상은 난수를 생성하기 위한 링 오실레이터, 이를 포함하는 난수 생성 장치 및 난수 생성 장치의 동작 방법에 관한 것이다.
현대 사회에서 난수생성기(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는 본 개시의 일 실시예에 따라 생성된 전자 서명을 통한 보안 검증을 수행하는 통신 기기의 예시들을 나타낸다.
도 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 동작 모드 또는 난수 발생을 위한 제2 동작 모드인지 판단하고, 상기 동작 모드가 제1 동작 모드인 경우 상기 반전 선택 회로가 상기 제1 위상 반전기를 선택하도록 동작하는 것을 특징으로 하는 난수 생성 장치. - 제1항에 있어서,
상기 반전 선택 회로는 제1 위상 반전기, 버퍼 및 제1 멀티플렉서를 포함하고,
상기 제1 멀티플렉서는 상기 동작 모드에 따라 상기 제1 위상 반전기 또는 상기 버퍼의 신호를 선택하는 것을 특징으로 하는 난수 생성 장치. - 제1항에 있어서,
상기 인버터는 PMOS와 NMOS의 크기 비율이 다르게 구성된 스큐(skewed) 인버터인 것을 특징으로 하는 난수 생성 장치. - 제1항에 있어서,
상기 제어 모듈은 상기 인버터간의 미스매치로 인해 상기 링 오실레이터의 출력 신호가 일정 기간동안 발진 후 정지하는 동안의 펄스 개수를 카운트하여 붕괴 카운트(collapse count)를 생성하는 것을 특징으로 하는 난수 생성 장치. - 제4항에 있어서,
상기 링 오실레이터는 상기 붕괴 카운트의 범위를 조절하기 위한 제2 멀티플렉서를 포함하고,
상기 제2 멀티플렉서는 상승 지연 시간과 하락 지연 시간이 다른 복수의 인버터 중에서 상기 인버터 체인을 구성하는 인버터를 선택하는 것을 특징으로 하는 난수 생성 장치. - 제4항에 있어서,
상기 제어 모듈은 상기 링 오실레이터의 초기 동작에 대응되는 제1 붕괴 카운트 범위 및 상기 링 오실레이터의 난수 발생 동작에 대응되는 제2 붕괴 카운트 범위에 기초하여 상기 붕괴 카운트의 범위를 캘리브레이션하는 것을 특징으로 하는 난수 생성 장치. - 제4항에 있어서,
상기 붕괴 카운트를 캘리브레이션 하기 위해 기설정된 붕괴 카운트 범위 상한값 및 하한값과 상기 붕괴 카운트를 비교하는 비교기를 더 포함하는 것을 특징으로 하는 난수 생성 장치. - 제4항에 있어서,
상기 제어 모듈은 상기 붕괴 카운트가 기설정된 범위를 벗어나는 경우 상기 붕괴 카운트를 캘리브레이션하는 것을 특징으로 하는 난수 생성 장치. - 제6항에 있어서,
상기 제2 붕괴 카운트 범위의 하한값은 상기 제1 붕괴 카운트 범위의 하한값보다 작고, 상기 제2 붕괴 카운트 범위의 상한값은 상기 제1 붕괴 카운트 범위의 상한값보다 큰것을 특징으로 하는 난수 생성 장치. - 제1항에 있어서,
상기 제1 동작 모드에서 상기 링 오실레이터의 출력 신호는 발진을 유지하고,
상기 제어 모듈은 기준 클럭 신호를 수신하고, 상기 기준 클럭 신호와 상기 출력 신호를 비교하여 상기 출력 신호의 주파수를 조절하는 것을 특징으로 하는 난수 생성 장치. - 제1항에 있어서,
상기 링 오실레이터는 상기 출력 신호의 주파수를 조절하기 위한 제3 멀티플렉서를 포함하고,
상기 제3 멀티플렉서는 상기 인버터 체인을 구성하는 인버터 각각의 출력들을 수신하여 상기 인버터 체인을 구성하는 인버터의 개수를 선택하도록 구성되는 것을 특징으로 하는 난수 생성 장치. - 난수 생성 장치에 의해 수행되는 난수 발생 방법에 있어서,
제1 동작 모드 에서, 링 오실레이터의 주파수 측정을 위해 제1 신호의 위상을 반전시키는 단계;
상기 링 오실레이터의 주파수를 측정하고, 측정된 주파수에 기초하여 상기 주파수를 캘리브레이션 하는 단계; 및
제2 동작 모드에서, 상기 링 오실레이터의 동작 결과에 기초하여 난수를 생성하는 단계;를 포함하고,
상기 링 오실레이터는 적어도 하나의 인버터를 포함하고, 난수 발생의 기초가 되는 출력 신호를 생성하는 것을 특징으로 하는 난수 발생 방법. - 제12항에 있어서,
제1 신호의 위상을 반전시키는 단계는 제1 멀티플렉서를 통해 제1 위상 반전기를 선택하는 단계를 포함하고,
상기 난수를 생성하는 단계는 상기 제1 멀티플렉서를 통해 버퍼를 선택하는 단계를 포함하는것을 특징으로 하는 난수 발생 방법. - 제12항에 있어서,
상기 난수를 생성하는 단계는 상기 인버터간의 미스매치로 인해 상기 링 오실레이터의 출력 신호가 일정 기간동안 발진 후 정지하는 동안의 펄스 개수를 측정하여 붕괴 카운트를 생성하는 단계를 더 포함하는 것을 특징으로 하는 난수 발생 방법. - 제14항에 있어서,
상기 난수 생성 장치의 초기화 단계에서 제1 붕괴 카운트 범위에 기초하여 상기 붕괴 카운트의 범위를 캘리브레이션하는 단계; 및
상기 난수 생성 장치의 초기화 이후 동작 단계에서 제2 붕괴 카운트 범위에 기초하여 상기 붕괴 카운트의 범위를 캘리브레이션하는 단계를 더 포함하는 것을 특징으로 하는 난수 발생 방법. - 제15항에 있어서,
상기 제2 붕괴 카운트 범위의 하한값은 상기 제1 붕괴 카운트 범위의 하한값보다 작고, 상기 제2 붕괴 카운트 범위의 상한값은 상기 제1 붕괴 카운트 범위의 상한값보다 큰것을 특징으로 하는 난수 발생 방법. - 제12항에 있어서,
상기 주파수를 캘리브레이션 하는 단계에서 상기 난수 생성 장치는 상기 출력 신호의 발진을 유지하고, 기준 클럭 신호를 수신하고, 상기 기준 클럭 신호와 상기 출력 신호를 비교하여 상기 출력 신호의 주파수를 조절하는 단계를 더 포함하는 것을 특징으로 하는 난수 발생 방법. - 복수의 인버터들;
동작 모드에 기초하여 인버터 체인 입력단의 신호를 반전시키는 제1 위상 반전기를 제어하는 반전 선택 회로; 및
제어 모듈;을 포함하고,
상기 제어 모듈은 상기 동작 모드가 주파수를 측정하기 위한 제1 동작 모드 또는 난수 발생을 위한 제2 동작 모드인지 판단하고, 상기 동작 모드가 제1 동작 모드인 경우 상기 반전 선택 회로가 상기 제1 위상 반전기를 선택하도록 동작하는 것을 특징으로 하는 링 오실레이터. - 제18항에 있어서,
난수 발생을 위해 생성된 붕괴 카운트의 범위를 조절하기 위해 상승 지연 시간과 하락 지연 시간이 다른 복수의 인버터 중 하나를 선택하는 제2 멀티플렉서를 더 포함하는 것을 특징으로 하는 링 오실레이터. - 제18항에 있어서,
상기 제1 동작 모드에서 출력 신호는 발진을 유지하고,
상기 제어 모듈은 기준 클럭 신호를 수신하고, 상기 기준 클럭 신호와 상기 출력 신호를 비교하여 상기 출력 신호의 주파수를 조절하는 것을 특징으로 하는 링 오실레이터.
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)
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)
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 |
-
2021
- 2021-07-13 KR KR1020210091690A patent/KR20230011092A/ko active Search and Examination
-
2022
- 2022-06-29 US US17/853,148 patent/US12040805B2/en active Active
- 2022-07-11 CN CN202210811396.2A patent/CN115622537A/zh active Pending
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 |