KR20140110142A - 난수 발생기 - Google Patents

난수 발생기 Download PDF

Info

Publication number
KR20140110142A
KR20140110142A KR1020130022851A KR20130022851A KR20140110142A KR 20140110142 A KR20140110142 A KR 20140110142A KR 1020130022851 A KR1020130022851 A KR 1020130022851A KR 20130022851 A KR20130022851 A KR 20130022851A KR 20140110142 A KR20140110142 A KR 20140110142A
Authority
KR
South Korea
Prior art keywords
oscillator
oscillation signal
frequency
signal
oscillation
Prior art date
Application number
KR1020130022851A
Other languages
English (en)
Other versions
KR101987141B1 (ko
Inventor
바실조프이호르
카르핀스키보단
이헌수
최윤혁
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020130022851A priority Critical patent/KR101987141B1/ko
Priority to US14/148,384 priority patent/US9377997B2/en
Priority to DE102014102501.6A priority patent/DE102014102501A1/de
Publication of KR20140110142A publication Critical patent/KR20140110142A/ko
Application granted granted Critical
Publication of KR101987141B1 publication Critical patent/KR101987141B1/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
    • 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
    • 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

Abstract

본 발명에 따른 난수 발생기는, 제 1 주파수를 갖는 제 1 발진 신호를 출력하는 제 1 발진기; 상기 제 1 주파수와 다른 제 2 주파수를 갖는 제 2 발진 신호를 출력하는 제 2 발진기; 상기 제 1 발진 신호 및 상기 제 2 발진 신호를 입력 받고, 상기 입력된 제 1 및 제 2 발진 신호들을 조합하여 적어도 하나의 엔트로피 소스를 발생하고, 상기 발생된 엔트로피 소스에 대응하는 비트를 제 3 발진 신호를 이용하여 샘플링하는 샘플링부; 및 상기 제 1 및 제 2 발진기들을 제어하고, 상기 제 3 발진 신호를 발생하는 제 3 발진기 및 제어부를 포함하고, 상기 제 3 발진 신호의 주파수는 상기 제 1 및 제 2 주파수들보다 낮다.

Description

난수 발생기{RANDOM NUMBER GENERATOR}
본 발명은 난수 발생기에 관한 것이다.
정보 통신 기술의 발전에 따라서, 정보의 암호화 및 복호화 기술은 해당 정보의 보안 유지를 위하여 매우 중요시되고 있다. 난수(random number)는 보안 시스템(security system)의 비밀키(secret key)를 비롯한 여러 곳에서 사용된다. 따라서, 보안이 중요시되는 시스템은 난수 발생기(random number generator)가 구비되며, 난수 발생기는 예측 불가능한 값을 갖는 난수를 발생시켜야만 한다. 보안이 중요시되는 시스템에 있어서, 난수는 주기성과 규칙성을 가져서는 안 된다. 즉, 보안 시스템에서는 예측이 불가능하고 어떠한 주기성도 갖지 않는 완전한 난수를 발생시킬 필요가 있는 것이다.
참 난수(true random number, 이하 'TRN')는 물리적 노이즈 소스(physical noise source)으로부터 발생되며, 예측 불가능하고 어떠한 주기성도 갖지 않는다. 이러한 참 난수를 발생시키기 위하여, 기존의 난수 발생 장치는 노이즈 소스로써 열적 노이즈(thermal noise) 또는 샷 노이즈(shot noise)를 이용하였다. 또는 링 오실레이터를 이용하여 불규칙한 주기를 갖는 클록 신호를 발생시켜 이용하였다. 준안정성(meta-stability)은 좋은 확률적인 특성(stochastic properties)을 보이는 것으로 알려져 있기 때문에, 진성난수 발생기(TRNG; true random number generator)에 널리 사용되고 있다. 종래에는 이러한 준안정성 상태(meta-stability state)를 이용하기 위하여, 래치 또는 플립 플롭을 주로 사용하였다.
본 발명의 목적은 효율적(면적/전력소모)이면서 고속으로 등가 분포의 난수를 발생하는 난수 발생기를 제공하는데 있다.
본 발명의 실시 예에 따른 난수 발생기는, 제 1 주파수를 갖는 제 1 발진 신호를 출력하는 제 1 발진기; 상기 제 1 주파수와 다른 제 2 주파수를 갖는 제 2 발진 신호를 출력하는 제 2 발진기; 상기 제 1 발진 신호 및 상기 제 2 발진 신호를 입력 받고, 상기 입력된 제 1 및 제 2 발진 신호들을 조합하여 적어도 하나의 엔트로피 소스를 발생하고, 상기 발생된 엔트로피 소스에 대응하는 비트를 제 3 발진 신호를 이용하여 샘플링하는 샘플링부; 및 상기 제 1 및 제 2 발진기들을 제어하고, 상기 제 3 발진 신호를 발생하는 제 3 발진기 및 제어부를 포함하고, 상기 제 3 발진 신호의 주파수는 상기 제 1 및 제 2 주파수들보다 낮다.
실시 예에 있어서, 상기 제 1 발진 신호 및 상기 제 2 발진 신호는 코-프라임(co-prime)이다.
실시 예에 있어서, 상기 제 1 주파수가 상기 제 2 주파수보다 높다.
실시 예에 있어서, 상기 제 1 발진 신호는 등가 분포의 고속 신호이다.
실시 예에 있어서, 상기 고속 신호는 50%의 듀티 싸이클을 갖는다.
실시 예에 있어서, 상기 제 2 발진 신호는 높은 지터를 갖는 중속 신호이다.
실시 예에 있어서, 상기 중속 신호의 위상에 대한 표준 편차는 상기 제 1 발진 신호의 주기의 절반보다 크다.
실시 예에 있어서, 상기 제 1 발진기는, 초기 신호 및 상기 제 1 발진 신호를 낸드 연산하는 낸드 논리 회로; 상기 낸드 논리 회로의 출력을 반전하는 제 1 인버터; 및 상기 제 1 인버터의 출력을 반전시킴으로써 상기 제 1 발진 신호를 출력하는 제 2 인버터를 포함한다.
실시 예에 있어서, 상기 제 2 발진기는 준안정성 모드에서 노이즈 소스를 발생하고, 상기 발생된 노이즈 소스를 증폭하는 복수의 발진부들을 포함하고, 상기 발진 모드에서 상기 복수의 발진부들을 하나의 링 오실레이터로 구성된다.
실시 예에 있어서, 상기 제 1 주파수는 상기 제 2 주파수보다 낮다.
실시 예에 있어서, 상기 샘플링부는, 상기 엔트로피 소스를 발생하기 위하여 상기 제 2 발진 신호에 응답하여 상기 제 1 발진 신호를 샘플링하는 제 1 샘플링부; 상기 발생된 엔트로피를 축적하기 위하여 상기 제 1 샘플링부의 출력을 카운팅하는 2 모드 카운터; 및 상기 비트를 출력하기 위하여 상기 2 모드 카운터의 출력을 상기 제 3 발진 신호에 응답하여 샘플링하는 제 2 샘플링부를 포함한다.
실시 예에 있어서, 상기 샘플링부는, 상기 제 1 발진 신호를 카운팅하는 2 모드 카운터; 상기 제 2 발진 신호 및 상기 제 3 발진 신호를 앤드 연산하는 앤드 논리 회로; 및 상기 2 모드 카운터의 출력을 상기 앤드 논리 회로의 출력에 응답하여 샘플링하는 마스터 샘플링부를 포함한다.
실시 예에 있어서, 상기 제 1 발진 신호의 듀티 싸이클을 보정하기 위하여 상기 제 1 발진기의 출력단에 연결된 듀티 싸이클 교정기를 더 포함한다.
본 발명의 다른 실시 예에 따른 난수 발생기는, 제 1 주파수를 갖는 제 1 발진 신호를 발생하는 제 1 발진기; 상기 제 1 주파수보다 느린 제 2 주파수를 갖는 제 2 발진 신호를 발생하는 적어도 하나의 제 2 발진기; 상기 제 1 및 제 2 발진 신호들을 이용하여 적어도 2개의 엔트로피 소스들을 발생하기 위하여 제 1 샘플링들을 수행하고, 상기 제 1 샘플링들의 결과값들을 논리 연산하고, 상기 논리 연산된 결과값을 제 3 발진 신호에 응답하여 제 2 샘플링하는 샘플링부; 및 상기 제 1 및 제 2 발진기들을 제어하고, 상기 제 3 발진 신호를 발생하는 제 3 발진기 및 제어부를 포함한다.
실시 예에 있어서, 상기 논리 연산은 배타적 논리합이다.
상술한 바와 같이 본 발명에 따른 난수 발생기는 고속의 발진 신호와 중속의 발진 신호를 조합하여 엔트로피 소스를 발생함으로써, 등가 분포를 가지면서도 효율적으로 난수를 발생시킨다.
도 1은 본 발명의 실시 예에 따른 난수 발생기에 대한 제 1 실시 예를 보여주는 도면이다.
도 2는 도 1에 도시된 제 1 발진기에 대한 실시 예를 보여주는 도면이다.
도 3은 도 1에 도시된 제 2 발진기에 대한 실시 예를 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 난수 발생기에 대한 제 2 실시 예를 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 난수 발생기에 대한 제 3 실시 예를 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 난수 발생기에 대한 제 4 실시 예를 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 난수 발생기에 대한 제 5 실시 예를 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 난수 발생기에 대한 제 6 실시 예를 보여주는 도면이다.
도 9는 본 발명의 실시 예에 따른 난수 발생기를 갖는 암호 프로세서를 포함하는 보안 시스템을 예시적으로 보여주는 블록도이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시 예를 첨부된 도면을 참조하여 설명할 것이다.
본 발명은 등가 분포로 고속(fast)의 발진 신호와 높은 지터를 갖는 중속(moderate)의 발진 신호를 이용하여 엔트로피 소스를 발생함으로써, 효율적(면적/전력소모)이면서 고속으로 등가 분포의 난수를 발생하는 난수 발생기를 제공할 것이다.
도 1은 본 발명의 실시 예에 따른 난수 발생기에 대한 제 1 실시 예를 보여주는 도면이다. 도 1을 참조하면, 난수 발생기는 제 1 발진기(110), 제 2 발진기(120), 제 3 발진기 및 제어 유닛(130), 샘플링부(140), 및 제 1 및 제 2 듀티 싸이클 교정기들(151, 152)을 포함한다.
제 1 발진기(110, 고속 발진기)는 등가 분포된 제 1 발진 신호(SF, 혹은, '고속 신호')를 출력한다. 여기서 제 1 발진 신호(SF)는 샘플링을 위한 원스 앤 제로스 순환 패턴(cyclic pattern of ones and zeros)일 수 있다. 등가 분포된 난수를 얻기 위해서 샘플링된 패턴에서 원스(ones)의 확률은 제로스(zeros)의 확률과 동일 할 것이다. 예를 들어, Pr(1) = Pr(0) = 0.5 이다. Pr(1)는 발생된 신호의 듀티 사이클(duty cycle)에 직접적으로 비례한다. 예를 들어, Pr(1)∝ D 이다. 여기서 D는 듀티 싸이클이다. 따라서 듀티 사이클 D = 50% 될 것이다.
제 1 발진 신호(SF)의 주파수(FH)는 난수 발생의 성능에 있어서 최대 제한이고, 가능하면 높게 설정될 것이다.
제 2 발진기(120, 중속 발진기)는 엔트로피의 메인 소스로써 제 2 발진 신호(SM, 혹은 '중속 신호')를 출력할 것이다. 출력되는 제 2 발진 신호(SM)의 위상 표준편차는,
Figure pat00001
만족시킬 것이다. 여기서 TH는 제 1 발진 신호(SF)의 주기의 절반이다. 제 2 발진기(120)의 주파수(FM)는 충분하게 엔트로피를 축적하도록 선택될 것이다.
또한, 제 1 발진기(110)의 주파수(FH)와 제 2 발진기(120)의 주파수(FM)는 발진기들(110, 120)의 "잠금"(locking)의 기회를 최소화시키기 위하여 코-프라임(FH⊥FM, 서로소)으로 선택될 것이다. 제 2 발진기(120)의 듀티 사이클(D)의 값은 임의의 값이다.
제 3 발진기(저속 발진기) 및 제어 유닛(130)은, 제 1 및 제 2 발진기들(110, 120)을 제어하고, 샘플링부(140)로 샘플링 클록(SCK, 혹은 '제 3 발진 신호'; '저속 신호')을 출력시킨다. 여기서 샘플링 클록(SCK)의 주파수는 제 1 발진기(110)의 주파수(FH) 및 제 2 발진기(120)의 주파수(FM) 보다 낮을 것이다. 다른 말로, 제 3 발진기 및 제어 유닛(130)은, 서로 다른 사용 케이스 시나리오(높은 엔트로피, 고성능, 저전력 등)을 위하여 난수 발생기(100)의 높은 유연성을 제공하도록, 목표 주파수를 갖는 중속 발진기(120)에 의해 빠른 발진기(110)의 샘플링을 동기화하도록 샘플링 클록(SCK)을 제공한다.
제 3 발진기 및 제어 유닛(130)은 제 1 발진기(110) 및 제 2 발진기 (120)의 작동을 제어한다. 여기서 제 1 발진기(110)는 모든 임의의 비트 발생을 위하여 소정의 값으로 재설정되도록 구현될 수 있다. 이를 위해, 제 3 발진기 및 제어 유닛(130)은, 활성 모드/비활성 모드 사이에 정기적으로 변경하는 활성화 신호(EN)를 발생할 수 있다.
샘플링부(140)는 제 1 발진 신호(SF), 제 2 발진 신호(SM) 및 샘플링 클록(SCK)을 입력 받고, 제 2 발진기(120)로부터 출력되는 엔트로피 소스에 대응하는 랜덤 비트를 출력단(D_OUT)을 통하여 출력한다. 즉, 샘플링부(140)는 3개의 발진기들(고속 발진기(110), 중속 발진기(120), 저속 발진기(130))에 의해 발생된 랜덤 비트로 출력한다. 샘플링부(140)는 제 1 샘플링부(141, 혹은 '프리 샘플링부'), 2 모드 카운터(142), 및 제 2 샘플링부(143, 혹은 '마스터 샘플링부'; '메인 샘플링부')를 포함한다.
제 1 샘플링부(141)는 제 2 발진 신호(SM)에 응답하여 제 1 발진 신호(SF)를 샘플링함으로써, 제 1 발진기(110)와 제 2 발진기(120) 사이의 위상 차이(△φ = φH - φM)에 따른 엔트로피를 출력한다. 만일, 위상 차이(△φ)가 크다면(예를 들어, σ(φM) > TH/2), 제 1 발진기(110, 고속 발진기)의 주기 관점에서, 샘플링 펄스(예를 들어, 제 2 발진 신호(SM))의 위치에 상관없이 충분한 엔트로피가 샘플될 수 있다.
2 모드 카운터(142)는, 제 1 샘플링부(141)의 출력이 변경될 때마다, 엔트로피를 축적하도록 카운팅할 것이다.따라서, 엔트로피는 초기값으로부터 보다 압축될 것이다.
제 2 샘플링부(143)는 샘플 클록(SCK, 혹은 '제 3 발진 신호' ; '저속 신호')에 응답하여 2 모드 카운터(142)의 출력값을 샘플링할 것이다.
제 1 듀티 싸이클 교정기(151)는, 제 1 발진기(110)로 출력된 제 1 발진 신호(SF)의 듀티 싸이클을 교정한다. 제 1 듀티 싸이클 교정기(151)는 도 1에 도시된 바와 같이 D-Q 플립플롭으로 구현될 수 있다.
제 2 듀티 싸이클 교정기(152)는, 제 2 발진기(120)로부터 출력된 제 2 발진 신호(SM)의 듀티 싸이클을 교정한다. 제 2 듀티 싸이클 교정기(152)는 도 1에 도시된 바와 같이 D-Q 플립플롭으로 구현될 수 있다.
한편, 제 1 및 제 2 듀티 싸이클 교정기(151, 152) 중 적어도 하나는 생략될 수도 있다.
본 발명의 실시 예에 따른 난수 발생기(100)는 제 1 발진기(110)로부터 출력되는 등가 분포의 고속 신호(SF)와 제 2 발진기(120)로부터 출력되는 높은 지터의 중속 신호(SM)을 조합하여 엔트로피 소스를 발생함으로써, 등가 분포이면서 높은 엔트로피를 갖는 난수를 발생할 수 있다.
도 2는 도 1에 도시된 제 1 발진기(110)에 대한 실시 예를 보여주는 도면이다. 도 2를 참조하면, 제 1 발진기(110)는 낸드 논리회로(111), 제 1 인버터(112) 및 제 2 인버터(123)를 포함한다. 낸드 논리회로(111)는 입력 신호와 피드백된 출력 신호를 낸드 연산을 수행한다. 제 1 인버터(112)는 낸드 논리회로(111)의 출력을 반전시키고, 제 2 인버터(113)는 제 1 인버터(112)의 출력을 반전시킨다. 이로서 링 오실레이터를 구성함으로써 제 1 발진 신호(SF)가 발생될 것이다. 한편, 본 발명의 제 1 발진기(110)의 구조가 도 2에 도시된 구성에 제한되지 않을 것이다. 본 발명에 따른 제 1 발진기(110)은 제 1 발진 신호(SF)를 발생하는 링 오실레이터로 다양하게 구현될 수 있다.
한편, 엔트로피의 메인 소스를 발생하는 본 발명의 실시 예에 따른 제 2 발진기(120)는 메타 오실레이터(meta-oscillator)로 구현 가능하다.
도 3은 도 1에 도시된 제 2 발진기(120)에 대한 실시 예를 보여주는 도면이다. 도 3을 참조하면, 제 2 발진기(120)는 복수의 발진 유닛들(121, 122, ..., 12n, n은 2 이상의 정수)을 포함한다. 실시 예에 있어서, 제 2 발진기(120)는 메타-오실레이터일 수 있다. 발진 유닛들(121, 122, ..., 12n) 각각은 직렬 연결된 스위칭 장치 및 복수의 인버터들을 포함한다.
제 2 발진기(120)는 모드 신호(mode)에 따라 준안정성 모드(meta-stability mode) 및 발진 모드(oscillation mode) 중 어느 하나로 동작할 것이다.
첫째로, 준안정성 모드 동작은 다음과 같다. 준안정성 모드에서, 인버터들(INV11, INV21, ..., INVn1)은 스위칭 장치들(MUX1, MUX2, ..., MUXn)에 의해 준안정성 레벨로 수렴하도록 고정될 것이다. 이에 통계적으로 아날로그 신호들을 제공하는 n 개의 엔트로피의 소스들이 발생된다. 발생된 엔트로피 소스들은 직렬 연결된 인버터들로 구성된 증폭 체인에 연결될 것이다. 예를 들어, INV12에서 INV1k는 제 1 증폭 체인을 형성하고, INV22에서 INV2k 는 제 2 증폭 체인을 형성한다. 증폭 체인에 사용되는 인버터들 개수(k)는 목표로 하는 기술에서 하나의 인버터의 이득 값에 의존하고, 통계적인 아날로그 신호의 충분한 증폭을 제공하도록 선택될 수 있다.
엔트로피 소스들의 개수(n)는 목표로 하는 기술 공정의 변화 및 불일치 특성에 의존하고, 엔트로피 소스의 통계적인 아날로그 신호의 평균 값이 대응하는 증폭 체인으로부터 제 1 인버터의 문턱 레벨에 일치한다는 충분한 확률을 제공하도록 계산될 것이다. 여기서 증폭 체인에서 제 1 인버터 및 다음 인버터 사이의 문턱 레벨들의 불일치는 무시할 것이다. 하지만, 다른 기술에는 이러한 불일치를 무시하지 않고 반영될 수도 있다.
둘째로, 발진 동작은 다음과 같다. 스위칭 장치들(MUX1, MUX2, ..., MUXn)은 링 발진기를 형성하도록 모드 신호(mode)에 응답하여 변환될 것이다. 도 3에 도시된 바와 같이, 링 발진기는 MUX1 → INV11 → INV12 → ... → INV1k → MUX2 → INV21 → INV22 ... → MUXn → INVn1 → MUX1 로 구성될 것이다. 대개, 링 발진기를 형성하기 위하여 인버터들의 개수는 홀수이다. 변환 후에, 제 2 발진기(120)는 결정된 중속 주파수(FM) 및 임의 위상(φM)을 갖는 발진기 신호를 발생할 것이다.
여기서 중속 주파수(FM)의 값은 CMOS 인버터 특성들에 의해 정의되고, 제조 기술의 특성에 의존할 것이다. 여기서 위상(φM)의 값은 발진 모드 전에 발진기를 형성하는 대응하는 인버터들로부터 발진 신호들의 모멘텀(momentum) 값들로부터 결정될 것이다. 발진 신호들의 이러한 모멘텀 값들은 통계적인 아날로그 신호들로부터 형성되고, 그것들은 임의성을 상속하고 엔트로피를 포함할 것이다. 따라서, 초기 위상 값(φM)은 임의적이다. 만일, 초기 엔트로피가 충분히 크지 않으면, 난수 발생기(100, 도 1 참조)는 지터로써 추가적인 엔트로피를 축적하는 발진 모드에서 계속적으로 동작할 것이다.
한편, 도 3에 도시된 제 2 발진기(120)는 실시 예에 불과하다. 본 발명에 따른 제 2 발진기(120)는 다양한 방법 및 구성으로 메타-오실레이터를 구현할 수 있다.
한편, 도 1에 도시된 난수 발생기는 샘플링 클록(SCK)에 응답하여 엔트로피 소스에 대응하는 비트를 샘플링함으로써 랜덤 비트를 발생하였다. 하지만, 본 발명이 반드시 샘플링 클록(SCK)에 따라 샘플링할 필요는 없다. 본 발명의 실시 예에 따른 난수 발생기는 샘플링 클록(SCK)과 메인 엔트로피 소스로 사용되는 제 2 발진 신호(SM)를 조합한 신호에 따라 샘플링함으로써, 특정한 시간에 샘플링되도록 하는 엔트로피를 추가할 수 있다.
도 4는 본 발명의 실시 예에 따른 난수 발생기에 대한 제 2 실시 예를 보여주는 도면이다. 도 4를 참조하면, 난수 발생기(200)는 제 1 발진기(210), 제 2 발진기(220), 제 3 발진기 및 제어 유닛(230), 샘플링부(240), 및 제 1 및 제 2 듀티 싸이클 교정기들(251, 252)을 포함한다.
제 1 발진기(210)는, 도 2에 도시된 제 1 발진기(110)과 비교하여 제 1 발진 신호(S F )의 주파수를 변량 할 수 있는 구조이다. 제 2 발진기(220)의 초기 단계 및 주파수와 일치에 적합할 적절한 값을 선택하도록 제 1 발진기(210)의 주파수를 조절함으로써, 더 많은 엔트로피가 얻어질 수 있다.
샘플링부(240)는 카운터(241), 앤드 논리 회로(242), 및 마스터 샘플링부(243)를 포함한다. 카운터(241)는 고속 발진기의 주기들의 개수의 나머지 값을 축적할 것이다. 마스터 샘플링부(243)는 샘플링 클록(SCK)의 구성에 따라 값을 샘플링 한다. 앤드 논리 회로(242)는 시간의 특정한 모멘트에서 샘플링하도록 하기 위한 엔트로피를 제공한다.
실시 예에 있어서, 제 2 발진기(220, 중속 발진기)의 듀티 싸이클은 가능한 작을 것이다.
본 발명의 실시 예에 따른 난수 발생기(200)는 샘플링 클록(SCK)과 제 2 발진 신호(SM)을 이용하여 랜덤 비트를 샘플링함으로써, 샘플링하기 위한 클록의 엔트로피를 발생할 수 있다.
한편, 도 1의 샘플링부(140)에서는 중속 신호인 제 2 발진 신호(SM)에 응답하여 고속 신호인 제 1 발진 신호(SF)를 샘플링하였다. 하지만, 본 발명은 여기에 제한되지 않을 것이다. 본 발명의 샘플링부는 1 발진 신호(SF)에 응답하여 중속 신호인 제 2 발진 신호(SM)를 샘플링할 수도 있다. 즉, 제 1 발진기(110) 및 제 2 발진기(120)의 기능적인 위치가 서로 바뀔 수 있다.
도 5는 본 발명의 실시 예에 따른 난수 발생기에 대한 제 3 실시 예를 보여주는 도면이다. 도 5를 참조하면, 난수 발생기(300)는 제 1 발진기(310), 제 2 발진기(320), 제 3 발진기 및 제어 유닛(330), 샘플링부(340), 제 1 및 제 2 듀티 싸이클 교정기들(351, 352)을 포함한다. 여기서 제 1 발진기(310)는 도 3에 도시된 제 2 발진기(120)와 동일한 구성이고, 제 2 발진기(320)는 도 2에 도시된 제 1 발진기(110)와 동일한 구성일 것이다. 즉, 제 1 발진기(310)는 중속 발진기이고, 제 2 발진기(320)는 고속 발진기이다.
제 2 발진기(320)의 모든 라이징에 따라 제 1 발진기(310)의 신호가 샘플될 것이다. 즉, 제 2 발진기(320)의 듀티 싸이클은 임의로 될 수 있다. 그러나 제 1 발진기(310)의 듀티 싸이클은 D = 50 %이어야 한다.
본 발명의 실시 예에 따른 난수 발생기는 고속 신호(SF)에 응답하여 중속 신호(SM)를 샘플링할 수 있다.
도 1 내지 도 5에서는 고속 신호(SF)와 중속 신호(SM)를 이용하여 하나의 엔트로피 소스에 대응하는 랜덤 비트를 발생하였다. 하지만 본 발명이 여기에 제한되지 않을 것이다. 본 발명은 고속 신호(SF)와 중속 신호(SM)를 이용하여 복수의 엔트로피 소스들을 발생하고, 발생된 복수의 엔트로피 소스들 중에 어느 하나를 선택할 수도 있다.
도 6은 본 발명의 실시 예에 따른 난수 발생기에 대한 제 4 실시 예를 보여주는 도면이다. 도 6을 참조하면, 제 1 발진기(410)의 고속 신호(SF)가 제 2 발진기(420)의 중속 신호(SM)의 여러 번 지연된 신호들에 의해 샘플될 것이다. 이는 1 → 0 및 0 → 1 변이들에 가까운 제 1 발진기(410)의 발진 신호(SF)를 샘플링 할 기회를 증가시킬 수 있다. 이로써, 엔트로피가 증가될 것이다.
본 발명의 실시 예에 따른 난수 발생기(400)는 하나의 고속 신호(SF)를 중속 신호(SM) 및 그것의 적어도 하나의 지연 신호들에 응답하여 제 1 샘플링(혹은, 프리 샘플링)을 수행하고, 제 1 샘플링된 결과값들 중에서 어느 하나를 선택하고, 선택된 값을 저속 신호인 샘플링 클록(SCK) 응답하여 제 2 샘플링(혹은, 메인 샘플링)을 수행한다.
도 6에서는 복수의 엔트로피 소스들을 얻기 위하여 하나의 중속 신호(SM)를 지연시켰다. 하지만, 본 발명이 반드시 여기에 제한되지 않을 것이다. 본 발명은 복수의 엔트로피 소스들을 얻기 위하여 복수의 중속 신호(SM)를 발생하기 위하여 복수의 중속 발진기들을 사용할 수 있다.
도 7은 본 발명의 실시 예에 따른 난수 발생기에 대한 제 5 실시 예를 보여주는 도면이다. 도 7을 참조하면, 등가 분포된 제 1 발진기(510)의 발진 신호(SF)를 샘플링하는 것으로 좀 더 높은 엔트로피를 유도하기 위하여 높은 지터를 갖는 복수의 제 2 발진기들(520_1, 520_2, 520_3)이 사용된다. 제 2 발진기들(520_1, 520_2, 520_3)의 주파수는 코-프라임 값들로 선택될 수 있다. 복수의 제 2 발진기들(520_1, 520_2, 520_3)의 사용은, 1 → 0 및 0 → 1 변이들에 가까운 제 1 발진기(410)의 발진 신호(SF)를 샘플링 할 기회를 증가시킴으로써, 발생된 난수들의 품질을 증가시킬 수 있다.
도 1 내지 도 7은 하나의 난수 비트를 출력하였다. 그러나 본 발명의 난수 발생기가 반드시 여기에 제한되지 않을 것이다. 본 발명의 난수 발생기는 복수의 난수 비트들을 출력할 수 있다.
도 8은 본 발명의 실시 예에 따른 난수 발생기에 대한 제 6 실시 예를 보여주는 도면이다. 도 8를 참조하면, 난수 발생기(600)는 중속 발진기들(620_1, 620_2, 620_3)의 출력들을 배타적 논리합(XORing)하는 것을 제외하고 도 8에 도시된 난수 발생기(500)과 유사하다. 난수 발생기(600)는 병렬로 샘플된 값들을 출력할 것이다.
만일, 중속 발진기들(620_1, 620_2, 620_3)의 모든 위상 값들이 임의이고 독립적이라면, 병렬 비트들의 마지막으로 발생된 값들은 임의이고 독립적이다. 따라서, 이러한 스킴은 난수 발생기의 성능을 증가시킨다.
도 9는 본 발명의 실시 예에 따른 난수 발생기를 갖는 암호 프로세서를 포함하는 보안 시스템(1000)을 예시적으로 보여주는 블록도이다. 도 9를 참조하면, 보안 시스템(1000)은 중앙처리장치(1100), 암호 프로세서(1200), 롬(1300), 램(1400), 및 암호 프로세서용 메모리(1500)를 포함한다.
중앙처리장치(1100)는 보안 시스템(1000)의 전반적인 동작을 제어한다. 암호 프로세서(1200)는 중앙처리장치(1100)의 제어에 따라 암호, 인증 및 전자 서명을 가능하게 하는 명령을 해독하고, 데이터를 처리한다. 암호 프로세서(1200)는 도 1 내지 도 8에서 설명된 난수 발생기를 포함한다.롬(1300)과 램(1400)은 보안 시스템(1000)을 구동하는데 필요한 데이터를 저장한다. 암호 프로세서용 메모리(1500)는 암호 프로세서(1200)의 구동에 필요한 데이터를 저장한다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허 청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100, 200, 300, 400, 500, 600: 난수 발생기
110: 제 1 발진기
120: 제 2 발진기
130: 제 3 발진기 및 제어부
140, 240, 340, 440, 540: 샘플링부
151, 152: 듀티 싸이클 교정기
FH: 고속 주파수
FM: 중속 주파수
FS: 저속 주파수
SCK: 샘플링 클록
SF: 고속 신호
SM: 중속 신호

Claims (10)

  1. 제 1 주파수를 갖는 제 1 발진 신호를 출력하는 제 1 발진기;
    상기 제 1 주파수와 다른 제 2 주파수를 갖는 제 2 발진 신호를 출력하는 제 2 발진기;
    상기 제 1 발진 신호 및 상기 제 2 발진 신호를 입력 받고, 상기 입력된 제 1 및 제 2 발진 신호들을 조합하여 적어도 하나의 엔트로피 소스를 발생하고, 상기 발생된 엔트로피 소스에 대응하는 비트를 제 3 발진 신호를 이용하여 샘플링하는 샘플링부; 및
    상기 제 1 및 제 2 발진기들을 제어하고, 상기 제 3 발진 신호를 발생하는 제 3 발진기 및 제어부를 포함하고,
    상기 제 3 발진 신호의 주파수는 상기 제 1 및 제 2 주파수들보다 낮은 난수 발생기.
  2. 제 1 항에 있어서,
    상기 제 1 발진 신호 및 상기 제 2 발진 신호는 코-프라임(co-prime)하는 난수 발생기.
  3. 제 1 항에 있어서,
    상기 제 1 주파수가 상기 제 2 주파수보다 높게 설정된 난수 발생기.
  4. 제 3 항에 있어서,
    상기 제 2 발진 신호는 지터를 갖는 중속 신호이고,
    상기 중속 신호의 위상에 대한 표준 편차는 상기 제 1 발진 신호의 주기의 절반보다 큰 난수 발생기.
  5. 제 3 항에 있어서,
    상기 제 2 발진기는 준안정성 모드에서 노이즈 소스를 발생하고, 상기 발생된 노이즈 소스를 증폭하는 복수의 발진부들을 포함하고, 상기 발진 모드에서 상기 복수의 발진부들을 하나의 링 오실레이터로 구성되는 난수 발생기.
  6. 제 1 항에 있어서,
    상기 제 1 주파수는 상기 제 2 주파수보다 낮은 난수 발생기.
  7. 제 1 항에 있어서,
    상기 샘플링부는,
    상기 엔트로피 소스를 발생하기 위하여 상기 제 2 발진 신호에 응답하여 상기 제 1 발진 신호를 샘플링하는 제 1 샘플링부;
    상기 발생된 엔트로피를 축적하기 위하여 상기 제 1 샘플링부의 출력을 카운팅하는 2 모드 카운터; 및
    상기 비트를 출력하기 위하여 상기 2 모드 카운터의 출력을 상기 제 3 발진 신호에 응답하여 샘플링하는 제 2 샘플링부를 포함하는 난수 발생기.
  8. 제 1 항에 있어서,
    상기 샘플링부는,
    상기 제 1 발진 신호를 카운팅하는 2 모드 카운터;
    상기 제 2 발진 신호 및 상기 제 3 발진 신호를 앤드 연산하는 앤드 논리 회로; 및
    상기 2 모드 카운터의 출력을 상기 앤드 논리 회로의 출력에 응답하여 샘플링하는 마스터 샘플링부를 포함하는 난수 발생기.
  9. 제 1 항에 있어서,
    상기 제 1 발진 신호의 듀티 싸이클을 보정하기 위하여 상기 제 1 발진기의 출력단에 연결된 듀티 싸이클 교정기를 더 포함하는 난수 발생기.
  10. 제 1 주파수를 갖는 제 1 발진 신호를 발생하는 제 1 발진기;
    상기 제 1 주파수보다 느린 제 2 주파수를 갖는 제 2 발진 신호를 발생하는 적어도 하나의 제 2 발진기;
    상기 제 1 및 제 2 발진 신호들을 이용하여 적어도 2개의 엔트로피 소스들을 발생하기 위하여 제 1 샘플링들을 수행하고, 상기 제 1 샘플링들의 결과값들을 논리 연산하고, 상기 논리 연산된 결과값을 제 3 발진 신호에 응답하여 제 2 샘플링하는 샘플링부; 및
    상기 제 1 및 제 2 발진기들을 제어하고, 상기 제 3 발진 신호를 발생하는 제 3 발진기 및 제어부를 포함하는 난수 발생기.
KR1020130022851A 2013-03-04 2013-03-04 난수 발생기 KR101987141B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130022851A KR101987141B1 (ko) 2013-03-04 2013-03-04 난수 발생기
US14/148,384 US9377997B2 (en) 2013-03-04 2014-01-06 Random number generator
DE102014102501.6A DE102014102501A1 (de) 2013-03-04 2014-02-26 Zufallszahlgenerator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130022851A KR101987141B1 (ko) 2013-03-04 2013-03-04 난수 발생기

Publications (2)

Publication Number Publication Date
KR20140110142A true KR20140110142A (ko) 2014-09-17
KR101987141B1 KR101987141B1 (ko) 2019-10-01

Family

ID=51353147

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130022851A KR101987141B1 (ko) 2013-03-04 2013-03-04 난수 발생기

Country Status (3)

Country Link
US (1) US9377997B2 (ko)
KR (1) KR101987141B1 (ko)
DE (1) DE102014102501A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10101968B2 (en) 2016-11-24 2018-10-16 Samsung Electronics Co., Ltd. Random number generators and methods of generating random numbers using adjustable meta-stable voltage
KR102170985B1 (ko) * 2020-03-12 2020-10-29 카톨리에케 유니버시테이트 루벤 난수 생성기

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140108362A (ko) * 2013-02-25 2014-09-11 삼성전자주식회사 난수 발생기
KR101987141B1 (ko) * 2013-03-04 2019-10-01 삼성전자주식회사 난수 발생기
US9236853B2 (en) * 2014-02-04 2016-01-12 Fujitsu Limited Digital duty cycle correction
JP6423277B2 (ja) * 2015-01-09 2018-11-14 株式会社メガチップス 乱数生成装置及び乱数生成方法
JP6419614B2 (ja) * 2015-03-17 2018-11-07 株式会社東芝 データ生成装置および認証システム
CN107918535B (zh) * 2017-11-17 2021-02-19 宁波大学 一种在fpga上实现的亚稳态真随机数发生器
WO2019220193A1 (en) 2018-05-17 2019-11-21 Politechnika Warszawska Random number generator
US11561769B2 (en) * 2018-11-20 2023-01-24 Samsung Electronics Co., Ltd. Random number generator including a plurality of ring oscillators
TWI757819B (zh) * 2020-08-06 2022-03-11 華邦電子股份有限公司 延遲控制裝置和可調延遲裝置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007207054A (ja) * 2006-02-03 2007-08-16 Renesas Technology Corp データ処理装置
KR101127961B1 (ko) * 2006-12-01 2012-04-12 한국전자통신연구원 오실레이터 샘플링 방법을 이용한 실난수 발생 장치
KR20120101837A (ko) * 2011-03-07 2012-09-17 삼성전자주식회사 난수 발생 장치
KR20130003709A (ko) * 2011-06-30 2013-01-09 삼성전자주식회사 데이터 처리 장치 및 이의 동작 방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807553B2 (en) 2001-04-23 2004-10-19 Safenet B.V. Digital true random number generator circuit
US20020186086A1 (en) 2001-06-12 2002-12-12 Dallas Semiconductor Corporation Random number generator
US6862605B2 (en) 2001-08-15 2005-03-01 Scott A. Wilber True random number generator and entropy calculation device and method
US6954770B1 (en) * 2001-08-23 2005-10-11 Cavium Networks Random number generator
JP4290500B2 (ja) 2003-07-28 2009-07-08 株式会社ルネサステクノロジ 乱数発生装置
US7177888B2 (en) 2003-08-01 2007-02-13 Intel Corporation Programmable random bit source
DE102004047425B4 (de) * 2004-09-28 2007-06-21 Micronas Gmbh Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen
CN1949708B (zh) 2006-11-10 2011-02-02 华为技术有限公司 随机数发生装置、方法及对应的数据交互系统
US20080256153A1 (en) * 2007-04-13 2008-10-16 Park Ji Man Random number signal generator using pulse oscillator
US8131789B2 (en) 2008-03-28 2012-03-06 Atmel Corporation True random number generator
US20090327381A1 (en) 2008-06-30 2009-12-31 Horizon Semiconductors Ltd. True random number generator
US20100281088A1 (en) 2009-04-29 2010-11-04 Psigenics Corporation Integrated true random number generator
US20110169579A1 (en) 2010-01-08 2011-07-14 James Dodrill Method and apparatus for increasing distribution of jitter within a random number generator
US20110169580A1 (en) 2010-01-08 2011-07-14 James Dodrill Inverting gate with maximized thermal noise in random number genertion
KR101829312B1 (ko) 2011-08-26 2018-02-20 삼성디스플레이 주식회사 유기 발광 표시 장치 및 그 제조방법
US9058228B2 (en) * 2013-02-19 2015-06-16 Raytheon Company Random number generator for generating truly random numbers
KR101987141B1 (ko) * 2013-03-04 2019-10-01 삼성전자주식회사 난수 발생기
DE102013204274A1 (de) * 2013-03-12 2014-09-18 Robert Bosch Gmbh Verfahren zum Erkennen einer Korrelation
US9846568B2 (en) * 2013-05-23 2017-12-19 Synopsys, Inc. System and method for dynamic tuning feedback control for random number generator

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007207054A (ja) * 2006-02-03 2007-08-16 Renesas Technology Corp データ処理装置
KR101127961B1 (ko) * 2006-12-01 2012-04-12 한국전자통신연구원 오실레이터 샘플링 방법을 이용한 실난수 발생 장치
KR20120101837A (ko) * 2011-03-07 2012-09-17 삼성전자주식회사 난수 발생 장치
KR20130003709A (ko) * 2011-06-30 2013-01-09 삼성전자주식회사 데이터 처리 장치 및 이의 동작 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10101968B2 (en) 2016-11-24 2018-10-16 Samsung Electronics Co., Ltd. Random number generators and methods of generating random numbers using adjustable meta-stable voltage
KR102170985B1 (ko) * 2020-03-12 2020-10-29 카톨리에케 유니버시테이트 루벤 난수 생성기

Also Published As

Publication number Publication date
DE102014102501A1 (de) 2014-09-04
US20140250160A1 (en) 2014-09-04
KR101987141B1 (ko) 2019-10-01
US9377997B2 (en) 2016-06-28

Similar Documents

Publication Publication Date Title
KR101987141B1 (ko) 난수 발생기
US8744073B2 (en) Digital random number generator based on digitally-controlled oscillators
US7720895B2 (en) Random number generator and method for generating random numbers
US9047152B2 (en) Delay device, method, and random number generator using the same
JP3696209B2 (ja) シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器
US11876899B2 (en) Random number generator and method of generating output random number
KR20140108362A (ko) 난수 발생기
JP2012186809A (ja) 乱数を発生させるための装置および方法
US20130346459A1 (en) Method for generating random numbers
CN102968290A (zh) 一种异构轻量级的真随机数产生器
Balasch et al. Design and testing methodologies for true random number generators towards industry certification
Fujieda On the feasibility of TERO-based true random number generator on Xilinx FPGAs
US20090327381A1 (en) True random number generator
Yakut et al. Secure and efficient hybrid random number generator based on sponge constructions for cryptographic applications
Lee et al. Implementing a phase detection ring oscillator PUF on FPGA
JP5171420B2 (ja) 擬似乱数生成装置
TWI579763B (zh) 具有亂數產生模式的儲存電路
JP5119417B2 (ja) 擬似乱数生成装置
JP2007520798A (ja) デジタルロジックを利用した乱数発生装置及び方法
JP5356362B2 (ja) 乱数生成回路
EP2933719B1 (en) Digital methods and devices for generating true random numbers
KR101925787B1 (ko) 폰 노이만 후처리시 난수 출력 신호의 연속성을 확보하기 위한 방법 및 장치
CN116880801B (zh) 一种双熵源物理随机数发生器
JP2013182097A (ja) 乱数生成装置、および暗号処理装置
Ergün Security analysis of a random number generator based on a double-scroll chaotic circuit

Legal Events

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