JPWO2006054476A1 - 乱数生成方法及び乱数生成装置 - Google Patents
乱数生成方法及び乱数生成装置 Download PDFInfo
- Publication number
- JPWO2006054476A1 JPWO2006054476A1 JP2006544947A JP2006544947A JPWO2006054476A1 JP WO2006054476 A1 JPWO2006054476 A1 JP WO2006054476A1 JP 2006544947 A JP2006544947 A JP 2006544947A JP 2006544947 A JP2006544947 A JP 2006544947A JP WO2006054476 A1 JPWO2006054476 A1 JP WO2006054476A1
- Authority
- JP
- Japan
- Prior art keywords
- random number
- value
- converter
- output
- number generation
- 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.)
- Withdrawn
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
-
- 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
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Analogue/Digital Conversion (AREA)
- Manipulation Of Pulses (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
廉価かつ簡易な構成の装置を用いて、無秩序な乱数を発生させる新規な方法及び装置を提供する。所定の発振器からの雑音又は信号をA/D変換器に入力する。次いで、前記A/D変換器から出力された値に対して“0”又は“1”を割り当てて2進数列を形成する。次いで、前記2進数列を所定の桁数で区切り、n進乱数を生成する。
Description
本発明は、乱数生成方法及び乱数生成装置に関する。
完全に無秩序であり、かつ全体としては出現頻度が等しくなる乱数は、社会現象や物理現象の数値シュミレーションなどに広く利用されている。また、乱数は暗号技術としても重要な役割を果たしており、情報の保護の分野でもその需要が高い。現在、乱数の発生方法として種々の方法が開発されているが、そのほとんどはアルゴリズムによるソフト的な疑似乱数の生成である。
アルゴリズムによる乱数生成は、ある程度の信頼性を有し、高速に乱数生成を行なうことができるという点から広く利用されている。しかしながら、コンピュータは有限の情報しかとらないために、生成された乱数は周期性を持つことが確認されている。そのため、正確な解や十分なセキュリティが得られない場合があり、より無秩序な乱数発生方法の確立が望まれている。
近年、ハードウエアの発展に伴う処理速度の向上と信頼性の向上から、物理的な乱数の生成方法が開発されてきた。例えば、熱電子雑音や放射性物質の崩壊などの物理現象に基づいて生成された乱数は、予測不可能性の高い、理想的な乱数列であることが知られている。しかしながら、これらの方法では高価で大掛かりな装置を必要とすることが多い。
本発明は、廉価かつ簡易な構成の装置を用いて、無秩序な乱数を発生させる新規な方法及び装置を提供することを目的とする。
上記目的を達成すべく、本発明は、
所定の発振器からの雑音又は信号をA/D変換器に入力する工程と、
前記A/D変換器から出力された値に対して“0”又は“1”を割り当てて2進数列を形成する工程と、
前記2進数列を所定の桁数で区切り、n進乱数を生成する工程と、
を具えることを特徴とする乱数生成方法に関する。
所定の発振器からの雑音又は信号をA/D変換器に入力する工程と、
前記A/D変換器から出力された値に対して“0”又は“1”を割り当てて2進数列を形成する工程と、
前記2進数列を所定の桁数で区切り、n進乱数を生成する工程と、
を具えることを特徴とする乱数生成方法に関する。
また、本発明は、
所定の雑音又は信号を生成及び発振するための発振器と、
前記雑音又は前記信号をA/D変換するためのA/D変換器と、
前記A/D変換器から出力された値に対して “0”又は“1”を割り当てて2進数列を形成し、前記2進数列を所定の桁数で区切り、n進乱数を生成するための計算機と、
を具えることを特徴とする、乱数生成装置に関する。
所定の雑音又は信号を生成及び発振するための発振器と、
前記雑音又は前記信号をA/D変換するためのA/D変換器と、
前記A/D変換器から出力された値に対して “0”又は“1”を割り当てて2進数列を形成し、前記2進数列を所定の桁数で区切り、n進乱数を生成するための計算機と、
を具えることを特徴とする、乱数生成装置に関する。
例えば、水晶発振器で発生させた三角波を用いて、12ビット長の、2進法A/D変換器を使用した場合について説明する。前記A/D変換器の12ビット長総てを使用すると、前記三角波の波形振幅を212=4096分割する(4096ステップ)ことになる。
サンプリング周波数が1MHzとすると、サンプリング間隔は1μsであるから、前記A/D変換器のビットを0、1,0,1…と交互に出力させるための必要条件は、(1),(2)式より約122Hzの周波数を有する波形が必要ということになる(図1)。
サンプリング周波数が1MHzとすると、サンプリング間隔は1μsであるから、前記A/D変換器のビットを0、1,0,1…と交互に出力させるための必要条件は、(1),(2)式より約122Hzの周波数を有する波形が必要ということになる(図1)。
これが乱数になる必要条件は、ある時刻において最低1ステップの範囲の振幅的変動が必要である。これを時間変動に置き換えて考えると、乱数になるための必要条件は、1周期(8192μs)のうちで、最低でもサンプリング間隔に相当する1μsの時間的変動が必要であると言い換えられる。そのための時間的変化量は、(3)式より約122×10−6と表すことができる。
信号の周波数が(5)式で表される周波数より十分に高くなれば、(4)式で示すような、乱数が生成されるための必要条件である周波数変化率は十分大きくなる。したがって、前記周波数変化率が前記水晶発振器における周波数安定度よりも十分大きくなると、前記水晶発振器から発せされる通常の信号が前記A/D変換器内に取り込まれることにより、前記信号がA/D変換された後のビットは、“0”及び“1”がランダムに配列するようになる。したがって、“0”に対して“0”又は“1”の数値を割り当て、“1”に対して“1”又は“0”の数値を割り当てることにより、ランダムな2進数列を得ることができ、これを所定の桁数で区切ることにより、画定桁数に応じたn進乱数を得ることができるようになる。
換言すれば、A/D変換器を用い、所定の発振器から十分高い周波数の信号を適宜に導入することにより、A/D変換後にランダムな2進数列を形成することができ、これに基づいて目的とするランダムなn進乱数を生成することができる。
本発明の好ましい態様においては、前記A/D変換器からの出力値は、A/D変換による最下位ビットを用いる。前記最下位ビットは揺らぎが大きいため、前記A/D変換器からの出力値がよりランダムなものとなり、前記2進数列をランダムなものとすることができる。この結果、前記2進数列を所定の桁数で区切って得たn進乱数のランダム性がより向上するようになる。
また、本発明の他の好ましい態様においては、所定の変調器を用いて、前記A/D変換器に入力すべき前記信号に対して、周波数、位相及び振幅の少なくとも1種の変調を付加する。この場合、前記信号自体にある程度のランダム性が付加されるようになるため、前記A/D変換器を通過した後の前記出力値はよりランダムなものとなる。この結果、前記2進数列さらには前記n進乱数のランダム性をより向上させることができるようになる。
前記A/D変換器としては、出力が2進法であるものを用いることができる。この場合、上述したように、前記出力値の“0”に対して“0”又は“1”の数値を割り当て、前記出力値の“1”に対して“1”又は“0”の数値を割り当て、前記2進数列を形成する。
また、前記A/D変換器の出力がm進法(mは4以上の偶数)であるものを用いることができる。この場合、前記出力値の奇数値に対して“0”又は“1”の数値を割り当て、前記出力値の偶数値に対して“1”又は“0”の数値を割り当て、前記2進数列を形成する。
さらに、前記A/D変換器の出力がm進法(mは3以上の奇数)であるものを用いることができる。この場合、前記出力値の“0”から“m−2”までの数値を利用し、前記数値が奇数値であれば0”又は“1”の数値を割り当て、前記数値が偶数値であれば“1
”又は“0”の数値を割り当て、前記2進数列を形成することができる。また、前記出力値の“1”から“m−1”までの数値を利用し、前記数値が奇数値であれば“0”又は“1”の数値を割り当て、前記数値が偶数値であれば“1”又は“0”の数値を割り当て、前記2進数列を形成することができる。
”又は“0”の数値を割り当て、前記2進数列を形成することができる。また、前記出力値の“1”から“m−1”までの数値を利用し、前記数値が奇数値であれば“0”又は“1”の数値を割り当て、前記数値が偶数値であれば“1”又は“0”の数値を割り当て、前記2進数列を形成することができる。
以上説明したように、本発明によれば、廉価かつ簡易な構成の装置を用いて、より無秩序な乱数を発生させる新規な方法、並びに前記方法に適用する装置を提供することができる。
10,20 乱数生成装置
11 発振器
12,22 A/D変換器
13,23 計算機
17,27 変調器
21 ショット雑音発生回路
24 直流電源
11 発振器
12,22 A/D変換器
13,23 計算機
17,27 変調器
21 ショット雑音発生回路
24 直流電源
以下、本発明の詳細、並びにその他の特徴及び利点について、最良の形態に基づいて詳細に説明する。
図2は、本発明の乱数生成方法に用いる装置の一例を概略的に示す図である。図2において、乱数生成装置10は、信号生成手段としての発振器11と、A/D変換器12と、計算機13とを有している。発振器11からは、例えば三角波及び正弦波などの所定の信号が生成及び発振され、A/D変換器12内に導入され、所定のA/D変換が施されて所定の値が出力される。発振器11は、水晶発振器、LC発振器やCR発振器などから構成することができる。
A/D変換器12は任意のm進法のものを用いることができる。2進法のA/D変換器から構成した場合は、その出力値は2進数となり、“0”又は“1”の数値が出力されることになる。m進法(m≧3)のA/D変換器から構成した場合、その出力値はm進数となり、“0”から“m−1”の数値が出力されることになる。
したがって、2進法のA/D変換器を用いた場合、その出力値“0”に対して“0”又は“1”を割り当て、出力値“1”に対して“1”又は“0”を割り当てることにより、2進数列を得ることができる。したがって、この2進数列を所定の桁数で区切ることにより、その画定桁に応じたn進乱数を生成することができるようになる。
また、m=2n(nは2以上の整数)進法のA/D変換器、すなわち4以上の偶数進数のA/D変換器を用いた場合、その出力値の奇数値に対して“0”又は“1”の数値を割り当て、前記出力値の偶数値に対して“1”又は“0”の数値を割り当てることにより、前記2進数列を得ることができる。したがって、上述したように、前記2進数列を所定の桁数で区切ることにより、その画定桁に応じたn進乱数を生成することができるようになる。
さらに、m=2n−1(nは2以上の整数)進法のA/D変換器、すなわち3以上の奇数進数のA/D変換器を用いた場合、その出力値の“0”から“m−2”までの数値を利用し、前記数値が奇数値であれば“0”又は“1”の数値を割り当て、前記数値が偶数値であれば“1”又は“0”の数値を割り当てることにより、前記2進数列を得ることができる。この場合も、前記2進数列を所定の桁数で区切ることにより、その画定桁に応じたn進乱数を生成することができるようになる。
なお、3以上の奇数進数を用いる場合、前記出力値の“1”から“m−1”までの数値を利用し、同様に前記数値が奇数値であれば“0”又は“1”の数値を割り当て、前記数値が偶数値であれば“1”又は“0”の数値を割り当てることにより、前記2進数列を得ることができ、前記同様にn進乱数を生成することができるようになる。
A/D変換器12からは、2進法のA/D変換器を用いる、あるいはm進法のA/D変換器を用いるいずれの場合においても、A/D変換によって複数の数値(ビット)が出力される。したがって、2進法のA/D変換器を用いた場合の出力値“0”又は“1”、あるいはm進法を用いた場合の奇数出力値及び偶数出力値、並びに“0”から“m−1”までの出力値は、任意のビットのものを用いることができる。
しかしながら、特に最下位のビットを用いることにより、前記最下位ビットは揺らぎが大きいため、前記A/D変換器からの出力値がよりランダムなものとなり、前記2進数列をランダムなものとすることができる。この結果、前記2進数列を所定の桁数で区切って得た前記n進乱数のランダム性がより向上するようになる。
なお、以上説明したような最下位ビットを含む適当なビットの選択、2進数列の形成、及び目的とするn進乱数の生成は、A/D変換器12の後方に設けた計算機13によって行われる。
また、上述した最下位ビットの代わりに、A/D変換による複数のビットを用い、対応するビット毎の、時間経過によって得られた変動値を用いることができる。かかる場合の具体例について以下に説明する。
A/D変換器出力の内容を最下位桁から上位桁に向かってr0、r1、r2、・・・と表し、時刻の経過をt0、t1、t2、t3、・・・と表す。例えば 最下位桁の時刻t0、t1、t2、t3における値を表示する場合はr0,0、r0,1、r0,2、r0,3とする。同様に最下位桁のうえの桁の時刻t0、t1、t2、t3における値を表示する場合はr1,0、r1,1、r1,2、r1,3とする。今まで述べてきた乱数の生成法は、例えばr0,0、r0,1、r0,2、r0,3・・・の値に対して、“0”又は“1”をルールによって割り当てて2進数列を形成するものであった。現在、LC発振器の周波数3MHzとし、A/D変換器のサンプリング速度を20MHzとしてもNISTの統計的暗号用乱数検定FIPS140−2を100%合格する性能を実現している(NIST:National Institute
of Standards and Technology、FIPS: Federal Information Processing Standards)。即ち、原理的には1秒間に2千万個の安全な暗号用乱数を生成できている。
of Standards and Technology、FIPS: Federal Information Processing Standards)。即ち、原理的には1秒間に2千万個の安全な暗号用乱数を生成できている。
さらに、A/D変換器出力の複数(m個)の桁を用いて、対応する桁毎に上述の方法で乱数列を作ることが出来る。この様にすれば一定時間に一桁だけ使う方法に比べm倍の暗号用2進乱数数列が得られる。例えばm=3とすれば、一定時間に、r0,0、r0,1、r0,2、r0,3・・・に対応する2進乱数数列と、r1,0、r1,1、r1,2、r1,3・・・に対応する2進乱数数列と、r2,0、r2,1、r2,2、r2,3・・・に対応する2進乱数数列を作ることが出来る。この例では3倍の暗号用乱数が生成されたことになる。
また、更に別な方法として、ある時刻tnにおけるA/D変換器のm個の桁の出力r0n、r1n、r2n、・・・rmn、を組み合わせることによって、その値に対応する2進乱数数列を作れば、m個の乱数が得られる。これを各時刻で行えば一定時間に1桁のみしか使わない場合のm倍の長さの暗号用2進数列を形成することが出来る。桁の組み合わせ方法を変えることによって、統計的暗号用乱数検定FIPS140−2に合格しやすい乱数を生成することが出来る。時刻毎に桁の組み合わせ方法を変えることによって統計的暗号用乱数検定FIPS140−2に合格しやすい乱数を生成することが出来る。単に桁の組み合わせ順番を変えるだけでなく、或る桁を使ったり、使わなかったりをランダムに行うことで合格しやすい乱数を生成出来る。
また、本発明においては、図2の破線で示すように、発振器11及びA/D変換器12の間に変調器17を設けることができる。変調器17は、周波数変調器、位相変調器、及び振幅変調器の少なくとも一つから構成することができる。
周波数変調器、位相変調器、及び振幅変調器を用いることにより、それぞれ発振器11から発せられた信号の、周波数、位相及び振幅が変調されることになる。この場合、前記信号自体にある程度のランダム性が付加されるようになるため、A/D変換器12を通過した後の出力値はよりランダムなものとなる。この結果、前記出力値に対して“0”又は“1”を割り当てることにより得た2進数列、結果としてn進乱数のランダム性をより向上させることができるようになる。
周波数変調器、位相変調器、及び振幅変調器としては、それぞれ例えば(「電子回路」、桜庭一郎著、森北出版)に開示されたような、公知の変調器を用いることができる。具体的には、前記周波数変調器として、LC発振回路を含む変調器を用いることができる。前記位相変調器としては、所定の位相回路を含む変調器を用いることができる。前記振幅変調器としては、ベース変調回路又はコレクタ変調回路を含む変調器を用いることができる。これら変調器の入力信号としては例えば図4のショット雑音発生回路の出力が使用
できる。
できる。
図3は、本発明の乱数生成方法に用いる装置のその他の例を概略的に示す図である。図3に示す乱数生成装置20は、直流電源24と、ショット雑音発生回路21と、A/D変換器22と、計算機23とを具えている。A/D変換器22は、図1に示す例と同様に、2進法あるいはm進法(mは4以上の偶数あるいは3以上の奇数)のA/D変換器から構成することができる。また、計算機23は計算機13と同様のものから構成することができる。ショット雑音発生回路21は、例えば図4に示すような回路構成のものを用いることができる。この場合においては、直流電源24及びショット雑音発生回路21が発振器として機能することになる。
図3に示す乱数生成装置においては、直流電源24から例えば±12Vの直流電圧がショット雑音発生回路21に印加される。すると、ショット雑音発生回路21からは所定の雑音が生成及び発振され、A/D変換器22内に導入され、所定のA/D変換が施されて所定の値が出力される。
A/D変換器22からの出力値は、上述したようにその種類によって異なり、2進法のA/D変換器を用いた場合は、“0”又は“1”の数値が出力され、これに基づいた2進数列が形成され、さらにn進乱数が生成されることになる。m進法のA/D変換器を用いた場合は、“0”から“m−1”の数値が出力され、奇数値及び偶数値毎に“0”又は“1”などの数値が割り当てて2進数列を形成され、さらにn進乱数が形成されることになる。
なお、この場合においても、前記同様に、A/D変換器22から出力されるビット中の最下位ビットを用いることが好ましい。また、図中、破線で示すように、変調器27を設けることが好ましい。これによって、図1に関連して説明したように、よりランダムなn進乱数を得ることができるようになる。
変調器27は、変調器17と同様のものから構成することができる。また、ショット雑音発生回路についても図4に示すもの以外のものを用いることができ、ショット雑音発生回路以外の雑音発生回路を用いることもできる。
なお、図3に示すショット雑音発生回路に代えてD/A変換器を用い、この変換器からの出力をA/D変換器22に対して入力すべき信号として用いることができる。この場合は、直流電源24に代えて所定の計算機を用い、この計算機からのディジタル信号をD/A変換してアナログ信号に変換する。
前記ディジタル信号としては、物理乱数や数式乱数とすることができる。また、任意のテキストファイル、音声、楽器、電子楽器、画像などの信号やファイルを時系列的に出力させたものであっても良い。あるいは、前記計算機内の回路の任意の点(場所)のディジタル信号を上記D/A変換器に入力して、アナログ信号に変換するようにしても良い。
このように、上記計算機からのいろいろな信号をD/A変換器に入力すると、その出力はかなりランダムであり、サンプリング速度が遅ければ物理乱数になる可能性がある。なお、前記信号を他の信号の変調信号として用いるなど、前記他の信号と結合させることによって、結合して得た信号のランダム性が格段に高くなるので、サンプリング速度を十分に高くすることができるようになる。したがって、前記結合信号をA/D変換器に入力して乱数を生成した場合に、前記A/D変換器の上位ビットまで検定を通過する乱数とすることができ、乱数の高速化を実現することができるようになる。
また、図1〜図3に示すいずれの例においても、発振器からの三角波及び正弦波、ショット雑音発生回路からの雑音信号、D/A変換器からの出力信号を、微分回路又はハイパスフィルターの少なくとも一方を介した後、A/D変換器に入力するようにすることができる。このように、微分回路やハイパスフィルターを介することにより、前記信号における高域周波数を取り出すことができるようになるので、前記信号におけるノイズ成分が増大し、A/D変換器に入力して乱数を生成した場合のランダム性が増大する。その結果、A/D変換器の上位ビットまで検定を通過する乱数を生成することができるようになり、乱数の高速化が可能となる。
以下、実施例により本発明の特徴、利点及び効果を具体的に示す。なお、得られた乱数の評価は、現在最も厳しいとされるNIST(National Institute of Standards and Technology)のFIPS140-2[4]に示される統計学的乱数生成テストを採用した。
(実施例1)
<水晶発振器による乱数生成>
(1)三角波を使用した場合
水晶振動子を基準とした発振器(水晶発振器:NF CORPORATION WAVE FACTORY1946)の出力を−4.95〜+4.95Vの三角波とし、この信号を12ビット長の2進法A/D変換を用いてA/D変換し、計算機に取り込んだ。このときサンプリング周波数は1MHzとした。前記発振器の発振周波数と、検定通過率の関係とを図5に示す。図の横軸は発振周波数、縦軸は検定通過率を示す。図5より、発振周波数が約15kHz以上であれば、ほぼ100%検定を通過していることがわかる。
<水晶発振器による乱数生成>
(1)三角波を使用した場合
水晶振動子を基準とした発振器(水晶発振器:NF CORPORATION WAVE FACTORY1946)の出力を−4.95〜+4.95Vの三角波とし、この信号を12ビット長の2進法A/D変換を用いてA/D変換し、計算機に取り込んだ。このときサンプリング周波数は1MHzとした。前記発振器の発振周波数と、検定通過率の関係とを図5に示す。図の横軸は発振周波数、縦軸は検定通過率を示す。図5より、発振周波数が約15kHz以上であれば、ほぼ100%検定を通過していることがわかる。
(2)正弦波を使用した場合
上記(1)と同じ水晶発振器を用い、その出力を−4.95〜+4.95Vの正弦波とした。なお、サンプリング周波数は1MHzとした。このときの水晶発振器の発振周波数と、検定通過率の関係を図6に示す。図6より、正弦波は三角波と比較して、より低い発振周波数で検定を通過することがわかる。
上記(1)と同じ水晶発振器を用い、その出力を−4.95〜+4.95Vの正弦波とした。なお、サンプリング周波数は1MHzとした。このときの水晶発振器の発振周波数と、検定通過率の関係を図6に示す。図6より、正弦波は三角波と比較して、より低い発振周波数で検定を通過することがわかる。
(実施例2)
<ショット雑音発生回路による乱数生成>
図4に示すショット雑音発生回路からの出力を12ビット長の2進法A/D変換を用いてA/D変換し、計算機に取り込んだ。取り込んだデータの下位ビットから順に、rO、r1、r2…とした。各rOを20,000個用いて1組としたものをrO(20000)と表し、以下r1を20,000個用いて1組としたものをr1(20000)…と表す。これらのデータ列について、サンプリング周波数を変化させた場合の、サンプリング周波数と検定通過率の関係を図7に示す。図7より、下位ビットを用いるほど、高いサンプリング周波数まで高い検定通過率を維持しており、特に最下位ビットr0で顕著であることが分かる。
<ショット雑音発生回路による乱数生成>
図4に示すショット雑音発生回路からの出力を12ビット長の2進法A/D変換を用いてA/D変換し、計算機に取り込んだ。取り込んだデータの下位ビットから順に、rO、r1、r2…とした。各rOを20,000個用いて1組としたものをrO(20000)と表し、以下r1を20,000個用いて1組としたものをr1(20000)…と表す。これらのデータ列について、サンプリング周波数を変化させた場合の、サンプリング周波数と検定通過率の関係を図7に示す。図7より、下位ビットを用いるほど、高いサンプリング周波数まで高い検定通過率を維持しており、特に最下位ビットr0で顕著であることが分かる。
以上、具体例を挙げながら発明の実施の形態に基づいて本発明を詳細に説明してきたが、本発明は上記内容に限定されるものではなく、本発明の範疇を逸脱しない限りにおいてあらゆる変形や変更が可能である。
例えば、所定の雑音又は信号を生成及び発振するための発振器を複数台用い、それらの出力を結合してA/D変換器に入力することにより、乱数生成の高速化を実現することができる。
上記結合の方法としては、和を取る方法、差を取る方法、乗算をする方法が考えられる。特に、乗算をする方法は複雑な信号を発生するので、最下位桁よりも上の桁から生成する乱数列の検定が通り易くなる。
例として二つの正弦波信号を考える。それぞれの信号の周波数をf1、f2とした場合、乗算回路を通した後の出力成分は、f1、f2の外に2f1、2f2、f1+f2、f1〜f2が出る。もし二つの信号が雑音であれば、雑音は多くの周波数成分を含んでいるので、乗算回路を通ったあとの出力は非常に沢山の複雑な信号を含むことになる。これらの出力をA/D変換器に入力すると最下位桁よりも上の桁の更に上の桁から生成する乱数列の検定が通り易くなる。
更に、三つ以上の雑音又は信号を生成及び発振するための発振器を用いればより複雑な信号を含む出力を乗算回路から得ることが出来、より上位桁から生成する乱数列の検定が通り易くなる。
また更に、複数の信号がそれぞれ雑音で変調されたものであり、これらを上述のように、和を取る方法、差を取る方法、乗算をする方法で結合すれば更に乱数生成速度の高速化が可能である。
このように最下位桁よりも上の多くの桁が使えることになると、乱数生成速度が、使える桁数だけ速くなる。一般に、乱数生成速度を速くするためにA/D変換器のサンプリング周波数を10倍にすると費用も10倍になるが、乗算回路を用いる方法では僅かな費用の増加ですむので実用化の利点は大きい。
乗算回路としては専用のIC NJM1496等を使えばよい。和や差を取る方法としては演算増幅器(例えば741)を用いればよい。高い周波数で和をとる場合はトランジスタやFETの入力に直接複数の雑音又は信号を加えればよい。
なお、前記乗算は乗算回路又は非線形素子を含むミキサー回路を用いて行うことができる。この場合、上記発振器から発せられた信号は互いに前記非線形素子に印加されて、他の周波数の信号が生成されるようになる。乗算回路又はミキサー回路などを用いて乗算を行なうことにより、生成される信号成分には、入力した元の信号のそれぞれの2乗波、入力した元の信号の和や差、入力した元の信号そのものなどが含まれるようになる。この結果、生成される信号成分のランダム性は元の信号よりも強くなる。また、上記ミキサー回路に含まれる上記非線形素子は、2乗特性の他に、3乗特性及び4乗特性を有する。そのため、当初存在しなかった多くの信号成分が生成され、ランダム性が更に強くなる。
したがって、A/D変換器を通じて乱数を生成した場合に、前記A/D変換器の上位ビットまで検定を通過する乱数を生成することができるようになり、乱数の更なる高速化が可能となる。
なお、図8は、上述した乗算回路の一例を示す回路図であり、図9は、図8に示す乗算回路を用いて乱数を生成した際の検定率を示すグラフである。図8に示すような乗算回路により高次のビットまで十分な検定通過率を示し、乱数を生成できることが分かる。
なお、上記非線形素子としては、ダイオードやトランジスタなどを挙げることができ、上記ミキサー回路としては、前記非線形素子をB級やC級で動作させた回路などを例示することができる。なお、このB級及びC級の動作は、上述した「電子回路」(桜庭一郎著、森北出版)などに記載されている。
本発明の乱数生成方法及び乱数生成装置は、社会現象や物理現象の数値シュミレーションなどに用いることができる。また、情報保護分野における暗号技術としても用いることができる。
Claims (28)
- 所定の発振器からの雑音又は信号をA/D変換器に入力する工程と、
前記A/D変換器から出力された値に対して“0”又は“1”を割り当てて2進数列を形成する工程と、
前記2進数列を所定の桁数で区切り、n進乱数を生成する工程と、
を具えることを特徴とする乱数生成方法。 - 前記A/D変換器の出力が2進法であって、前記出力値の“0”に対して“0”又は“1”の数値を割り当て、前記出力値の“1”に対して“1”又は“0”の数値を割り当て、前記2進数列を形成することを特徴とする、請求項1に記載の乱数生成方法。
- 前記A/D変換器の出力がm進法(mは4以上の偶数)であって、前記出力値の奇数値に対して“0”又は“1”の数値を割り当て、前記出力値の偶数値に対して“1”又は“0”の数値を割り当て、前記2進数列を形成することを特徴とする、請求項1に記載の乱数生成方法。
- 前記A/D変換器の出力がm進法(mは3以上の奇数)であって、前記出力値の“0”から“m−2”までの数値を利用し、前記数値が奇数値であれば“0”又は“1”の数値を割り当て、前記数値が偶数値であれば“1”又は“0”の数値を割り当て、前記2進数列を形成することを特徴とする、請求項1に記載の乱数生成方法。
- 前記A/D変換器の出力がm進法(mは3以上の奇数)であって、前記出力値の“1”から“m−1”までの数値を利用し、前記数値が奇数値であれば“0”又は“1”の数値を割り当て、前記数値が偶数値であれば“1”又は“0”の数値を割り当て、前記2進数列を形成することを特徴とする、請求項1に記載の乱数生成方法。
- 前記A/D変換器からの出力値は、A/D変換による最下位ビットを用いることを特徴とする、請求項1〜5のいずれか一に記載の乱数生成方法。
- 前記A/D変換器からの出力値は、A/D変換による複数のビットを用い、対応するビット毎の、時間経過によって得られた変動値を用いることを特徴とする、請求項1〜5の
いずれか一に記載の乱数生成方法。 - 前記対応するビット毎の、前記変動値に基づいて得た2進数列を、前記複数のビットの全体に亘って結合し、この結合して得た2進数列に基づいて前記n進乱数を生成することを特徴とする、請求項7に記載の乱数生成方法。
- 前記発振器は複数の発振器であって、各発振器からの出力を結合して前記A/D変換器に入力することを特徴とする、請求項1〜8のいずれか一に記載の乱数生成方法。
- 前記出力の結合は、和を取る方法、差を取る方法及び乗算する方法の少なくとも1つの方法を用いて行うことを特徴とする、請求項9に記載の乱数生成方法。
- 前記乗算は、乗算回路又は非線形素子を含むミキサー回路を用いて行なうことを特徴とする、請求項10に記載の乱数生成方法。
- 前記発振器は、三角波、正弦波、ショット雑音、及びD/A変換器出力の少なくとも一つを生成することを特徴とする、請求項1〜8のいずれか一に記載の乱数生成方法。
- 前記三角波、前記正弦波、前記ショット雑音、及び前記D/A変換器出力は、微分回路及びハイパスフィルターの少なくとも一方を介した後、前記A/D変換器に入力するようにしたことを特徴とする、請求項12に記載の乱数生成方法。
- 前記信号に対して周波数、位相及び振幅の少なくとも1種の変調を付加することを特徴とする、請求項1〜13のいずれか一に記載の乱数生成方法。
- 所定の雑音又は信号を生成及び発振するための発振器と、
前記雑音又は前記信号をA/D変換するためのA/D変換器と、
前記A/D変換器から出力された値に対して “0”又は“1”を割り当てて2進数列を形成し、前記2進数列を所定の桁数で区切り、n進乱数を生成するための計算機と、
を具えることを特徴とする、乱数生成装置。 - 前記A/D変換器の出力が2進法であって、前記計算機において、前記出力値の“0”に対して“0”又は“1”の数値を割り当て、前記出力値の“1”に対して“1”又は“0”の数値を割り当て、前記2進数列を形成することを特徴とする、請求項15に記載の乱数生成装置。
- 前記A/D変換器の出力がm進法(mは4以上の偶数)であって、前記計算機において、前記出力値の奇数値に対して“0”又は“1”の数値を割り当て、前記出力値の偶数値に対して“1”又は“0”の数値を割り当て、前記2進数列を形成することを特徴とする、請求項15に記載の乱数生成装置。
- 前記A/D変換器の出力がm進法(mは3以上の奇数)であって、前記計算機において、前記出力値の“0”から“m−2”までの数値を利用し、前記数値が奇数値であれば“0”又は“1”の数値を割り当て、前記数値が偶数値であれば“1”又は“0”の数値を割り当て、前記2進数列を形成することを特徴とする、請求項15に記載の乱数生成装置。
- 前記A/D変換器の出力がm進法(mは3以上の奇数)であって、前記計算機において、前記出力値の“1”から“m−1”までの数値を利用し、前記数値が奇数値であれば“0”又は“1”の数値を割り当て、前記数値が偶数値であれば“1”又は“0”の数値を割り当て、前記2進数列を形成することを特徴とする、請求項15に記載の乱数生成装置。
- 前記A/D変換器からの出力値は、A/D変換による最下位ビットを用いることを特徴とする、請求項15〜19のいずれか一に記載の乱数生成装置。
- 前記A/D変換器からの出力値は、A/D変換による複数のビットを用い、対応するビット毎の、時間経過によって得られた変動値を用いることを特徴とする、請求項15〜20のいずれか一に記載の乱数生成装置。
- 前記対応するビット毎の、前記変動値に基づいて得た2進数列を、前記複数のビットの全体に亘って結合し、この結合して得た2進数列に基づいて前記n進乱数を生成することを特徴とする、請求項21に記載の乱数生成装置。
- 前記発振器は複数の発振器であって、各発振器からの出力を結合して前記A/D変換器に入力することを特徴とする、請求項15〜22のいずれか一に記載の乱数生成装置。
- 前記出力の結合は、和を取る方法、差を取る方法及び乗算する方法の少なくとも1つの方法を用いて行うことを特徴とする、請求項23に記載の乱数生成装置。
- 前記乗算は、非線形素子を含むミキサー回路を用いて行なうことを特徴とする、請求項24に記載の乱数生成装置。
- 前記発振器は、三角波、正弦波、ショット雑音、及びD/A変換器出力の少なくとも一つを生成することを特徴とする、請求項15〜22のいずれか一に記載の乱数生成装置。
- 前記三角波、前記正弦波、前記ショット雑音、及び前記D/A変換器出力は、微分回路及びハイパスフィルターの少なくとも一方を介した後、前記A/D変換器に入力するようにしたことを特徴とする、請求項26に記載の乱数生成装置。
- 前記信号に対して周波数、位相及び振幅の少なくとも1種の変調を付加するための変調器を具えることを特徴とする、請求項15〜27のいずれか一に記載の乱数生成装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004334738 | 2004-11-18 | ||
JP2004334738 | 2004-11-18 | ||
JP2005148330 | 2005-05-20 | ||
JP2005148330 | 2005-05-20 | ||
PCT/JP2005/020610 WO2006054476A1 (ja) | 2004-11-18 | 2005-11-10 | 乱数生成方法及び乱数生成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2006054476A1 true JPWO2006054476A1 (ja) | 2008-05-29 |
Family
ID=36407019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006544947A Withdrawn JPWO2006054476A1 (ja) | 2004-11-18 | 2005-11-10 | 乱数生成方法及び乱数生成装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20070255777A1 (ja) |
EP (1) | EP1701248A1 (ja) |
JP (1) | JPWO2006054476A1 (ja) |
KR (1) | KR20060095942A (ja) |
CA (1) | CA2552747A1 (ja) |
WO (1) | WO2006054476A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7904494B2 (en) * | 2006-12-08 | 2011-03-08 | International Business Machines Corporation | Random number generator with random sampling |
US8874926B1 (en) * | 2012-03-08 | 2014-10-28 | Sandia Corporation | Increasing security in inter-chip communication |
WO2013173729A1 (en) * | 2012-05-18 | 2013-11-21 | Cornell University | Methods and systems for providing hardware security functions using flash memories |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07273613A (ja) * | 1994-04-04 | 1995-10-20 | Niko Denshi Kk | 2値化雑音信号発生装置 |
JPH0946136A (ja) * | 1995-08-02 | 1997-02-14 | Sony Corp | ガウス雑音発生装置および方法 |
JPH0997170A (ja) * | 1995-10-02 | 1997-04-08 | Niko Denshi Kk | 8ビット乱数作成装置 |
DE19618098C1 (de) * | 1996-05-06 | 1997-06-05 | Siemens Ag | Schaltungsanordnung zum Erzeugen zufälliger Bitfolgen |
JP2980576B2 (ja) * | 1997-09-12 | 1999-11-22 | 株式会社東芝 | 物理乱数発生装置及び方法並びに物理乱数記録媒体 |
GB2353155A (en) * | 1999-08-05 | 2001-02-14 | Mitsubishi Electric Inf Tech | A random binary signal generator with a narrowed autocorrelation function |
JP3650826B2 (ja) * | 1999-11-05 | 2005-05-25 | 株式会社 沖マイクロデザイン | 乱数発生集積回路 |
JP3507886B2 (ja) * | 2000-07-24 | 2004-03-15 | 新潟大学長 | 乱数発生方法 |
US6993542B1 (en) * | 2001-03-12 | 2006-01-31 | Cisco Technology, Inc. | Efficient random number generation for communication systems |
US6691141B2 (en) * | 2001-04-13 | 2004-02-10 | Science Applications International Corp. | Method and apparatus for generating random number generators |
JP2003108364A (ja) * | 2001-09-26 | 2003-04-11 | Toshiba Corp | 乱数発生回路 |
DE10219135B4 (de) * | 2002-04-29 | 2004-03-04 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Erzeugen einer Zufallszahl |
US6771104B2 (en) * | 2002-07-25 | 2004-08-03 | Koninklijke Philips Electronics N.V. | Switching electronic circuit for random number generation |
JP2004127217A (ja) * | 2002-07-30 | 2004-04-22 | Univ Niigata | 乱数発生方法及び乱数発生装置 |
US20050055392A1 (en) * | 2002-11-06 | 2005-03-10 | Niigata University | Method for generating random number and random number generator |
JP2004171549A (ja) * | 2002-11-06 | 2004-06-17 | Univ Niigata | 乱数発生方法及び乱数発生装置 |
US7472148B2 (en) * | 2004-07-23 | 2008-12-30 | Qualcomm Incorporated | Method and apparatus for random-number generator |
US7561085B2 (en) * | 2007-03-21 | 2009-07-14 | Honeywell International Inc. | Systems and methods for improving data converters |
-
2005
- 2005-11-10 WO PCT/JP2005/020610 patent/WO2006054476A1/ja active Application Filing
- 2005-11-10 KR KR1020067004281A patent/KR20060095942A/ko not_active Application Discontinuation
- 2005-11-10 JP JP2006544947A patent/JPWO2006054476A1/ja not_active Withdrawn
- 2005-11-10 US US10/570,684 patent/US20070255777A1/en not_active Abandoned
- 2005-11-10 CA CA002552747A patent/CA2552747A1/en not_active Abandoned
- 2005-11-10 EP EP05806215A patent/EP1701248A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
WO2006054476A1 (ja) | 2006-05-26 |
EP1701248A1 (en) | 2006-09-13 |
US20070255777A1 (en) | 2007-11-01 |
KR20060095942A (ko) | 2006-09-05 |
CA2552747A1 (en) | 2006-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cusick et al. | Stream ciphers and number theory | |
Dubrova | A Scalable Method for Constructing Galois NLFSRs With Period $2^ n-1$ Using Cross-Join Pairs | |
JP3696209B2 (ja) | シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器 | |
Cang et al. | Pseudo-random number generator based on a generalized conservative Sprott-A system | |
Volos | Chaotic random bit generator realized with a microcontroller | |
Cardell et al. | Binomial representation of cryptographic binary sequences and its relation to cellular automata | |
Fúster-Sabater et al. | A simple linearization of the self-shrinking generator by means of cellular automata | |
AVAROĞLU et al. | A novel S-box-based postprocessing method for true random number generation | |
JPWO2006054476A1 (ja) | 乱数生成方法及び乱数生成装置 | |
Wang et al. | A new effective shift rule for M-sequences | |
Sala et al. | Efficient constructions of the Prefer-same and Prefer-opposite de Bruijn sequences | |
Chugunkov et al. | Computing in finite fields | |
Caballero-Gil et al. | A wide family of nonlinear filter functions with a large linear span | |
JP4629300B2 (ja) | 暗号学的擬似乱数発生装置及びプログラム | |
Wang | Some cyclic codes with prime length from cyclotomy of order 4 | |
JP2005107995A (ja) | 乱数生成回路、半導体集積回路、icカード及び情報端末機器 | |
Dattorro | Effect design: Part 3 oscillators: Sinusoidal and pseudonoise | |
Mohammed et al. | Linear Complexity of r-ary Sequences Derived from Euler Quotients Modulo 2 p | |
Fúster-Sabater | Computing classes of cryptographic sequence generators | |
Ergün et al. | Random number generation using dual oscillator architecture and discrete-time chaos | |
Overmars | Survey of rsa vulnerabilities | |
Xing et al. | Low-correlation, large linear span sequences from function fields | |
Li et al. | Efficient construction of cross-join pairs in a product of primitive polynomials of pairwise-coprime degrees | |
Çakil et al. | A hybrid key schedule algorithm based on blum blum shub generator and chaotic systems | |
Ergün | A truly random number generator based on a pulse-excited cross-coupled chaotic oscillator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090203 |