KR100847213B1 - 난수 생성 방법 및 난수 생성기 - Google Patents

난수 생성 방법 및 난수 생성기 Download PDF

Info

Publication number
KR100847213B1
KR100847213B1 KR1020017014074A KR20017014074A KR100847213B1 KR 100847213 B1 KR100847213 B1 KR 100847213B1 KR 1020017014074 A KR1020017014074 A KR 1020017014074A KR 20017014074 A KR20017014074 A KR 20017014074A KR 100847213 B1 KR100847213 B1 KR 100847213B1
Authority
KR
South Korea
Prior art keywords
flip
flop
random number
output
metastable state
Prior art date
Application number
KR1020017014074A
Other languages
English (en)
Other versions
KR20020021094A (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 엔엑스피 비 브이
Publication of KR20020021094A publication Critical patent/KR20020021094A/ko
Application granted granted Critical
Publication of KR100847213B1 publication Critical patent/KR100847213B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Manipulation Of Pulses (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

본 발명에서는 플립플롭(flip-flop)의 메타 안정 동작을 이용하여 난수를 생성하는 방법 및 장치가 개시된다. 플립플롭은 메타 안정 동작을 보장하기 위하여 고의로 플립플롭의 셋업(setup) 또는 홀드 시간(hold time)(또는 이들 모두)을 위반하는 입력으로 클럭킹(clocking)된다. 플립플롭의 메타 안정 동작은 난수를 생성하는 메카니즘을 제공한다. 플립플롭으로의 지연된 입력은 플립플롭의 메타 안정 출력이 클럭 소스(clock source)에 비동기적으로 되도록 한다. 따라서, 플립플롭의 메타 안정 출력을 클럭 소스에 동기화하는 동기화 회로(a synchronizing circuit)가 개시된다. 플립플롭의 동기화된 출력은 입력 파형과 비교되어, 메타 안정 상태를 나타내는, 출력 신호가 입력 신호와 정합하지 않는지를 판정한다. 메타 안정 이벤트가 검출되는 경우에, 출력 비트는 랜덤 비트로서 제공된다. 제 2 실시예는 오류들(mistakes) 사이의 시간 지연을 이용하여 난수를 생성한다. 제 3 실시예는 메타 안정성이 소정의 플립플롭의 클래스(a given class of flip-flops)에 대하여 대부분 0(또는 1)에서 발생하며, 0의 반은 "1"로 표시하고 나머지 반의 0은 "0"으로 "표시(marking)"함으로써 균일한 난수 분포(an even random number distribution)를 획득하는 것으로 가정한다. 추가적으로, 1의 반은 "1"로 표시되며, 나머지 반의 1은 "0"으로 표시된다. 제 4 실시예는 클럭과 입력 사이의 지연을 조절하여 메타 안정 동작이 보다 빈번히 나타나도록 함으로써 프로세스 변화를 고려한다. 제 5 실시예는 n개의 상이한 플립플롭을 가지는 다수의 회로들을 이용 하여 n 개의 회로 중 적어도 하나가 소정의 시간에 메타 안정 상태가 되도록 한다.

Description

난수 생성 방법 및 난수 생성기{METHOD AND APPARATUS FOR GENERATING RANDOM NUMBERS USING FLIP-FLOP META-STABILITY}
본 발명은 난수 생성(random number generation)에 관한 것으로, 보다 구체적으로는 플립플롭 준안정성(flip-flop meta-stability)을 이용하여 난수를 생성하는 방법 및 장치에 관한 것이다.
플립플롭 및 래치(latch)는, 예를 들어 샘플링(sampling), 계수(counting) 및 저장(storage) 소자로서, 컴퓨터 및 다른 전자 디바이스에서 광범위하게 이용된다. D 타입 플립플롭("데이터(data)"), R-S 래치("리셋 및 셋(reset and set)"), J-K 플립플롭(J 및 K 입력을 가짐) 및 T 플립플롭(하나의 입력만 가짐)과 같은 많은 플립플롭 타입이 개발되었다. 예를 들어, D 타입 플립플롭은 하나의 클럭 펄스에 의해서 출력이 지연되는 클럭형 플립플롭(a clocked flip-flop)이다.
통상적인 R-S 래치(100)가 도 1a에 도시되어 있다. 도 1a에 도시된 바와 같이, R-S 래치(100)는 NOR 게이트(110,120)를 포함한다. 두 개의 NOR 게이트(110,120)의 출력들은 반대측 NOR 게이트의 각 입력에 교차 접속된다. 따라서, NOR 게이트(110)는 입력으로서 NOR 게이트(120)의 출력 및 리셋(reset) 신호 R을 수신한다. 유사하게, NOR 게이트(120)는 입력으로서 NOR 게이트(110)의 출력 및 셋(set) 신호 S를 수신한다.
보다 최근에는, 도 1a에 도시된 간단한 래치들이 도 1b에 도시된 D 타입 플립플롭(150)과 같은 에지 트리거형 플립플롭들(edge-triggered flip-flops)로 대체되었다. 에지 트리거형 플립플롭들은 상승 또는 하강 클럭 에지 및 데이터 입력에 근거하여 상태를 변경한다. 통상적인 D 타입 플립플롭(150)이 도 1b에 도시되어 있다. 이러한 D 타입 플립플롭들은 종종 클럭 신호와 관련된 예측할 수 없는 타이밍을 가지는 비동기식 디지털 신호의 로직 상태를 검출하는 데에 이용된다. 동기식 신호는 플립플롭(150)의 클럭 입력 CLK에 인가되고, 검출될 비동기식 신호의 디지털 로직 레벨은 D 입력으로 보내어진다. 그런 다음, 검출된 신호가 Q 출력 라인 상에 생성된다. 이후에, 플립플롭(150)은 (리셋 신호가 접지에 영구히 고정되는 한) D 입력에서의 입력 신호가 변경되는 때마다 간단히 상태를 변경한다.
도 1a의 래치들(100)은 준안정성(meta-stability) 상태가 되기 쉽다. 준안정성의 상세한 설명을 위하여, 예를 들어 본 명세서에서 참조로 인용되는 Philips Semiconductors사의 Application Note Meta-Stability Primer AN219(1989년 11월 15일)를 참조하라. 통상적으로, 준안정성은 래치(100)에의 양측 입력 모두가 하이(high) 로직 값("11")에 셋(set)되며, 그런 다음 로우(low) 로직 값("00")으로 리셋(reset)되는 경우에 발생할 수 있다. 이러한 조건에서, 래치 출력은 통계적으로 알려진 방식으로는 예측할 수 없게 발진한다(oscillate). 이론상으로, 래치(100)는 무한하게(indefinitely) 발진할 수 있다. 그러나, 실제에 있어서, 래치(100)는 랜덤하게 쉬프트(shift)하여 로직 로우(low) 또는 하이(high) 중 하나인 랜덤 출력 값에 도달할 것이다. 전형적으로, 이들 준안정 값들은 주어진 애플리케이션내의 다른 회로에 의해서 이후에 검출되며 상이한 로직 레벨 상태들로 해석될 수 있다.
추가적으로, 도 1b에 도시된 에지 트리거형 플립플롭(150)은 플립플롭의 셋업(setup) 또는 홀드 시간(hold time)이 위반되는 경우에 준안정 상태가 될 수 있다. 에지 트리거형 플립플롭(150) 내부에는 에지 검출 회로에 의해서 공급되는 래치(100)가 존재하기 때문에, 에지 트리거형 플립플롭(150)은 준안정성 상태가 되기 쉽다. 셋업 또는 홀드 시간이 위반되는 경우에는 내부 래치(100)는 준안정 상태를 트리거할 수 있는 입력들을 관찰할 것이다.
대부분의 애플리케이션에서, 특히 비동기식 신호의 로직 레벨 상태의 신뢰할만한 검출을 요구하는 애플리케이션에서는 이러한 준안정 동작이 바람직하지 않다. 따라서, 쉽게 준안정성이 되지 않는 플립플롭을 제공하는 많은 기술들이 제안되었다. 예를 들면, California Sunnyvale에 소재하는 Philips Semiconductor사는 준안정 내성 특성(meta-stable immune characteristics)을 나타내는 집적 회로의 패밀리(family)를 제공한다. 예를 들어, 본 명세서에서 참조로 인용되는 Philips Semiconductor사의 Application Note, Synchronizing and Clock Driving Solutions-Using 74F50XXX Family, AN220(1989년 9월)을 참조하라. 추가적으로, Rackley에게 허여된 미국 특허 번호 5,365,122는 준안정에 영향을 받지 않는 R-S 래치(a meta-stable resistant R-S latch)를 개시한다.
포커(poker), 룰렛(roulette) 및 슬롯 머신(slot machine)과 같은 도박 게임(games of chance)을 포함하는 많은 애플리케이션 및 전자 디바이스는 난수(random numbers)를 요구한다. 특히, 많은 암호 알고리즘(crytographic algorithms) 및 프로토콜은 보안 전자 통신 등을 수행하는 데에 예측할 수 없는 난수의 소스(a non-predictable source of random numbers)에 의존한다. 난수를 생성하는 데 이용가능한 많은 디바이스가 존재한다. 난수 생성기(a random number generator)를 평가하는 데에는 많은 요소가 중요한데, 예를 들면 난수 생성기는 지정된 범위의 수(number) 내에서 모든 가능한 순열(permutation)을 생성할 수 있는 것이 바람직하다. 추가적으로, 난수 생성기는 바이어싱(biasing)되어서는 안되며, 임의의 소정의 수(number)를 다른 수(number)와 동일한 확률로 생성하여야 한다. 더욱이, 난수 생성기는 이전의 결과의 집합의 크기에 관계없이 예측할 수 없는 난수들을 생성하여야 한다. 따라서, 난수들은 전적으로 예측불가능하여야 하며, 외부 영향에 쉽게 영향을 받지 않아야 한다. 따라서, 이상적인 난수 생성기들은 무작위의 소스(source of randomness)로서 방사성 붕괴(radioactive decay) 또는 제너 다이오드(zener diode) 내의 아날로그 노이즈(analog noise)와 같은 자연력(forces in nature)을 이용하였다. 이러한 디바이스는 자연력이 예측될 수도 없고, 어떠한 영향을 받을 수도 없다는 점에서는 본질적으로 완벽하다.
컴퓨터로 생성되는 많은 난수는 용이하게 예측될 수 있어서, 보안 시스템 또는 도박 게임(games of chance)을 실패하게 만든다. 하드웨어 기반 난수 생성기들(hardware-based random number generators)은 전형적으로 디지털 집적 회로의 집적을 어렵게 만드는 아날로그 디바이스를 이용하여 구성되었다. 추가적으로, 이들은 종종 전력 공급기 내의 노이즈 및 컴퓨터 시스템내의 로컬 전자 노이즈(local electronic noise)에 반응하는 데에 있어서 까다로웠다. 따라서, 이러한 생성기들은 스마트카드(smart cards) 또는 전형적인 퍼스널 컴퓨터와 같은 많은 시스템에서의 실시에 대해 비용 면에서 비효과적이었다.
따라서, 단지 디지털 기술만을 이용할 수 있으며, 매우 적은 수의 게이트로 구성될 수 있는 난수 생성 방법 및 장치에 대한 요구가 존재한다. 이것은 난수 생성기가 이로부터 이익을 얻을 수 있는 임의의 제품내에 용이하게 집적될 수 있게 할 것이다.
발명의 개요
본 발명은 전반적으로 플립플롭의 준안정 동작을 이용하여 난수를 생성하는 방법 및 장치를 개시한다. 본 발명의 제 1 실시예에 따르면, 플립플롭은 플립플롭의 셋업 또는 홀드 시간(또는 이들 모두)을 고의로 위반하는 입력으로 클럭킹되어 준안정 동작을 보장한다. 플립플롭의 준안정 작동은 난수를 생성하는 메카니즘을 제공한다.
상기와 같은 플립플롭에의 입력은 플립플롭의 준안정 출력이 클럭 소스(clock source)에 대하여 비동기적이 되게 한다. 따라서, 본 발명의 다른 측면에 따르면, 플립플롭의 준안정 출력을 클럭 소스에 동기화시키는 공지된 동기화 회로가 개시되어 있다.
플립플롭의 동기화된 출력은 입력 파형과 비교되고, 출력 신호가 입력 신호와 정합하지 않는지 여부가 판정되어 준안정 상태가 표시된다. 준안정 이벤트(a meta-stable event)가 검출되는 경우에, 출력 비트가 랜덤 비트로서 제공된다.
본 발명의 제 2 실시예에 따르면, 준안정 이벤트들 사이의 시간 지연은 난수의 생성에 이용될 수 있다. 제 1 실시예에서는 준안정 상태가 균일한 분포(an even distribution)를 가지는 1 또는 0의 오류(mistake)를 생성할 것이라는 사실을 가정한 반면, 제 3 실시예는 준안정성이 소정의 플립플롭의 클래스(a given class of flip-flops)에 대하여 (0 또는 1 중 하나인)하나의 이진 값으로 보다 빈번히 발생함을 가정한다. 제 3 실시예는 0의 반을 "1"로, 나머지 반을 "0"으로 "표시(marking)"함으로써 균일한 난수 분포를 획득한다. 추가적으로, 1의 반은 "1"로, 나머지 반은 "0"으로 표시된다. 따라서, 0 상태 또는 1 상태에서 발생한 오류(mistake)의 비(ratio)에 관계없이, 랜덤 출력 비트의 분포는 균일한 상태로 남을 것이다.
본 발명의 제 4 및 제 5 실시예는 정규의, 또는 신뢰할 수 있는 근거에서 준안정 상태가 되는 플립플롭의 성능에 영향을 미치는 전압 또는 온도와 같은 프로세스 변화를 고려한다. 본 발명의 제 4 실시예는 클럭과 입력 사이의 지연을 조절하여 준안정 동작이 보다 빈번히 발생하도록 한다. 본 발명의 제 5 실시예는 상이한 n개의 플립플롭을 가지는 다수의 회로를 이용하여 n개의 회로 중 적어도 하나가 소정 시간에 준안정 상태로 되도록 함으로써 프로세스 변화를 고려한다.
본 발명의 보다 완전한 이해뿐만 아니라 본 발명의 특징 및 장점이 이어지는 상세한 설명 및 도면을 참조하여 얻어질 것이다.
도 1a는 통상적인 R-S 래치,
도 1b는 통상적인 D 타입 플립플롭,
도 2a는 본 발명에 따른 난수 생성기의 제 1 실시예,
도 2b는 도 2a의 난수 생성기의 출력을 클럭 소스에 동기화하는 데에 이용될 수 있는 동기화 회로,
도 2c는 도 2a 및 도 2b의 회로에 의해서 생성되는 파형들의 세트,
도 3은 난수를 생성하기 위한 오류들(mistakes)간의 시간 지연을 이용하는 본 발명의 제 2 실시예,
도 4a는 본 발명의 제 3 실시에에 따른 난수 생성기,
도 4b는 도 4a의 난수 생성기의 출력을 클럭 소스에 동기화하는 데에 이용될 수 있는 동기화 회로,
도 4c는 도 4a 및 도 4b의 회로에 의해서 생성되는 파형의 세트,
도 5는 클럭과 입력 사이의 지연을 조절하여 메타 안정 동작을 보다 빈번히 발생시키는 본 발명의 제 4 실시예에 따른 난수 생성기,
도 6은 본 발명의 제 5 실시예에 따른 난수 생성기.
도 2a는 본 발명에 따른 난수 생성기(a random number generator)(200)의 제 1 실시예를 도시한다. 본 발명은 플립플롭의 준안정 동작(meta-stable operation)이 난수(random numbers)를 생성하는 물리적 수단을 제공한다는 사실을 인식한다. 예를 들면, 에지 트리거형 플립플롭(an edge-triggered flip-flop)에 대한 셋업(setup) 또는 홀드 시간(hold times)의 위반과 함께 플립플롭 자신의 파라미터들을 변경함으로써 정규의, 또는 신뢰할 수 있는 근거에서 준안정(meta-stable) 상태가 될 수 있는 플립플롭 또는 래치가 제조될 수 있다는 점이 주목된다.
본 발명의 제 1 실시예에 따르면, 플립플롭(210)은 플립플롭(210)의 셋업 또는 홀드 시간(또는 이 모두)을 고의로 위반하는 입력으로 클럭킹되어 준안정 동작(meta-stable operation)을 보장한다. 셋업 또는 홀드 시간은, 예를 들면 지연(215,220)을 이용하여 위반될 수 있다. 플립플롭(210)은, 예를 들면 D, T 또는 JK 타입의 플립플롭으로서 구현될 수 있다. 추가적으로, 플립플롭(210)은 본 기술 분야의 당업자에게 자명한 바와 같이 간단한 래치(100) 및 약간 상이한 회로로 구현될 수 있다.
클럭 소스는 클럭 발진기(230)와, Q바(Qbar) 출력이 자신의 D 입력으로 다시 공급되는 D 타입 플립플롭(225)에 의해서 생성된다. 이러한 방식으로, D 타입 플립플롭(225)은 T 타입 플립플롭(토글된 출력(toggled output))과 동일한 방식으로 동작하여 이분 메카니즘(divide-by-two mechanism)을 제공한다. 따라서, 플립플롭(210)의 D 입력은 1 및 0을 교번(alternating)함으로써 구동된다.
도 2a 및 2c에서 가장 명확하게 알 수 있는 바와 같이, 클럭 발진기(230)에 의해서 생성되는 파형 Clock은 도 2a에서 "클럭(Clock)"으로 표시된 샘플 포인트(sample point)에서 획득된다. 이분 플립플롭(divide-by-two flipflop)(225)에 의해서 생성되는 파형 Input은 도 2a에서 "입력(Input)"으로 표시된 샘플 포인트에서 획득된다. 유사하게, 지연(215)에 의해서 생성되는 파형 Input_D 및 지연(220)에 의해서 생성되는 파형 Input_clock은 도 2a에서 상응하는 샘플 포인트(sample point)에서 획득된다.
도 2c에 도시된 바와 같이, 지연(215,220)에 의한 셋업 또는 홀드 시간(또는 이들 모두)의 위반은 파형 Meta_stable_out에 의해서 예증되는 바와 같이 플립플롭(210)이 준안정 동작을 나타낼 것을 보장한다. 아래에서 논의될 바와 같이, 플립플롭(210)의 준안정 동작은 난수를 생성하는 메카니즘을 제공한다.
지연(215,220)으로부터의 지연, 플립플롭(210) 자체의 고유의 지연(inherent delay), 및 가장 중요하게는 준안정성 동작으로부터의 비균일 지연(non-uniform delay)의 결과로서, 파형 Meta_stable_out은 파형 Clock에 동기가 맞추어지지 않는다. 따라서, 도 2a의 난수 생성기(200)를 동기식 애플리케이션에 적합하도록 만들기 위하여, 파형 Meta_stable_out을 파형 Clock과 동기화시키는 예시적인 메카니즘이 도 2b에 제공된다. 도 2a 및 도 2b는 동일한 원문자(bubbles of like letters)를 결합함으로써 접속됨이 주목된다.
도 2b에 도시된 동기화 회로(synchronizing circuitry)(235)는 준안정 상태가 쉽게 되지 않도록 선택된 많은 연속하는 플립플롭들(240-242)을 포함한다. 추가적으로, 이들 플립플롭(240-242) 중 하나가 준안정 상태가 되는 경우에, 클럭 신호는 다음 플립플롭(240-242)에서 신호가 샘플링되는 경우에 플립플롭이 안정화되도록 준안정 플립플롭의 출력이 정착될 수 있을 만큼 충분히 긴 레이트(rate)를 가져야 한다. 이러한 방식으로, 각각의 플립플롭(240-242)은 준안정성을 제거하면서 파형 Meta_stable_out을 파형 Clock에 동기화시킬 기회를 향상시킨다. 사실, 이러한 회로에 대한 부정확한 동작의 가능성은 10년이나 지나서 측정될 것이다.
배타적 OR 게이트("XOR")(250)는 파형 Meta_stable_out의 동기화된 버전(version)을 파형 Input(이분 플립플롭(divide-by-two flip-flop)(225)의 출력에서 샘플링됨)과 비교한다. XOR 게이트(250)의 출력은 단지 하나의 입력만이 하이(high) 상태일 때에 하이(high) 상태일 것이므로, 파형 stable_out이 입력 신호와 정합(match)되지 않는 경우에는 XOR 게이트(250)의 출력("오류"("Mistake"))은 하이 상태일 것이다. XOR 게이트(250)의 출력("오류"("Mistake"))은 쉬프트 레지스터(a shift register)(260)의 쉬프트 입력(shift input)에 인가되며, 쉬프트 레지스터(260)는 오류(Mistake)가 있을 때마다 stable_out 신호로부터 한 비트를 쉬프트시킬 것이다. 따라서, 본 발명의 제 1 실시예는 에러(오류(mistake))가 존재할 때마다 비트를 수집한다(collect).
제 1 실시예는 준안정 상태가 균일한 분포(an even distribution)로 1과 0의 오류(mistake)를 생성할 것으로 가정되었음이 주목된다. 또한, 난수 생성기가 균일한 분포의 1 및 0을 생성하지 않는 경우에는 난수 생성기가 바이어스(bias)를 가질 것임이 주목된다.
본 발명의 제 2 실시예에 따르면, 오류들(mistakes)간의 시간 지연이 난수의 생성에 이용될 수 있다. 도 3은 도 2b에서와 동일한 연속하는 플립플롭들(240-242) 및 XOR 게이트(250)를 포함하는 동기화 회로(300)를 도시한다. 도 3의 동기화 회로는 도 2a의 난수 생성기(200)와 결합하여 동작한다. 연속하는 플립플롭들(240-242)은 도 2b와 관련하여 전술한 바와 동일한 방식으로 동작하여 파형 Meta_stable_out을 파형 Clock과 동기화시킨다. XOR 게이트(250)는 도 2b와 관련하여 전술한 바와 동일한 방식으로 동작하여 오류 신호(Mistake signal)를 생성한다.
도 3에 도시된 바와 같이, 동기화 회로(300)는 오류들(mistakes)간의 시간을 측정하도록 이분 플립플롭(a divide-by flip-flop)(310) 및 계수기(320)를 포함한다. 계수기(320)는, 예를 들면 4비트 계수기로서 구현될 수 있다. 계수기의 최하위 비트(LSB)들은 난수를 생성하는 데에 이용될 수 있다. 이어서, 계수기(320)는 각각의 오류(mistake)에 따라 턴 온(turn on) 및 턴 오프(turn off)될 수 있다. 예를 들면, 도 2c에 도시된 파형에 대하여, 6개의 클럭 싸이클(이진수=110)이 오류(mistakes) 0과 1 사이에 발생한다. 따라서, 이진 계수기(320)는 0의 랜덤 비트(a random bit)(LSB)를 생성할 것이다. 바이어스가 발생하지 않는다고 가정한다면, 보다 많은 랜덤 비트들이 각각의 시간 간격마다 추출될 수 있다. 따라서, 평균적으로 계수 시간의 50%를 초과하여 나타날 수 있는 카운터 값 내의 비트를 포함해서는 안된다. 그 경우, 계수기 값의 MSB는 계수 시간의 절반을 초과하는 시간 동안 0으로 유지될 수도 있다.
이전에 기술된 바와 같이, 제 1 실시예는 준안정 상태가 균일한 분포를 가지는 0 또는 1의 오류들(mistakes)을 생성할 것임을 가정했다. 그러나, 주어진 종류의 플립플롭(a given class of flip-flops)에 대하여 준안정성이 대부분 0(또는 1)상에서 발생하는 것(즉, 플립플롭 입력이 0 또는 1 중 어느 하나의 이진 값을 가지면 그러한 오류들(mistakes)이 대부분 획득되는 것)으로 실험적인 결과가 나타난 경우에는, 0(zeros)의 반을 "1"로, 0(zeros)의 나머지 반을 "0"으로 "표시(marking)"하고, 1의 반을 "1"로, 1의 나머지 반을 "0"으로 "표시(marking)"함으로써 균일한 분포가 획득될 수 있다. 따라서, 본 발명의 제 3 실시예에 따라서, 파형 Input내의 0의 반은 "1"로, 0의 나머지 반은 "0"으로 표시(mark)된다. 유사하게, 파형 Input내의 1의 반은 "1"로 표시(mark)되고, 1의 나머지 반은 "0"으로 표시(mark)된다. 예시적인 실시예는 오류들(mistakes)이 대부분 플립플롭 입력이 0의 이진 값을 가지는 경우에 획득됨을 가정한다.
도 4a에 도시된 바와 같이, 난수 생성기(400)는 도 2a와 관련하여 전술한 바와 동일한 방식으로 동작하는 플립플롭(210), 지연(215,220), D 타입 플립플롭(225) 및 클럭 발진기(230)를 포함한다. 추가적으로, 난수 생성기(400)는 파형 Input내의 0의 반은 "1"로, 나머지 0은 "0"으로 표시(mark)한 도 4c의 표시(Mark) 신호를 생성하는 이분 플립플롭(a divide-by-two flip-flop)(410)을 포함한다.
도 4b는 도 2b에서와 동일한 연속하는 플립플롭들(240-242), XOR 게이트(250) 및 쉬프트 레지스터(260)를 포함하는 동기화 회로(450)를 도시한다. 도 4b의 동기화 회로(450)는 도 4a의 난수 생성기(400)와 결합하여 동작한다. 연속하는 플립플롭들(240-242)은 도 2b와 관련하여 전술한 바와 동일한 방식으로 동작하여 파형 Meta_stable_out을 파형 Clock에 동기화시킨다. XOR 게이트(250)는 도 2b와 관련하여 전술한 방식과 동일한 방식으로 동작하여 오류(Mistake) 신호를 생성한다.
XOR 게이트(250)의 출력("오류(Mistake)")은 도 2b와 동일한 방식으로 쉬프트 레지스터(260)의 쉬프트 입력에 인가된다. 입력 라인이 도 2b의 동기화 회로내의 stable_out 신호에 접속되는 반면에, 동기화 회로(450)의 입력 라인은 표시(Mark) 신호에 접속된다. 이러한 방식으로, 오류(Mistake)가 존재할 때마다, 쉬프트 레지스터(260)는 표시(Mark) 신호로부터 한 비트를 쉬프트시킬 것이다. 따라서, 도 4c에 도시된 바와 같이, 오류(mistake) 0에 대하여, (표시(Mark) 신호에 근거하여)0과 동일한 비트가 획득될 것이다. 유사하게, 오류(mistake) 1에 대하여, (표시(Mark) 신호에 근거하여) 1과 동일한 비트가 획득될 것이다.
또한, 난수 생성기(400)가 플립플롭(210)으로의 1의 입력을 "1" 또는 "0" 중 하나로 표시(mark)함이 주목된다. 따라서, 1 상태를 갖는 오류(mistake)가 발생하는 경우에도, 1 상태로 이루어진 오류(mistakes)로 인한 랜덤 비트에 대해 균일한 분포 또한 획득될 것이다. 따라서, 이 회로는 1 또는 0 상태에서 발생하는 에러들간의 바이어스에 많은 영향을 받지 않는다.
전압 또는 온도와 같은 프로세스의 변화는 정규의 또는 신뢰할 만한 기반에서 준안정 상태가 되는 플립플롭의 성능에 영향을 미칠 수 있음을 알게 되었다. 따라서, 도 5에 도시된 본 발명의 제 4 실시예는 클럭과 입력 사이의 지연을 조절하여 준안정 동작을 보다 빈번히 발생시키는 난수 생성기(500)를 이용한다. 도 5에 도시된 바와 같이, 난수 생성기(500)는 도 2a와 관련하여 전술한 바와 동일한 방식으로 동작하는 플립플롭(210), D 타입 플립플롭(225) 및 클럭 발진기(230)를 포함한다. 추가적으로, 난수 생성기(500)는 가변 지연기(215-VAR,220-VAR)를 포함한다. 이들 지연은 실시간으로 조절되어 오류(mistakes)의 수를 증가시키고, 그에 의해, 회로의 생산성을 증가시킬 수 있다.
유사하게, 도 6에 도시된 본 발명의 제 5 실시예는 상이한 플립플롭을 가지는 다수의 회로(610-1 내지 610-n)를 이용하여 n개의 회로 중 적어도 하나의 회로가 소정의 시간에 준안정 상태가 되게 함으로써 프로세스 변화를 고려한다. 선택기(620)는 하드웨어 또는 소프트웨어로 구현될 수 있다. 예를 들면, 선택기(620)는 플립플롭 회로(610)를 선택하여 최상위 비트(the most bits)를 생성할 수 있다(비트가 생성되는 경우에는, 회로(610)는 준안정 상태임).
0의 반이 "1"로 "표시(mark)"되며, 나머지 반이 "0"으로 "표시(mark)"되는 본 발명의 제 3 실시예는 생성된 랜덤 비트들 내의 바이어스를 방지하는 데에 기여하는 것이 주목된다. 바이어스는 본 기술 분야에 공지된 방식으로 배타적 OR 연산을 인접하는 비트에 적용함으로써 제거될 수 있음 또한 주목된다. 예를 들면, XOR 게이트가 모든 2 비트마다 제공되는 경우에는 결과는 1 비트일 것이다. 따라서, 출력은 보다 작은 비트를 가지지만(보다 낮은 산출), 보다 균일한 난수 분포가 생성된다(보다 작은 바이어스).
본 명세서에 기술된 난수 생성기는 이용 전에 알려진 상태(및 준안정 상태가 아닌 상태)로 리셋(reset)되어야 한다. 추가적으로, 계수기는 본 발명의 난수 생성기에 구현되어 언제 쉬프트 레지스터가 채워지는지를(full) 검출할 수 있다. 따라서, 계수기는 쉬프트가 존재하는 때마다 증가되어야 한다. 계수기는 프로세서 인터럽트(a processor interrupt)를 생성하여 생성된 비트를 인출할 수 있다.
본 명세서에 도시하고 설명한 실시예 및 변형은 단지 본 발명의 원리를 예시한 것이며, 다양한 변형들은 본 발명의 범주 및 사상을 벗어나지 않고서 본 기술 분야의 당업자에 의해서 실시될 수 있음을 이해하여야 한다.

Claims (53)

  1. 난수(a random number)를 생성하는 방법에 있어서,
    플립플롭(a flip-flop)(210)을 준안정 상태로(in a meta-stable state) 동작시키는 단계와,
    상기 준안정 상태에서 상기 플립플롭(210)의 출력이 인가된 입력과 정합(match)하지 않는 경우 상기 플립플롭(210)의 출력을 랜덤 비트(a random bit)로서 생성하는 단계
    를 포함하는 난수 생성 방법.
  2. 제 1 항에 있어서,
    상기 플립플롭(210)의 셋업 시간(a set-up time)을 위반(violating)함으로써 상기 플립플롭(210)이 상기 준안정 상태에 놓이게 되는 난수 생성 방법.
  3. 제 1 항에 있어서,
    상기 플립플롭(210)의 홀드 시간(a hold time)을 위반(violating)함으로써 상기 플립플롭(210)이 상기 준안정 상태에 놓이게 되는 난수 생성 방법.
  4. 제 1 항에 있어서,
    상기 플립플롭(210)은 쉽게 준안정 상태가 되기 쉽도록 구성되는 난수 생성 방법.
  5. 제 1 항에 있어서,
    상기 생성 단계는 상기 플립플롭(210)의 출력이 인가된 입력과 정합하지 않는 경우에 오류 신호(a mistake signal)내에 비트를 세팅하는 단계를 더 포함하는 난수 생성 방법.
  6. 제 5 항에 있어서,
    상기 오류 신호(the mistake signal)내 상기 비트의 세팅시, 상기 랜덤 비트가 얻어지는 난수 생성 방법.
  7. 제 1 항에 있어서,
    상기 플립플롭(210)의 출력을 로컬 클럭 소스(a local clock source)(230)에 동기화시키는 단계를 더 포함하는 난수 생성 방법.
  8. 제 7 항에 있어서,
    상기 동기화시키는 단계를 수행하는 동기화 회로(a synchronizing circuit)(235)는 상기 플립플롭보다 쉽게 준안정 상태로 되지 않는 난수 생성 방법.
  9. 제 1 항에 있어서,
    다수의 상기 랜덤 비트를 수집(collect)하여 난수를 생성하는 단계를 더 포함하는 난수 생성 방법.
  10. 난수를 생성하는 방법에 있어서,
    플립플롭(210)을 준안정 상태로 동작시키는 단계와,
    상기 플립플롭(210)의 출력이 인가된 입력과 정합하지 않는 경우에 오류 신호(a mistake signal)내에 비트를 세팅하고 상기 비트들의 세팅간의 시간을 결정하는 단계와,
    상기 결정된 시간을 이용하여 적어도 하나의 랜덤 비트를 생성하는 단계
    를 포함하는 난수 생성 방법.
  11. 제 10 항에 있어서,
    상기 플립플롭(210)은 상기 플립플롭(210)의 셋업 시간(a setup time)을 위반함으로써 상기 준안정 상태에 놓이게 되는 난수 생성 방법.
  12. 제 10 항에 있어서,
    상기 플립플롭(210)은 상기 플립플롭(210)의 홀드 시간(a hold time)을 위반함으로써 상기 준안정 상태에 놓이게 되는 난수 생성 방법.
  13. 삭제
  14. 제 10 항에 있어서,
    상기 플립플롭(210)의 출력을 로컬 클럭 소스(a local clock source)(230)에 동기화시키는 단계를 더 포함하는 난수 생성 방법.
  15. 제 10 항에 있어서,
    다수의 상기 랜덤 비트들을 수집하여 난수를 생성하는 단계를 더 포함하는 난수 생성 방법.
  16. 난수를 생성하는 방법에 있어서,
    플립플롭(210)으로의 입력 신호내의 0의 반은 0으로 표시(mark)되고 나머지 0은 1로 표시되도록 상기 입력 신호를 표시하는 단계와,
    상기 플립플롭(210)을 준안정 상태로 동작시키는 단계와,
    상기 준안정 상태에서 상기 플립플롭(210)의 출력이 인가된 입력과 정합(match)하지 않는 경우 상기 표시된 입력 신호를 랜덤 비트(a random bit)로서 생성하는 단계
    를 포함하는 난수 생성 방법.
  17. 제 16 항에 있어서,
    상기 플립플롭(210)은 상기 플립플롭(210)의 셋업 시간(a set-up time)을 위반함으로써 상기 준안정 상태에 놓이게 되는 난수 생성 방법.
  18. 제 16 항에 있어서,
    상기 플립플롭(210)은 상기 플립플롭(210)의 홀드 시간(a hold time)을 위반함으로써 상기 준안정 상태에 놓이게 되는 난수 생성 방법.
  19. 제 16 항에 있어서,
    상기 생성 단계는 상기 플립플롭(210)의 출력이 인가된 입력과 정합하지 않는 경우에 오류 신호(a mistake signal)내에 비트를 세팅하는 단계를 더 포함하는 난수 생성 방법.
  20. 제 19 항에 있어서,
    상기 오류 신호(mistake signal)의 상기 비트의 세팅 시, 랜덤 비트가 얻어지는 난수 생성 방법.
  21. 제 19 항에 있어서,
    상기 플립플롭(210)의 출력을 로컬 클럭 소스(a local clock source)(230)에 동기화시키는 단계를 더 포함하는 난수 생성 방법.
  22. 제 19 항에 있어서,
    다수의 상기 랜덤 비트들을 수집하여 난수를 생성하는 단계를 더 포함하는 난수 생성 방법.
  23. 난수를 생성하는 방법에 있어서,
    플립플롭(210)으로의 입력 신호내의 1의 반은 0으로 표시(mark)되고 나머지 1은 1로 표시되도록 상기 입력 신호를 표시하는 단계와,
    상기 플립플롭(210)을 준안정 상태로 동작시키는 단계와,
    상기 준안정 상태에서 상기 플립플롭(210)의 출력이 인가된 입력과 정합(match)하지 않는 경우 상기 표시된 입력 신호를 랜덤 비트(a random bit)로서 생성하는 단계
    를 포함하는 난수 생성 방법.
  24. 난수를 생성하는 방법에 있어서,
    플립플롭(210)으로의 입력 신호내의 0의 반은 0으로 표시(mark)되고 나머지 0은 1로 표시되며, 1의 반은 0으로 표시되고 나머지 1은 1로 표시되도록 상기 입력 신호를 표시하는 단계와,
    상기 플립플롭(210)을 준안정 상태로 동작시키는 단계와,
    상기 준안정 상태에서 상기 플립플롭(210)의 출력이 인가된 입력과 정합(match)하지 않는 경우 상기 표시된 입력 신호를 랜덤 비트(a random bit)로서 생성하는 단계
    를 포함하는 난수 생성 방법.
  25. 난수를 생성하는 방법에 있어서,
    가변 지연(a variable delay)을 플립플롭(210)의 입력에 인가하되, 상기 가변 지연은 상기 플립플롭(210)의 셋업 시간을 위반하고, 이로 인하여 상기 플립플롭(210)을 준안정 상태에 놓는 단계와,
    상기 준안정 상태에서 상기 플립플롭(210)의 출력이 인가된 입력과 정합(match)하지 않는 경우 상기 플립플롭(210)의 출력을 랜덤 비트(a random bit)로서 생성하는 단계
    를 포함하는 난수 생성 방법.
  26. 제 25 항에 있어서,
    상기 생성 단계는 상기 플립플롭(210)의 출력이 인가된 입력과 정합하지 않는 경우에 오류 신호(a mistake signal)내에 비트를 세팅하는 단계를 더 포함하는 난수 생성 방법.
  27. 제 25 항에 있어서,
    상기 플립플롭(210)의 출력을 로컬 클럭 소스(230)에 동기화시키는 단계를 더 포함하는 난수 생성 방법.
  28. 난수를 생성하는 방법에 있어서,
    플립플롭(210)의 입력에 가변 지연을 인가하되, 상기 가변 지연은 상기 플립플롭(210)의 홀드 시간을 위반하며, 이로 인하여 상기 플립플롭(210)을 준안정 상태에 놓이게 하는 단계와,
    상기 준안정 상태에서 상기 플립플롭(210)의 출력이 인가된 입력과 정합(match)하지 않는 경우 상기 플립플롭(210)의 출력을 랜덤 비트(a random bit)로서 생성하는 단계
    를 포함하는 난수 생성 방법.
  29. 제 28 항에 있어서,
    상기 생성 단계는 상기 플립플롭(210)의 출력이 인가된 입력과 정합하지 않는 경우에 오류 신호(a mistake signal)내에 비트를 세팅하는 단계를 더 포함하는 난수 생성 방법.
  30. 제 28 항에 있어서,
    상기 플립플롭(210)의 출력을 로컬 클럭 소스(a local clock source)(230)에 동기화시키는 단계를 더 포함하는 난수 생성 방법.
  31. 난수를 생성하는 방법에 있어서,
    다수의 플립플롭(210)을 병렬로 동작시켜서 상기 플립플롭(210) 중 적어도 하나의 플립플롭이 준안정 상태에 놓이도록 하는 단계와,
    상기 준안정 상태에서 상기 플립플롭(210)의 출력이 인가된 입력과 정합(match)하지 않는 경우 상기 플립플롭(210)의 출력을 랜덤 비트(a random bit)로서 생성하는 단계
    를 포함하는 난수 생성 방법.
  32. 준안정 상태로 동작하는 플립플롭(210)을 포함하되, 상기 준안정 상태에서 상기 플립플롭(210)의 출력이 인가된 입력과 정합(match)하지 않는 경우 상기 플립플롭(210)의 출력을 랜덤 비트(a random bit)로서 생성하는
    난수 생성기.
  33. 제 32 항에 있어서,
    상기 플립플롭(210)은 상기 플립플롭(210)의 셋업 시간을 위반함으로써 상기 준안정 상태에 놓이게 되는 난수 생성기.
  34. 제 32 항에 있어서,
    상기 플립플롭(210)은 상기 플립플롭(210)의 홀드 시간을 위반함으로써 상기 준안정 상태에 놓이게 되는 난수 생성기.
  35. 제 32 항에 있어서,
    상기 플립플롭(210)의 출력이 인가된 입력과 정합하지 않는 경우에 비트(a bit)가 오류 신호(a mistake signal)내에 세팅되는 난수 생성기.
  36. 제 32 항에 있어서,
    로컬 클럭 소스(a local clock source)(230)와,
    상기 플립플롭(210)의 출력을 상기 로컬 클럭 소스(local clock source)(230)에 동기화시키는 동기화 회로(synchronizing circuitry)(235)를 더 포함하는 난수 생성기.
  37. 제 32 항에 있어서,
    다수의 상기 랜덤 비트들이 수집되어 난수를 생성하는 난수 생성기.
  38. 난수 생성기에 있어서,
    준안정 상태로 동작하는 플립플롭(210)과,
    상기 플립플롭(210)의 출력이 인가된 입력과 정합하지 않는 경우간의 시간을 이용하여 적어도 하나의 랜덤 비트를 생성하는 계수기
    를 포함하는 난수 생성기.
  39. 제 38 항에 있어서,
    상기 플립플롭(210)은 상기 플립플롭(210)의 셋업 시간(a set-up time)을 위반함으로써 상기 준안정 상태에 놓이게 되는 난수 생성기.
  40. 제 38 항에 있어서,
    상기 플립플롭(210)은 상기 플립플롭(210)의 홀드 시간(a hold time)을 위반함으로써 상기 준안정 상태에 놓이게 되는 난수 생성기.
  41. 제 38 항에 있어서,
    상기 플립플롭(210)의 출력이 인가된 입력과 정합하지 않는 경우에 비트(a bit)가 오류 신호(a mistake signal)내에 세팅되는 난수 생성기.
  42. 제 38 항에 있어서,
    로컬 클럭 소스(230)와,
    상기 플립플롭(210)의 출력을 상기 로컬 클럭 소스(local clock source)(230)에 동기화시키는 동기화 회로(235)를 더 포함하는 난수 생성기.
  43. 난수 생성기에 있어서,
    준안정 상태로 동작하는 플립플롭(210)과,
    상기 플립 플롭(210)으로의 입력 신호내의 0의 반은 0으로 표시되고 나머지 0은 1로 표시되도록 상기 입력 신호를 표시하는 표시 회로(a marking circuit)와,
    상기 준안정 상태에서 상기 플립플롭(210)의 출력이 인가된 입력과 정합(match)하지 않는 경우 상기 플립플롭(210)의 표시된 입력 신호를 랜덤 비트(a random bit)로서 생성하는 수단
    을 포함하는 난수 생성기.
  44. 난수 생성기에 있어서,
    준안정 상태로 동작하는 플립플롭(210)과,
    상기 플립플롭(210)으로의 입력 신호 내의 1의 반은 0으로 표시(mark)되고 나머지 1은 1로 표시되도록 상기 입력 신호를 표시하는 표시 회로와,
    상기 준안정 상태에서 상기 플립플롭(210)의 출력이 인가된 입력과 정합(match)하지 않는 경우 상기 플립플롭(210)의 표시된 입력 신호를 랜덤 비트(a random bit)로서 생성하는 수단
    을 포함하는 난수 생성기.
  45. 난수 생성기에 있어서,
    준안정 상태로 동작하는 플립플롭(210)과,
    상기 플립플롭(210)으로의 입력 신호내의 0의 반은 0으로 표시(mark)되고 나머지 0은 1로 표시되며, 1의 반은 0으로 표시되고 나머지 1은 1로 표시되도록 상기 입력 신호를 표시하는 표시 회로와,
    상기 준안정 상태에서 상기 플립플롭(210)의 출력이 인가된 입력과 정합(match)하지 않는 경우 상기 플립플롭(210)의 표시된 입력 신호를 랜덤 비트(a random bit)로서 생성하는 수단
    을 포함하는 난수 생성기.
  46. 난수 생성기에 있어서,
    플립플롭(210)과,
    상기 플립플롭(210)의 적어도 하나의 입력에 접속되는 가변 지연기를 포함하되,
    상기 가변 지연기는 상기 플립플롭(210)의 셋업 시간(a set-up time)을 위반함으로써 상기 플립플롭(210)이 준안정 상태에 놓이게 하여 상기 준안정 상태에서 랜덤 비트(a random bit)를 생성하는
    난수 생성기.
  47. 난수 생성기에 있어서,
    플립플롭(210)과,
    상기 플립플롭(210)의 적어도 하나의 입력에 접속되는 가변 지연기를 포함하되,
    상기 가변 지연기는 상기 플립플롭(210)의 홀드 시간(a hold time)을 위반함으로써 상기 플립플롭(210)이 준안정 상태에 놓이게 하여 상기 준안정 상태에서 랜덤 비트(a random bit)를 생성하는
    난수 생성기.
  48. 병렬로 동작하는 다수의 플립플롭(210)을 포함하되, 상기 플립플롭(210) 중 적어도 하나는 준안정 상태에 놓여서 상기 준안정 상태에서 상기 플립플롭(210)의 출력이 인가된 입력과 정합(match)하지 않는 경우 상기 플립플롭(210)의 출력을 랜덤 비트(a random bit)로서 생성하는
    난수 생성기.
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
KR1020017014074A 2000-03-06 2001-03-05 난수 생성 방법 및 난수 생성기 KR100847213B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/519,549 US6631390B1 (en) 2000-03-06 2000-03-06 Method and apparatus for generating random numbers using flip-flop meta-stability
US09/519,549 2000-03-06
PCT/EP2001/002428 WO2001067231A2 (en) 2000-03-06 2001-03-05 Method and apparatus for generating random numbers using flip-flop meta-stability

Publications (2)

Publication Number Publication Date
KR20020021094A KR20020021094A (ko) 2002-03-18
KR100847213B1 true KR100847213B1 (ko) 2008-07-17

Family

ID=24068785

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017014074A KR100847213B1 (ko) 2000-03-06 2001-03-05 난수 생성 방법 및 난수 생성기

Country Status (7)

Country Link
US (1) US6631390B1 (ko)
EP (1) EP1188109A2 (ko)
JP (1) JP2003526151A (ko)
KR (1) KR100847213B1 (ko)
CN (1) CN1214319C (ko)
MY (1) MY127230A (ko)
WO (1) WO2001067231A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022055004A1 (ko) * 2020-09-14 2022-03-17 엘지전자 주식회사 전송 인터페이스 장치 및 이를 구비하는 신호처리장치

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7243117B2 (en) * 2001-02-07 2007-07-10 Fdk Corporation Random number generator and probability generator
JP2002268874A (ja) * 2001-03-07 2002-09-20 Toshiba Corp 乱数シード生成回路及びこれを備えたドライバ、並びに、sdメモリカードシステム
US7113966B2 (en) * 2001-07-25 2006-09-26 Koninklijke Philips Electronics N.V. Method and apparatus for decorrelating a random number generator using a pseudo-random sequence
JP3604674B2 (ja) * 2001-09-26 2004-12-22 株式会社東芝 乱数生成回路
US7054348B2 (en) * 2001-11-15 2006-05-30 Koninklijke Philips Electronic N.V. Using real random number generator as proof of time
US6963888B2 (en) * 2001-11-29 2005-11-08 Koninklijke Philips Electronics N.V. Method and apparatus for preventing noise from influencing a random number generator based on flip-flop meta-stability
US20030236802A1 (en) * 2002-06-20 2003-12-25 Koninklijke Philips Electronics N.V. Method and apparatus for generating a random number using the meta-stable behavior of latches
JP3696209B2 (ja) * 2003-01-29 2005-09-14 株式会社東芝 シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器
US7356551B2 (en) * 2003-03-14 2008-04-08 Nxp B.V. Method and apparatus of retaining maximum speed of flip-flop metastability based random number generators
US7325021B2 (en) * 2003-03-14 2008-01-29 Nxp B.V. VLSI implementation of metastability-based random number generator using delay ladders
JP4248950B2 (ja) * 2003-06-24 2009-04-02 株式会社ルネサステクノロジ 乱数発生装置
JP3803664B2 (ja) * 2003-09-30 2006-08-02 株式会社東芝 乱数生成回路、半導体集積回路、icカード及び情報端末機器
DE602004005959T2 (de) * 2004-02-04 2007-12-20 Infineon Technologies Ag Vorrichtung zum Erzeugen einer Zufalls-Bitfolge
DE602004027663D1 (de) * 2004-02-12 2010-07-22 Hitachi Ulsi Sys Co Ltd Zufallszahlen-erzeugungsverfahren und integrierte halbleiterschaltungseinrichtung
DE602004008516T2 (de) 2004-02-26 2008-05-15 Telecom Italia S.P.A. Verfahren und schaltung zum generieren von zufallszahlen und computerprogrammprodukt dafür
WO2006015624A1 (en) * 2004-08-09 2006-02-16 Telecom Italia S.P.A. Random number generation based on logic circuits with feedback
EP1782181B1 (en) * 2004-08-09 2010-10-13 Telecom Italia S.p.A. Method and apparatus for generating random data
WO2006132329A1 (ja) * 2005-06-10 2006-12-14 International Business Machines Corporation マイクロコンピュータ及びそのテスト方法
JP4549263B2 (ja) * 2005-09-01 2010-09-22 富士通セミコンダクター株式会社 乱数発生装置および乱数発生方法
EP1763136A1 (fr) * 2005-09-07 2007-03-14 Stmicroelectronics Sa Procédé de génération de nombres variables
CN1949708B (zh) * 2006-11-10 2011-02-02 华为技术有限公司 随机数发生装置、方法及对应的数据交互系统
ES2326718B1 (es) * 2007-08-17 2010-07-14 Universidad Del Pais Vasco-Euskal Herriko Unibertsitatea Generador de numeros realmente aleatorios.
JP4427581B2 (ja) * 2008-01-08 2010-03-10 株式会社東芝 乱数生成回路
CN101539847B (zh) * 2009-04-16 2015-01-21 北京中星微电子有限公司 随机数产生装置及其方法
JP5273294B2 (ja) * 2010-03-26 2013-08-28 富士通株式会社 乱数生成器、暗号化装置、及び認証装置
EP3467716B1 (en) * 2011-03-31 2020-11-04 ICTK Holdings Co., Ltd. Apparatus and method for generating a digital value
US20140197865A1 (en) 2013-01-11 2014-07-17 International Business Machines Corporation On-chip randomness generation
HK1176805A2 (en) * 2013-01-15 2013-08-02 X On Comm Ltd A method and system for wireless communication
KR20140108362A (ko) 2013-02-25 2014-09-11 삼성전자주식회사 난수 발생기
US9323285B2 (en) * 2013-08-13 2016-04-26 Altera Corporation Metastability prediction and avoidance in memory arbitration circuitry
JP6167876B2 (ja) 2013-11-28 2017-07-26 富士通株式会社 電子回路、電子機器及び認証システム
US9524619B2 (en) 2014-02-05 2016-12-20 Z4 Poker, LLC Systems and methods for playing a wagering game
FR3023396B1 (fr) * 2014-07-02 2016-07-29 Stmicroelectronics Rousset Generateur de nombres aleatoires
CN105242903B (zh) * 2015-10-21 2018-01-16 昆腾微电子股份有限公司 随机数生成装置和方法
FR3072481B1 (fr) * 2017-10-12 2019-11-08 Stmicroelectronics Dispositif de generation d'un signal aleatoire
CN109995359B (zh) * 2019-04-10 2023-03-28 侯凤妹 边沿触发器亚稳态观测系统及其观测方法
CN111555754B (zh) * 2020-05-26 2023-03-10 成都铭科思微电子技术有限责任公司 一种应用于高速模数转换器同步时钟采样的亚稳态检测电路
WO2023211466A1 (en) * 2022-04-29 2023-11-02 Qrypt, Inc. Generation of quantum random numbers from single-photon avalanche diodes

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4905176A (en) * 1988-10-28 1990-02-27 International Business Machines Corporation Random number generator circuit

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3855555A (en) * 1970-09-04 1974-12-17 Industrial Research Prod Inc Delta modulator having low-level random noise characteristic
GB1299020A (en) 1970-09-19 1972-12-06 Marconi Instruments Ltd Improvements in or relating to pulse wave train generators
US3790768A (en) 1972-09-28 1974-02-05 Prayfel Inc Random number generator
FR2211169A5 (ko) 1972-12-15 1974-07-12 Sle Citerel Lannion Elec
GB1398020A (en) 1973-08-16 1975-06-18 Hewlett Packard Ltd Toggle flip-flop equivalent component
US4395703A (en) * 1981-06-29 1983-07-26 Motorola Inc. Precision digital random data generator
DE3580679D1 (de) 1984-02-06 1991-01-03 British Broadcasting Corp Binaere pseudo-zufalls-reihengeneratoren.
US4611183A (en) * 1984-04-30 1986-09-09 Motorola, Inc. Digital decorrelating random data generator
US4771426A (en) * 1984-07-20 1988-09-13 Unisys Corporation Isochronous clock reconstruction
US4771429A (en) 1986-09-18 1988-09-13 Abbott Laboratories Circuit combining functions of cyclic redundancy check code and pseudo-random number generators
JP2577894B2 (ja) 1986-09-25 1997-02-05 クラリオン株式会社 擬似ランダム雑音符号発生回路
JP2577923B2 (ja) 1987-07-31 1997-02-05 クラリオン株式会社 擬似ランダム雑音符号発生器
US4929850A (en) * 1987-09-17 1990-05-29 Texas Instruments Incorporated Metastable resistant flip-flop
US5105376A (en) 1990-08-08 1992-04-14 Vlsi Technology, Inc. Linear feedback shift registers
US5365122A (en) 1990-11-09 1994-11-15 Vlsi Technology, Inc. Meta stable resistant signal detector
JP2795545B2 (ja) 1991-02-01 1998-09-10 シャープ株式会社 雑音発生装置
JP2841882B2 (ja) 1991-02-04 1998-12-24 日本電気株式会社 疑似乱数パタン発生器
JPH05291891A (ja) 1992-02-14 1993-11-05 Ricoh Co Ltd 一次乱数パルス列発生回路装置
US5317202A (en) * 1992-05-28 1994-05-31 Intel Corporation Delay line loop for 1X on-chip clock generation with zero skew and 50% duty cycle
US5471159A (en) * 1992-09-18 1995-11-28 Tektronix, Inc. Setup or hold violation triggering
US5467464A (en) * 1993-03-09 1995-11-14 Apple Computer, Inc. Adaptive clock skew and duty cycle compensation for a serial data bus
JPH0832416A (ja) 1994-07-15 1996-02-02 Ando Electric Co Ltd 疑似ランダムパターン発生回路
US5570307A (en) * 1995-01-06 1996-10-29 Vlsi Technology, Inc. Digital randomizer for on-chip generation and storage of random self-programming data block
US5850422A (en) * 1995-07-21 1998-12-15 Symbios, Inc. Apparatus and method for recovering a clock signal which is embedded in an incoming data stream
US5963104A (en) * 1996-04-15 1999-10-05 Vlsi Technology, Inc. Standard cell ring oscillator of a non-deterministic randomizer circuit
US5826061A (en) * 1996-06-10 1998-10-20 Dsc Communications Corporation System and method for modeling metastable state machine behavior
US6369727B1 (en) * 1999-12-17 2002-04-09 Rng Research Analog-to-digital conversion method of random number generation
US6480072B1 (en) * 2000-04-18 2002-11-12 Advanced Micro Devices, Inc. Method and apparatus for generating random numbers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4905176A (en) * 1988-10-28 1990-02-27 International Business Machines Corporation Random number generator circuit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022055004A1 (ko) * 2020-09-14 2022-03-17 엘지전자 주식회사 전송 인터페이스 장치 및 이를 구비하는 신호처리장치

Also Published As

Publication number Publication date
US6631390B1 (en) 2003-10-07
JP2003526151A (ja) 2003-09-02
KR20020021094A (ko) 2002-03-18
WO2001067231A3 (en) 2002-01-03
WO2001067231A2 (en) 2001-09-13
EP1188109A2 (en) 2002-03-20
CN1380998A (zh) 2002-11-20
MY127230A (en) 2006-11-30
CN1214319C (zh) 2005-08-10

Similar Documents

Publication Publication Date Title
KR100847213B1 (ko) 난수 생성 방법 및 난수 생성기
Johnston Random number generators—principles and practices: a guide for engineers and programmers
EP1776757B1 (en) Random number generation based on logic circuits with feedback
Drutarovsky et al. A robust chaos-based true random number generator embedded in reconfigurable switched-capacitor hardware
US6963888B2 (en) Method and apparatus for preventing noise from influencing a random number generator based on flip-flop meta-stability
US20130346459A1 (en) Method for generating random numbers
US7113966B2 (en) Method and apparatus for decorrelating a random number generator using a pseudo-random sequence
EP1518164B1 (en) Method and apparatus for generating a random number using meta-stable latches
Bucci et al. Fully digital random bit generators for cryptographic applications
Bock et al. An offset-compensated oscillator-based random bit source for security applications
Lee et al. Implementing a phase detection ring oscillator PUF on FPGA
US9582249B2 (en) Method for monitoring the output of a random generator
CN111124363B (zh) 一种真随机数生成方法及真随机数发生器
Simka et al. Model of a true random number generator aimed at cryptographic applications
US7302458B2 (en) Method and apparatus for choosing a combination of logic for generating random numbers using a difference signal
WO2003040854A2 (en) Apparatus and method for generating true random bits based on time summation of an electronics noise source
Anchana et al. Design of PUF Based Chaotic Random Number Generator
Fischer et al. Random number generators for cryptography
JP2009053906A (ja) 乱数発生装置
JP2016118934A (ja) 乱数生成装置及び乱数生成方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee