JP2006509286A - 真正乱数の発生システムおよび発生方法 - Google Patents
真正乱数の発生システムおよび発生方法 Download PDFInfo
- Publication number
- JP2006509286A JP2006509286A JP2004556611A JP2004556611A JP2006509286A JP 2006509286 A JP2006509286 A JP 2006509286A JP 2004556611 A JP2004556611 A JP 2004556611A JP 2004556611 A JP2004556611 A JP 2004556611A JP 2006509286 A JP2006509286 A JP 2006509286A
- Authority
- JP
- Japan
- Prior art keywords
- frequency
- oscillator
- counter
- shifter
- microprocessor
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
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
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- 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
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)
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
- Manipulation Of Pulses (AREA)
- Pulse Circuits (AREA)
- Oscillators With Electromechanical Resonators (AREA)
- Networks Using Active Elements (AREA)
Abstract
任意の標準論理合成ツールまたは同等な技法を用いて集積回路上へ組み込むための完全にディジタルなおよび/またはディジタルに合成可能な真性乱数発生器を提供するシステムおよび方法が提供される。これらのシステムおよび方法は、ビットを発生するための少なくとも1つのカウンタと、ビットをスクランブルするための少なくとも1つのシフタと、前記少なくとも1つのカウンタと協働するための少なくとも1つの第1発振器と、前記少なくとも1つのシフタと協働するための少なくとも1つの第2発振器とを含む。このシステムは、マイクロプロセッサを介して初期化されるディジタル入力信号に基づいて周波数摂動を提供するように構成される。
Description
本発明は真性乱数発生器を提供する方法に関する。より具体的には、本発明は、任意の標準論理合成ツールまたは同等な技法を用いて、集積回路(IC)上に組み込むための完全にディジタルなおよび/またはディジタルに合成可能な真性乱数を提供するシステムおよび方法に関する。
乱数発生は、たとえば、コンピュータの機密保護、暗号技術、オーディオ・システム検査、ビット誤り検査および暗号化された通信を含む多くの用途に使用される。乱数発生の分野における最近の取り組みは、一般的に、周波数変動を得るためのアナログ発振器や、予測できないパターンを実現するための準安定なフリップ・フロップや、熱雑音にフィルタをかけ増幅するためのアナログ回路や、またはそれぞれのいくつかの組合せを必要とする。したがって、上述したどんなアナログ構成部品および/または準安定な構成も必要としない真性乱数発生器(TRNG)の設計システムおよび/または設計方法を提供することが望まれる。任意の標準的な技法を用いてIC上に組み込むためのTRNGを合成するのに役立つシステムおよび/または方法も望まれる。
本発明の目的は、真性乱数の発生システムおよび真性乱数の発生方法を提供することである。これらのシステムおよび方法は、少なくともカウンタと、シフタと、カウンタと協働するための第1発振器と、シフタと協働するための第2発振器と、上記の構成部品それぞれと協働するためのマイクロプロセッサとを提供することを含む。
本発明の発生クロックは、ディジタル(ハイまたはローの)入力信号に基づいて周波数が摂動するように設計され、これにより真のディジタル信号からランダムな周波数を発生させることが可能なディジタル制御されたリング発振器であるため、本発明のシステムおよび方法は、アナログ・クロックまたは準安定な構成を使用しない乱数発生を実現する。したがって、簡単なカウンタおよびシフタを用いて乱数を発生することができる。本発明のシステムおよび方法を用いて設計されたTRNGは、任意の標準論理合成ツールまたは同等な技法を用いてIC上に組み込むように合成することができる。本発明のこれらおよび他の目的は本発明のシステムおよび方法によって実現される。
本発明は、以下で特定される図面と共に、以下の例示的実施形態の詳細な説明を参照することによってより完全に理解される。
従来の乱数発生システムは、乱数を発生するためにリング発振器などの発振器を使用する。これらのリング発振器は、通常、直列に接続されてリングを形成する奇数のゲートを有し、ある場合には、このようなリング発振器のゲートは、リング中の他のゲートの出力の組合せを入力とすることができる。これらのリング発振器をある時点でサンプリングして乱数または疑似乱数を提供することができる。
従来のTRNGは乱数および/または疑似乱数を提供することができるが、当業者は、これらのTRNGの多くは本質的に周期的であり、その結果、望むほどランダムではない数を発生する可能性があることに気付いている。さらに、乱数を発生するためにチップまたはIC上に特別な構成部品を必要としないように、チップまたはIC上にTRNGを効率的に組み込むことが望ましいので、比較的小型で電力消費量が小さいシステムが望ましい。
本発明のシステムおよび方法をある例示的な実施形態に関して以下に説明する。しかし、これらのシステムおよび方法を他の代替構成部品および/または他の同等な構成を用いて有効に作動させ得ることは当業者なら判るであろう。
図面、具体的には図1を参照すると、参照番号10で全体が示される、本発明の例示的な実施形態による真性乱数用のシステムの概略構成図が示されている。好ましくは、システム10は、予測できない/非決定性の数の発生をもたらしながら、少なくとも2Mビット/秒(62500個/秒)の速度に適合でき、任意選択でシード値有りまたは無しで動作することができる。システム10は、長く連続するディジタル0およびディジタル1に対してバイアスされることが好ましい。システム10は、好ましくは、必要なパワー要件を低減させるスリープ・モードを有することもできる。
システム10は、ビットを発生するための少なくとも1つのカウンタ20と、ビットをスクランブルするための少なくとも1つのシフタ30と、前記少なくとも1つのカウンタ20と協働するための少なくとも1つの第1発振器40と、前記少なくとも1つのシフタ30と協働するための少なくとも1つの第2発振器50と、ディジタル入力信号に基づいて周波数摂動をもたらすように前記構成部品それぞれと協働するためのマイクロプロセッサ60とを有する。カウンタ20は、初期設定ビット値5を受け取る初期設定レジスタを有することが好ましく、このビット値は、マイクロプロセッサ60の初期設定書込みの後縁で挿入されることが好ましい。カウンタ20は、32ビットのアップ・カウンタであることが好ましい。しかし、カウンタ20は、16ビットのアップ・カウンタおよび16ビットのダウン・カウンタおよび/または本発明の上記で特定された目的を実施するのに適する任意の他の同等なタイプのカウンタでもよい。16ビット・カウンタを用いる場合、その出力をシフタ30内に交互配置することができる。シフタ30は、バレル・シフタ、より具体的には32ビット・バレル・シフタであることが好ましい。シフタ30は、本発明の上記で特定された目的を実施するのに適する任意の他の同等なタイプのシフタでもよい。第1発振器40および第2発振器50は、それぞれ奇数のステージを有するリング発振器であることが好ましく、第1発振器40は5ステージの発振器であることが好ましく、第2発振器50は7ステージの発振器であることが好ましい。しかし、第1発振器40および第2発振器50はそれぞれ、本発明の上記で特定された目的を実施するのに十分な任意の他の同等なタイプの発振器でもよいことに留意されたい。第1発振器40および第2発振器50は、好ましくは、インバータと、ANDゲートと、NANDゲートと、NORゲートと、XORゲートおよび/または他の任意の同様なタイプの構成部品の組合せとから構成することができる。本発明による、構成部品の例示的な組合せを用いるシステム10の例示的な一実施形態については、一般に、図3を参照されたい。
図2を参照すると、システム10は、好ましくは、シフタ30とマイクロプロセッサ60との間に白色化フィルタおよび/または線形フィードバック・シフト・レジスタ(「LFSR」)70を備えることができる。この構成は、好ましくは、カウンタ値を用いてシフタ30の出力を修正するのに役立つ。LFSR70は、好ましくは、本発明の上記で特定された目的を実施するのに適する任意の数のステージを有することができる。システム10は、第2発振器50とシフタ30との間にワン・ホット・シフト・セレクタ80を備えることもできる。
システム10がどのように作動するかを説明するためには、参照番号100で全体が表わされる、本発明の例示的な実施形態による真性乱数を提供する一方法のフロー・チャートである図4を参照されたい。方法100は、少なくともステップ110と、120と、130と、140とを含む。ステップ110では、ビットを発生するために少なくとも1つのカウンタ20を使用する。好ましくは、カウンタ20は、ある速度または周波数のマイクロプロセッサ60からカウンタの初期設定レジスタへの書き込みによって初期化する。カウンタ20は、好ましくは第1発振器を形成するために使用される構成部品の物理特性にチップ依存性がありマイクロプロセッサの速度又は周波数に非同期な速度又は周波数で第1発振器40により刻時されることが好ましい。ステップ120では、ビットをスクランブルするための少なくとも1つのシフタ30を使用する。シフタ30はカウンタ20と協働することが好ましく、カウンタ20およびマイクロプロセッサ60のものと非同期な速度または周波数で第2発振器50によって連続的に回転される。このシフタの速度または周波数はマイクロプロセッサのものより速いことが好ましい。ステップ130では、カウンタ20およびシフタ30とそれぞれ同時に協働させるために発振器40および50を使用する。ステップ140では、カウンタ20およびシフタ30からの発振器40および発振器50用の非同期周波数制御ビットを相互結合する。したがって、マイクロプロセッサ60が、たとえば32ビットなどのあるビット数の乱数を読み込むとき、シフタ30は、好ましくは、電流カウンタ20の値を入力し電流シフト・カウント(たとえば、0〜31)によりそれをシフトさせることが好ましい。好ましくは、各構成部品(すなわち、カウンタ、シフタ、およびマイクロプロセッサ)の周波数が互いに非同期であるので、予測できないパターンのビット数がマイクロプロセッサに戻ってくる。
このように、本発明をその好ましい形態を具体的に参照して説明してきたが、本明細書で規定された本発明の精神および範疇から逸脱することなく様々な変更および修正を加え得ることは明らかであろう。
Claims (21)
- 第1の周波数で動作するマイクロプロセッサと、
ビットを発生するための少なくとも1つのカウンタと、
ビットをスクランブルするための少なくとも1つのシフタと、
前記少なくとも1つのカウンタと協働するための少なくとも一つの第1発振器と、
前記少なくとも1つのシフタと協働するための少なくとも一つの第2発振器とを備え、
前記発振器が、前記マイクロプロセッサを介して初期化されたディジタル入力信号に基づいて周波数摂動をもたらす、真性乱数発生システム。 - 前記カウンタが初期設定ビット値を受け取るための初期設定レジスタを有する、請求項1に記載のシステム。
- 前記初期設定ビット値が、前記マイクロプロセッサの初期設定書き込みの後縁にある、請求項2に記載のシステム。
- 前記少なくとも1つの第1発振器が、第1の奇数のステージを有するリング発振器である、請求項3に記載のシステム。
- 前記少なくとも1つの第1リング発振器が前記少なくとも1つのカウンタと協働して第2の周波数を提供する、請求項4に記載のシステム。
- 前記少なくとも1つのシフタが、前記少なくとも1つの第2発振器によって第3の周波数で連続的に回転されるバレル・シフタである、請求項5に記載のシステム。
- 前記少なくとも1つの第2発振器が、前記第1の奇数のステージと少なくとも2ステージだけ異なる第2の奇数のステージを有するリング発振器である、請求項6に記載のシステム。
- 前記第3の周波数が前記第2の周波数と非同期である、請求項7に記載のシステム。
- 前記第3の周波数が前記第1の周波数と非同期である、請求項8に記載のシステム。
- 前記第3の周波数が前記第1の周波数と非同期であり前記第1の周波数より速い、請求項8に記載のシステム。
- 前記カウンタが、前記第3の周波数と非同期な前記第2の周波数で調時または刻時される、請求項9に記載のシステム。
- 前記第2の周波数が前記第1の周波数と非同期である、請求項11に記載のシステム。
- 前記マイクロプロセッサが乱数を読み取るとき、前記バレル・シフタが最新のカウンタ・ビット値を入力し、前記ビット値を最新のバレル・シフト・カウントだけシフトさせる、請求項12に記載のシステム。
- (a)第1の周波数で作動するマイクロプロセッサを準備するステップと、
(b)少なくとも1つのカウンタを準備するステップと、
(c)前記少なくとも1つのカウンタを第2の周波数で刻時する少なくとも1つの第1の発振器を準備するステップと、
(d)少なくとも1つのシフタを準備するステップと、
(e)前記少なくとも1つのシフタを第3の周波数で連続的に回転させるための少なくとも1つの第2発振器を準備するステップと,
を備える、真性乱数発生器を提供する方法。 - 前記少なくとも1つの第1発振器が第1の奇数のステージを有し、前記第2発振器が前記第1の奇数のステージと少なくとも2ステージだけ異なる第2の奇数のステージを有する、請求項13に記載の方法。
- 前記第1の周波数と、前記前記第2の周波数と、前記前記第3の周波数とがそれぞれ互いに非同期である、請求項13に記載の方法。
- 前記マイクロプロセッサが乱数を読み取るとき、前記シフタが最新のカウンタ・ビット値を入力し、前記ビット値を最新のシフト・カウントだけシフトさせる、請求項15に記載の方法。
- (a)第1の周波数で作動するマイクロプロセッサと、ビットを発生するための少なくとも1つのカウンタと、ビットをスクランブルするための少なくとも1つのシフタと、前記カウンタおよび前記シフタとそれぞれ協働するための第1および第2発振器とを準備するステップと、
(b)前記マイクロプロセッサの前記少なくとも1つのカウンタの初期設定レジスタへの書き込みによって前記カウンタを初期化するステップと、
(c)前記第1発振器を介して前記少なくとも1つのカウンタを第2の周波数で刻時するステップと、
(d)前記第2発振器を介して前記少なくとも1つのシフタを第3の周波数で連続的に回転させるステップと、
(e)前記マイクロプロセッサがランダムなビット数を読み取るとき、最新のカウンタ・ビット数を入力し、前記最新のビット値を最新のシフト・カウントだけシフトさせるステップと、
(f)予測できないパターンのビット数を実現するために前記シフトされたビット値を前記マイクロプロセッサに戻すステップと、
を備える、真性乱数の発生方法。 - 前記少なくとも1つの第1発振器が第1の奇数のステージを有し、前記第2発振器が前記第1の奇数のステージと少なくとも2ステージだけ異なる第2の奇数のステージを有する、請求項17に記載の方法。
- 前記第1の周波数と、前記前記第2の周波数と、前記前記第3の周波数とがそれぞれ互いに非同期である、請求項17に記載の方法。
- 前記マイクロプロセッサが乱数を読み取るとき、前記シフタが最新のカウンタ・ビット値を入力し前記ビット値を最新のシフト・カウントだけシフトさせる、請求項19に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US43134102P | 2002-12-05 | 2002-12-05 | |
PCT/IB2003/005265 WO2004051458A2 (en) | 2002-12-05 | 2003-11-18 | System and method for true random number generation |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006509286A true JP2006509286A (ja) | 2006-03-16 |
Family
ID=32469604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004556611A Pending JP2006509286A (ja) | 2002-12-05 | 2003-11-18 | 真正乱数の発生システムおよび発生方法 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1573509A2 (ja) |
JP (1) | JP2006509286A (ja) |
KR (1) | KR20050084153A (ja) |
CN (1) | CN1720501A (ja) |
AU (1) | AU2003280091A1 (ja) |
WO (1) | WO2004051458A2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090132624A1 (en) | 2004-10-15 | 2009-05-21 | Koninklijke Philips Electronics N.V. | Integrated circuit with a true random number generator |
CN100505540C (zh) * | 2004-11-24 | 2009-06-24 | 中国科学院物理研究所 | 一种产生真随机数的方法及其装置 |
CN100461089C (zh) * | 2006-03-15 | 2009-02-11 | 中兴通讯股份有限公司 | 一种随机数的产生方法 |
CN100458685C (zh) * | 2006-05-26 | 2009-02-04 | 北京中星微电子有限公司 | 产生随机数的装置及方法 |
US8676870B2 (en) | 2007-09-18 | 2014-03-18 | Seagate Technology Llc | Active test and alteration of sample times for a ring based random number generator |
CN103885747B (zh) * | 2014-02-27 | 2017-01-11 | 浙江大学 | 低功耗随机数发生器 |
KR101630791B1 (ko) | 2015-03-27 | 2016-06-16 | 황순영 | 의사 난수로부터 진성 난수를 생성하는 방법 및 이 방법을 컴퓨터상에서 실행할 수 있는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4855690A (en) * | 1987-08-10 | 1989-08-08 | Dallas Semiconductor Corporation | Integrated circuit random number generator using sampled output of variable frequency oscillator |
US5065256A (en) * | 1987-09-21 | 1991-11-12 | Fuji Photo Film Co., Ltd. | Method of and apparatus for processing image signal |
JPH02242327A (ja) * | 1989-03-15 | 1990-09-26 | Oki Electric Ind Co Ltd | 乱数発生装置 |
JP2002268874A (ja) * | 2001-03-07 | 2002-09-20 | Toshiba Corp | 乱数シード生成回路及びこれを備えたドライバ、並びに、sdメモリカードシステム |
JP4521708B2 (ja) * | 2001-03-12 | 2010-08-11 | ルネサスエレクトロニクス株式会社 | 乱数生成装置 |
-
2003
- 2003-11-18 WO PCT/IB2003/005265 patent/WO2004051458A2/en active Application Filing
- 2003-11-18 JP JP2004556611A patent/JP2006509286A/ja active Pending
- 2003-11-18 KR KR1020057010124A patent/KR20050084153A/ko not_active Application Discontinuation
- 2003-11-18 EP EP03772477A patent/EP1573509A2/en not_active Withdrawn
- 2003-11-18 CN CNA2003801052696A patent/CN1720501A/zh active Pending
- 2003-11-18 AU AU2003280091A patent/AU2003280091A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP1573509A2 (en) | 2005-09-14 |
CN1720501A (zh) | 2006-01-11 |
AU2003280091A1 (en) | 2004-06-23 |
WO2004051458A3 (en) | 2004-12-02 |
WO2004051458A2 (en) | 2004-06-17 |
KR20050084153A (ko) | 2005-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8209367B2 (en) | Random number generator | |
US8150900B2 (en) | Random number generation based on logic circuits with feedback | |
US6954770B1 (en) | Random number generator | |
US7305020B2 (en) | Method and system of reducing electromagnetic interference emissions | |
JP3696209B2 (ja) | シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器 | |
US20130346459A1 (en) | Method for generating random numbers | |
KR20140110142A (ko) | 난수 발생기 | |
CN114968179A (zh) | 一种基于时钟抖动和亚稳态的真随机数产生电路 | |
US6963888B2 (en) | Method and apparatus for preventing noise from influencing a random number generator based on flip-flop meta-stability | |
US20090327381A1 (en) | True random number generator | |
JP2003318883A (ja) | 鍵生成装置、暗号化復号化装置およびデータ受信装置 | |
JP2006509286A (ja) | 真正乱数の発生システムおよび発生方法 | |
JPH06509200A (ja) | 乱数発生装置並びに方法 | |
US20030236802A1 (en) | Method and apparatus for generating a random number using the meta-stable behavior of latches | |
JP5171420B2 (ja) | 擬似乱数生成装置 | |
JP4417389B2 (ja) | デジタルロジックを利用した乱数発生装置及び方法 | |
CN100359803C (zh) | 随机数产生器中的随机变化模拟偏压信号装置 | |
JP2005044090A (ja) | 乱数発生装置 | |
JP2007207054A (ja) | データ処理装置 | |
JP5119417B2 (ja) | 擬似乱数生成装置 | |
JP4478643B2 (ja) | 乱数生成回路 | |
CN111782179B (zh) | 一种真随机数发生器 | |
US9116764B2 (en) | Balanced pseudo-random binary sequence generator | |
JP6886700B2 (ja) | 乱数生成回路 | |
US20070230695A1 (en) | Apparatus and method for generating a number with random distribution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061117 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080703 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081024 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090331 |