KR20020021094A - 플립플롭 메타 안정성을 이용하여 난수를 생성하는 방법및 장치 - Google Patents
플립플롭 메타 안정성을 이용하여 난수를 생성하는 방법및 장치 Download PDFInfo
- Publication number
- KR20020021094A KR20020021094A KR1020017014074A KR20017014074A KR20020021094A KR 20020021094 A KR20020021094 A KR 20020021094A KR 1020017014074 A KR1020017014074 A KR 1020017014074A KR 20017014074 A KR20017014074 A KR 20017014074A KR 20020021094 A KR20020021094 A KR 20020021094A
- Authority
- KR
- South Korea
- Prior art keywords
- flip
- flop
- random number
- stable state
- generating
- Prior art date
Links
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (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
플립플롭 및 래치(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)은 메타 안정성에 영향을 받기 쉽다. 메타 안정성의 상세한 설명을 위하여, 예를 들면 본 명세서에서 참조로 인용되는 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)를 제공한다. 예를 들면, 본 명세서에서 참조로 인용되는 Application Note, Synchronizing and Clock Driving Solutions-Using 74FXXX Family(1989년 9월), AN220을 참조하라. 추가적으로, 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개의 회로 중 적어도 하나가 소정의 시간에 메타 안정 상태로 되도록 함으로써, 프로세스 변화를 고려한다.
본 발명의 보다 완전한 이해뿐만 아니라 본 발명의 특징 및 장점이 이어지는 상세한 설명 및 도면을 참조하여 얻어질 것이다.
본 발명은 난수 생성(random number generation)에 관한 것으로, 보다 구체적으로는 플립플롭 메타 안정성(flip-flop meta-stability)을 이용하여 난수를 생성하는 방법 및 디바이스에 관한 것이다.
도 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)"으로 표시된 동일한 지점에서 획득된다. 이분 플립플롭(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 lickletters)를 결합함으로써 접속됨이 주목된다.
도 2b에 도시된 동기화 회로(synchronizing circuitry)(235)는 메타 안정 상태에 용이하게 진입하지 않기 위하여 선택되는 많은 연속하는 플립플롭들(240-242)을 포함한다. 추가적으로, 이들 플립플롭(240-242) 중 하나가 메타 안정 상태가 되는 경우에는, 클럭 신호는 메타 안정 플립플롭이 안정되도록 할 만큼 충분히 긴 레이트(rate)를 가져서, 다음 플립플롭(240-242)에서 신호가 샘플링되는 경우에는 플립플롭이 안정하여야 한다. 이러한 방식으로, 각각의 플립플롭(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은 도 2에서와 마찬가지로 동일한 연속하는 플립플롭들(240-242) 및 XOR 게이트(250)를 포함하는 동기화 회로(300)를 도시한다. 도 3의 동기화 회로는 도 2a의 난수 생성기(200)와 결합하여 동작한다. 연속하는 플립플롭들(240-242)은 도 2b와 결합하여 상기 기술된 바와 동일한 방식으로 동작하여 파형 Meta_stable_out을 파형 Clock과 동기화시킨다. XOR 게이트(250)는 도 2b와 결합하여 상기 기술된 것과 동일한 방식으로 동작하여 오류 신호(Mistake signal)를 생성한다.
도 3에 도시된 바와 같이, 동기화 회로(300)는 오류들(mistakes)간의 시간을 측정하도록 이분 플립플롭(310) 및 계수기(320)를 포함한다. 계수기(320)는, 예를 들면 4비트 계수기로서 구현될 수 있다. 계수기의 최하위 비트(LSB)들은 난수를 생성하는 데에 이용될 수 있다. 이어서, 계수기(320)는 각각의 오류(mistake)에 따라 턴 온(turn on) 및 턴 오프(turn off)될 수 있다. 예를 들면, 도 2c에 도시된 파형에 대하여, 6개의 클럭 싸이클(이진수=110)이 오류(mistakes) 0과 1 사이에 발생한다. 따라서, 이진 계수기(320)는 0의 랜덤 비트(a random bit)(LSB)를 생성할 것이다. 바이어스가 발생하지 않는다고 가정한다면, 보다 많은 랜덤 비트들이각각의 시간 간격에 대하여 축출될 수 있다. 따라서, 평균적으로 시간의 50%를 초과하여 나타날 비트들을 포함해서는 안된다. 이것은 반 이상의 시간을 0으로 남는 MSB를 포함할 것이다.
이전에 기술된 바와 같이, 제 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)는 플립플롭(210), 지연(215,220), D 타입 플립플롭(225) 및 도 2a와 결합하여 상기 기술된 바와 동일한 방식으로 동작하는 클럭 발진기(230)를 포함한다. 추가적으로, 난수 생성기(400)는 파형 Input내의 0의 반은 "1"로, 나머지 반의 0은 "0"으로 표시(mark)하는 도 4c에 도시된 표시(Mark) 신호를 생성하는 이분 플립플롭(adivide-by-two flip-flop)(410)을 포함한다.
도 4b는 도 2b에서와 마찬가지로 동일한 연속하는 플립플롭들(240-242), XOR 게이트(250) 및 쉬프트 레지스터(260)를 포함하는 동기화 회로(450)를 도시한다. 도 4b의 동기화 회로는 도 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에 대하여, 1과 동일한 비트가 획득될 것이다.
난수 생성기(400)가 또한 "1" 또는 "0" 중 하나로 플립플롭(210)으로의 입력을 표시(mark)함이 다시 주목된다. 따라서, 1 상태에 오류(mistake)가 발생하는 경우에는, 랜덤 비트의 균일한 분포 또한 1 상태에서 이루어진 오류(mistakes)에 기인하여 획득될 것이다. 따라서, 이 회로는 1 또는 0 상태에서 발생하는 에러들간의 바이어스에 많은 영향을 받지 않는다.
전압 또는 온도와 같은 프로세스의 변화는 정규의 또는 신뢰할 만한 기반에서 메타 안정 상태가 되는 플립플롭의 성능에 영향을 미칠 수 있음을 알게되었다. 따라서, 도 5에 도시된 본 발명의 제 4 실시예는 클럭과 입력 사이의 지연을 조절하여 메타 안정 동작을 보다 빈번히 발생시키는 난수 생성기(500)를 이용한다. 도 5에 도시된 바와 같이, 난수 생성기(500)는 플립플롭(210), D 타입 플립플롭(225) 및 도 2a와 결합하여 상기 기술된 바와 동일한 방식으로 동작하는 클럭 발진기(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)
- 난수(a random number)를 생성하는 방법에 있어서,플립플롭(a flip-flop)(210)을 메타 안정 상태에서(in a meta-stable state) 동작시키는 단계와,상기 메타 안정 상태에 근거하여 랜덤 비트(a random bit)를 생성하는 단계를 포함하는 난수 생성 방법.
- 제 1 항에 있어서,상기 플립플롭(210)의 셋업 시간(a set-up time)을 위반(violating)함으로써 상기 플립플롭(210)이 상기 메타 안정 상태 내에 위치되는 난수 생성 방법.
- 제 1 항에 있어서,상기 플립플롭(210)의 홀드 시간(a hold time)을 위반(violating)함으로써 상기 플립플롭(210)이 상기 메타 안정 상태 내에 위치되는 난수 생성 방법.
- 제 1 항에 있어서,상기 플립플롭(210)은 메타 안정 상태가 되는 데에 쉽게 영향을 받도록 구성되는 난수 생성 방법.
- 제 1 항에 있어서,상기 생성 단계는 상기 플립플롭(210)의 출력이 인가된 입력과 정합(match)하지 않는 경우에 오류 신호(a mistake signal)내에 비트(a bit)를 세팅하는 단계를 더 포함하는 난수 생성 방법.
- 제 5 항에 있어서,상기 오류 신호(the mistake signal)는 랜덤 비트가 획득되도록 하는 난수 생성 방법.
- 제 1 항에 있어서,상기 플립플롭(210)의 출력을 로컬 클럭 소스(a local clock source)에 동기화하는 단계를 더 포함하는 난수 생성 방법.
- 제 6 항에 있어서,상기 동기화 단계를 수행하는 동기화 회로(a synchronizing circuit)(235)는 상기 플립플롭보다 메타 상태가 되는 것에 영향을 적게 받는 난수 생성 방법.
- 제 1 항에 있어서,다수의 상기 랜덤 비트를 수집(collect)하여 난수를 생성하는 단계를 더 포함하는 난수 생성 방법.
- 난수를 생성하는 방법에 있어서,메타 안정 상태에서 플립플롭(210)을 동작시키는 단계와,두 개 이상의 메타 안정 상태 사이의 시간에 근거하여 적어도 하나의 랜덤 비트를 생성하는 단계를 포함하는 난수 생성 방법.
- 제 10 항에 있어서,상기 플립플롭(210)은 상기 플립플롭(210)의 셋업 시간(a setup time)을 위반함으로써 상기 메타 안정 상태에 위치되는 난수 생성 방법.
- 제 10 항에 있어서,상기 플립플롭(210)은 상기 플립플롭(210)의 홀드 시간(a hold time)을 위반함으로써 상기 메타 안정 상태에 위치되는 난수 생성 방법.
- 제 10 항에 있어서,상기 생성 단계는 상기 플립플롭(210)의 출력이 인가된 입력과 정합하지 않는 경우에 오류 신호(a mistake signal)내에 비트를 세팅하고 상기 비트들의 세팅간의 타이밍(timing)을 결정하는 단계를 더 포함하는 난수 생성 방법.
- 제 10 항에 있어서,상기 플립플롭(210)의 출력을 로컬 클럭 소스(a local clock source)(230)에 동기화하는 단계를 더 포함하는 난수 생성 방법.
- 제 10 항에 있어서,다수의 상기 랜덤 비트들을 수집하여 난수를 생성하는 단계를 더 포함하는 난수 생성 방법.
- 난수를 생성하는 방법에 있어서,0의 반은 0으로 표시(mark)되며, 나머지 반의 0은 1로 표시되도록 입력 신호를 플립플롭(210)에 표시하는(marking) 단계와,상기 플립플롭(210)을 메타 안정 상태에서 동작시키는 단계와,상기 메타 안정 상태에 근거하여 랜덤 비트를 생성하는 단계를 포함하는 난수 생성 방법.
- 제 16 항에 있어서,상기 플립플롭(210)은 상기 플립플롭(210)의 셋업 시간(a set-up time)을 위반함으로써 상기 메타 안정 상태 내에 위치되는 난수 생성 방법.
- 제 16 항에 있어서,상기 플립플롭(210)은 상기 플립플롭(210)의 홀드 시간(a hold time)을 위반함으로써 상기 메타 안정 상태 내에 위치되는 난수 생성 방법.
- 제 16 항에 있어서,상기 생성 단계는 상기 플립플롭(210)의 출력이 인가된 입력과 정합하지 않는 경우에 오류 신호(a mistake signal)내에 비트를 세팅하는 단계를 더 포함하는 난수 생성 방법.
- 제 19 항에 있어서,상기 오류 신호(mistake signal)는 상기 표시 입력(marking input)에 근거하여 랜덤 비트가 획득되도록 하는 난수 생성 방법.
- 제 19 항에 있어서,상기 플립플롭(210)의 출력을 로컬 클럭 소스(a local clock source)(230)에 동기화하는 단계를 더 포함하는 난수 생성 방법.
- 제 19 항에 있어서,다수의 상기 랜덤 비트들을 수집하여 난수를 생성하는 단계를 더 포함하는 난수 생성 방법.
- 난수를 생성하는 방법에 있어서,1의 반은 0으로 표시(mark)되고 나머지 반의 1은 1로 표시(mark)되도록 입력 신호를 플립플롭(210)에 표시(mark)하는 단계와,상기 플립플롭(210)을 메타 안정 상태에서 동작시키는 단계와,상기 메타 안정 상태에 근거하여 랜덤 비트를 생성하는 단계를 포함하는 난수 생성 방법.
- 난수를 생성하는 방법에 있어서,0의 반은 0으로 표시(mark)되고 나머지 반의 0은 1로 표시(mark)되며, 1의 반은 0으로 표시(mark)되고 나머지 반의 1은 1로 표시(mark)되도록 입력 신호를 플립플롭(210)에 표시(mark)하는 단계와,상기 플립플롭(210)을 메타 인정 상태 내에서 동작시키는 단계와,상기 메타 안정 상태에 근거하여 랜덤 비트를 생성하는 단계를 포함하는 난수 생성 방법.
- 난수를 생성하는 방법에 있어서,가변 지연(a variable delay)을 플립플롭(210)의 입력에 인가하고, 상기 가변 지연이 상기 플립플롭(210)의 셋업 시간을 위반하며, 이로 인하여 상기 플립플롭(210)을 메타 안정 상태 내에 위치시키는 단계와,상기 메타 안정 상태에 근거하여 랜덤 비트를 생성하는 단계를 포함하는 난수 생성 방법.
- 제 25 항에 있어서,상기 생성 단계는 상기 플립플롭(210)의 출력이 인가된 입력과 정합하지 않는 경우에 오류 신호(a mistake signal)내에 비트를 세팅하는 단계를 더 포함하는 난수 생성 방법.
- 제 25 항에 있어서,상기 플립플롭(210)의 출력을 로컬 클럭 소스(230)에 동기화하는 단계를 더 포함하는 난수 생성 방법.
- 난수를 생성하는 방법에 있어서,플립플롭(210)의 입력에 가변 지연을 인가하고, 상기 가변 지연이 상기 플립플롭(210)의 홀드 시간을 위반하며, 이로 인하여 상기 플립플롭(210)을 메타 안정상태 내에 위치시키는 단계와,상기 메타 안정 상태에 근거하여 랜덤 비트를 생성하는 단계를 포함하는 난수 생성 방법.
- 제 28 항에 있어서,상기 생성 단계는 상기 플립플롭(210)의 출력이 인가된 입력과 정합하지 않는 경우에 오류 신호(a mistake signal)내에 비트를 세팅하는 단계를 더 포함하는 난수 생성 방법.
- 제 28 항에 있어서,상기 플립플롭(210)의 출력을 로컬 클럭 소스(a local clock source)(230)에 동기화하는 단계를 더 포함하는 난수 생성 방법.
- 난수를 생성하는 방법에 있어서,다수의 플립플롭(210)을 병렬로 동작시켜서 상기 플립플롭(210) 중 적어도 하나의 플립플롭이 메타 안정 상태에 놓이도록 하는 단계와,상기 메타 안정 상태에 근거하여 랜덤 비트를 생성하는 단계를 포함하는 난수 생성 방법.
- 메타 안정 상태에서 동작되어 상기 메타 안정 상태에 근거하여 랜덤 비트를 생성하는 플립플롭(210)을 포함하는 난수 생성기.
- 제 32 항에 있어서,상기 플립플롭(210)은 상기 플립플롭(210)의 셋업 시간을 위반함으로써 상기 메타 안정 상태 내에 위치되는 난수 생성기.
- 제 32 항에 있어서,상기 플립플롭(210)은 상기 플립플롭(210)의 홀드 시간을 위반함으로써 상기 메타 안정 상태 내에 위치되는 난수 생성기.
- 제 32 항에 있어서,상기 플립플롭(210)의 출력이 인가된 입력과 정합하지 않는 경우에 비트(a bit)가 오류 신호(a mistake signal)내에 세팅되는 난수 생성기.
- 제 32 항에 있어서,로컬 클럭 소스(a local clock source)(230) 및 상기 플립플롭(210)의 출력을 상기 로컬 클럭 소스(local clock source)(230)에 동기화하는 동기화 회로(synchronizing circuitry)(235)를 더 포함하는 난수 생성기.
- 제 32 항에 있어서,다수의 상기 랜덤 비트들이 수집되어 난수를 생성하는 난수 생성기.
- 랜덤 생성기에 있어서,메타 안정 상태에서 동작되는 플립플롭(210)과,두 개 이상의 메타 안정 상태들 사이의 시간에 근거하여 적어도 하나의 랜덤 비트를 생성하는 계수기를 포함하는 난수 생성기.
- 제 38 항에 있어서,상기 플립플롭(210)은 상기 플립플롭(210)의 셋업 시간(a set-up time)을 위반함으로써 상기 메타 안정 상태 내에 위치되는 난수 생성기.
- 제 38 항에 있어서,상기 플립플롭(210)은 상기 플립플롭(210)의 홀드 시간(a hold time)을 위반함으로써 상기 메타 안정 상태 내에 위치되는 난수 생성기.
- 제 38 항에 있어서,상기 플립플롭(210)의 출력이 인가된 입력과 정합하지 않는 경우에 비트(a bit)가 오류 신호(a mistake signal)내에 세팅되는 난수 생성기.
- 제 38 항에 있어서,로컬 플럭 소스(230) 및 상기 플립플롭(210)의 출력을 상기 로컬 클럭 소스(local clock source)(230)에 동기화하는 동기화 회로(235)를 더 포함하는 난수 생성기.
- 난수 생성기에 있어서,메타 안정 상태에서 동작되는 플립플롭(210)과,0의 반은 0으로 표시되고, 나머지 반의 0은 1로 표시되도록 입력 신호를 상기 플립플롭(210)에 표시하는 표시 회로(a marking circuit)와,상기 메타 안정 상태에 근거하여 랜덤 비트를 생성하는 수단을 포함하는 난수 생성기.
- 난수 생성기에 있어서,메타 안정 상태에서 동작되는 플립플롭(210)과,1의 반은 0으로 표시(mark)되고 나머지 반의 1은 1로 표시(mark)되도록 입력 신호를 상기 플립플롭(210)에 표시(mark)하는 표시 회로와,상기 메타 안정 상태에 근거하여 랜덤 비트를 생성하는 수단을 포함하는 난수 생성기.
- 난수 생성기에 있어서,메타 안정 상태에서 동작하는 플립플롭(210)과,0의 반은 0으로 표시(mark)되고 나머지 반의 0은 1로 표시되며, 1의 반은 0으로 표시되고 나머지 반의 1은 1로 표시되도록 입력 신호를 상기 플립플롭(210)에 표시하는 표시 회로와,상기 메타 안정 상태에 근거하여 랜덤 비트를 생성하는 수단을 포함하는 난수 생성기.
- 난수 생성기에 있어서,플립플롭(210)과,상기 플립플롭(210)의 적어도 하나의 입력에 접속되는 가변 지연을 포함하되,상기 가변 지연은 상기 플립플롭(210)의 셋업 시간(a set-up time)을 위반하며, 이로 인하여 상기 플립플롭(210)은 메타 안정 상태에 위치되어 상기 메타 안정 상태에 근거하여 랜덤 비트를 생성하는 난수 생성기.
- 난수 생성기에 있어서,플립플롭(210)과,상기 플립플롭(210)의 적어도 하나의 입력에 접속되는 가변 지연을 포함하되,상기 가변 지연은 상기 플립플롭(210)의 홀드 시간(a hold time)을 위반하며, 이로 인하여 상기 플립플롭을 메타 안정 상태에 위치시켜 상기 메타 안정 상태에 근거하여 랜덤 비트를 생성하는 난수 생성기.
- 병렬로 동작되는 다수의 플립플롭(210)을 포함하되 상기 플립플롭(210) 중 적어도 하나는 메타 안정 상태에 놓여서 상기 메타 안정 상태에 근거하여 랜덤 비트를 생성하는 난수 생성기.
- 난수 생성기에 있어서,시간의 반은 0의 값을 가지며, 나머지 반의 시간은 1의 값을 가지는 입력 신호를 수신하는 입력와,상기 입력 신호와 관련된 에러를 야기하는 랜덤화 소자(a randomizing element)를 포함하되,상기 입력 신호는 상기 에러가 발생할 때마다 랜덤 비트로 선택되는 난수 생성기.
- 제 49 항에 있어서,상기 입력 신호는 예비 입력 신호(a preliminary input signal)내의 0의 반은 0으로 표시하고 나머지 반의 0은 1로 표시하며, 상기 예비 입력 신호내의 1의 반은 0으로 표시하고 나머지 반의 1은 1로 표시함으로써 생성되는 난수 생성기.
- 제 50 항에 있어서,상기 랜덤 비트는 상기 에러가 발생할 때마다 상기 표시된 신호(marked signal)로부터 획득되는 난수 생성기.
- 제 49 항에 있어서,상기 랜덤화 소자는 메타 안정 상태에서 동작하는 플립플롭(210)인 난수 생성기.
- 제 49 항에 있어서,상기 에러는 상기 랜덤화 소자가 상기 입력 신호에 정합하지 않는 경우에 발생하는 난수 생성기.
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 true KR20020021094A (ko) | 2002-03-18 |
KR100847213B1 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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9405510B2 (en) | 2013-02-25 | 2016-08-02 | Samsung Electronics Co., Ltd. | Random number generator |
Families Citing this family (38)
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 |
KR100875786B1 (ko) * | 2004-02-12 | 2008-12-26 | 가부시키가이샤 히타치초에루.에스.아이.시스테무즈 | 난수발생 방법과 반도체 집적 회로 장치 |
WO2005083561A1 (en) * | 2004-02-26 | 2005-09-09 | Telecom Italia S.P.A. | Method and circuit for generating random numbers, and computer program product therefor |
US8150900B2 (en) | 2004-08-09 | 2012-04-03 | Telecom Italia S.P.A. | Random number generation based on logic circuits with feedback |
DE602004029619D1 (de) * | 2004-08-09 | 2010-11-25 | Telecom Italia Spa | Verfahren und vorrichtung zum erzeugen von zufallsdaten |
JP4701244B2 (ja) * | 2005-06-10 | 2011-06-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マイクロコンピュータ及びそのテスト方法 |
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 | 富士通株式会社 | 乱数生成器、暗号化装置、及び認証装置 |
DK2693370T3 (en) | 2011-03-31 | 2016-09-26 | Ictk Co Ltd | Device and method for generation of 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 |
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 | 成都铭科思微电子技术有限责任公司 | 一种应用于高速模数转换器同步时钟采样的亚稳态检测电路 |
WO2022055004A1 (ko) * | 2020-09-14 | 2022-03-17 | 엘지전자 주식회사 | 전송 인터페이스 장치 및 이를 구비하는 신호처리장치 |
WO2023211466A1 (en) * | 2022-04-29 | 2023-11-02 | Qrypt, Inc. | Generation of quantum random numbers from single-photon avalanche diodes |
Family Cites Families (29)
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 |
US4905176A (en) * | 1988-10-28 | 1990-02-27 | International Business Machines Corporation | Random number generator circuit |
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 |
-
2000
- 2000-03-06 US US09/519,549 patent/US6631390B1/en not_active Expired - Lifetime
-
2001
- 2001-03-05 JP JP2001564986A patent/JP2003526151A/ja not_active Withdrawn
- 2001-03-05 MY MYPI20010998A patent/MY127230A/en unknown
- 2001-03-05 EP EP01911728A patent/EP1188109A2/en not_active Ceased
- 2001-03-05 WO PCT/EP2001/002428 patent/WO2001067231A2/en not_active Application Discontinuation
- 2001-03-05 CN CNB018011772A patent/CN1214319C/zh not_active Expired - Fee Related
- 2001-03-05 KR KR1020017014074A patent/KR100847213B1/ko not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9405510B2 (en) | 2013-02-25 | 2016-08-02 | Samsung Electronics Co., Ltd. | Random number generator |
Also Published As
Publication number | Publication date |
---|---|
JP2003526151A (ja) | 2003-09-02 |
WO2001067231A3 (en) | 2002-01-03 |
WO2001067231A2 (en) | 2001-09-13 |
EP1188109A2 (en) | 2002-03-20 |
CN1380998A (zh) | 2002-11-20 |
CN1214319C (zh) | 2005-08-10 |
US6631390B1 (en) | 2003-10-07 |
MY127230A (en) | 2006-11-30 |
KR100847213B1 (ko) | 2008-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100847213B1 (ko) | 난수 생성 방법 및 난수 생성기 | |
Drutarovsky et al. | A robust chaos-based true random number generator embedded in reconfigurable switched-capacitor hardware | |
JP2006139756A (ja) | 乱数発生器および乱数を発生する方法 | |
US6963888B2 (en) | Method and apparatus for preventing noise from influencing a random number generator based on flip-flop meta-stability | |
US7113966B2 (en) | Method and apparatus for decorrelating a random number generator using a pseudo-random sequence | |
US20130346459A1 (en) | Method for generating random numbers | |
EP1518164B1 (en) | Method and apparatus for generating a random number using meta-stable latches | |
US20020186086A1 (en) | Random number generator | |
US20090327381A1 (en) | True random number generator | |
Shanta et al. | Design of a lightweight reconfigurable prng using three transistor chaotic map | |
US9582249B2 (en) | Method for monitoring the output of a random generator | |
US20070150531A1 (en) | Apparatus and method for generating random number using digital logic | |
US7302458B2 (en) | Method and apparatus for choosing a combination of logic for generating random numbers using a difference signal | |
US20210224041A1 (en) | Random number generator, random number generating circuit, and random number generating method | |
Anchana et al. | Design of PUF Based Chaotic Random Number Generator | |
EP2933719A1 (en) | A digital method and device for generating true random numbers | |
WO2003040854A2 (en) | Apparatus and method for generating true random bits based on time summation of an electronics noise source | |
JP6386904B2 (ja) | 乱数生成装置及び乱数生成方法 | |
JP2009053906A (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 |