(57)【要約】暗号化等で必要な物理乱数を簡素な構成で提供する。ノイズ発生源１０１から発生したノイズ信号を増幅する増幅器１０３と、増幅されたノイズ信号を２値化するための２値化装置１０５を備え、前記２値化装置１０５は、シリアルレジスタによって構成されている。
2002037260.tif 000002
【特許請求の範囲】
【請求項１】
ノイズ発生源（１０１）から発生したノイズ信号を増幅する増幅器（１０３）と、増幅されたノイズ信号を２値化するための２値化装置（１０５）を備え、
前記２値化装置（１０５）は、シリアルレジスタによって構成されていることを特徴とする乱数発生装置。
【請求項２】
前記シリアルレジスタ（１０５）から出力されたシリアルなデジタル物理乱数を、所定ビットのパラレル信号に変換するシリアルパラレル変換器（１０７）を備えていることを特徴とする請求項１記載の乱数発生装置。
【請求項３】
生成された乱数データのビットのうちいくつかをマスクして出力することができるビットマスク部（１０８）を備えていることを特徴とする請求項１又は２記載の乱数発生装置。
【請求項４】
前記ビットマスク部（１０８）は装置外部から指定されたビットに対してマスクすることを特徴とする請求項３記載の乱数発生装置。
【請求項５】
生成された乱数データを装置内部に記憶する記憶部（１１８）を備えていることを特徴とする請求項１〜４のいずれかに記載の乱数発生装置。
【請求項６】
前記記憶部（１１８）は、装置外部からの乱数データ出力の要求に応じて装置外部に出力された乱数データ数を記憶保持するものであることを特徴とする請求項５記載の乱数発生装置。
【請求項７】
本人認証のためのＩＤを登録可能な記憶部（１１８）を備えていることを特徴とする請求項１〜６のいずれかに記載の乱数発生装置。
【請求項８】
前記ノイズ源（１０１）のノイズは、半導体の熱雑音であることを特徴とする請求項１〜７のいずれかに記載の乱数発生装置。
【請求項９】
請求項１〜８のいずれかに記載の乱数発生装置は、装置外のコンピュータからの要求に応じて乱数データを出力する外部インターフェース部（１２５）を備えている。
【請求項１０】
請求項１〜９のいずれかに記載の乱数発生装置は、ワンチップＩＣ装置として構成されている。
【発明の詳細な説明】
【技術分野】
本発明は、乱数発生装置に関する。
【背景技術】
データの暗号化等には、乱数が必要とされる。乱数には、プログラムにより生成されるいわゆる疑似乱数があり、この疑似乱数が一般に用いられている。
しかし、疑似乱数は、生成規則が容易に推定でき、暗号化には不向きである。安全性を考慮すると、生成規則のない真性乱数が好ましい。
ここで、自然界のランダムな現象を物理乱数として利用することが考えられるが、機密文章暗号化プログラムやゲーム機械さらに電子認証、数値シュミレーション（モンテカルロ法）等々の様々な使用を考慮すると、パーソナルコンピュータや携帯端末機器などが乱数を得られるように簡素な構成の物理乱数発生装置が必要となる。
本発明は、かかる問題に鑑みてなされたものであり、暗号化等で必要な物理乱数を簡素な構成で提供することを課題とする。
【発明の開示】
上記課題を解決するために、本発明は、次の技術的手段を採用した。すなわち、本発明の特徴は、ノイズ発生源から発生したノイズ信号を増幅する増幅器と、増幅されたノイズ信号を２値化するための２値化装置とを備え、前記２値化装置は、シリアルレジスタによって構成されていることを特徴とする。ノイズ発生源から発生したノイズ信号を利用して乱数を生成することでランダムな物理乱数が得られる。そして、増幅器によって増幅されたノイズ信号を２値化する２値化装置として、シリアルレジスタを採用しているので、簡易な構成で容易に２値化が安定して行える。
また、前記シリアルレジスタから出力されたシリアルなデジタル物理乱数を、所定ビットのパラレル信号に変換するシリアルパラレル変換器を備えていれば、乱数データをパラレル信号として得ることができる。
また、乱数の確率を調整するために、生成された乱数データのビットのうちいくつかをマスクして出力することができるビットマスク部を備えているのが好ましい。
そして、前記ビットマスク部は装置外部から指定されたビットに対してマスクするものであれば、自由に確率を変えることができ、パチンコ遊技機等の確率が変化する乱数を必要とする機器に有用である。
また、生成された乱数データを装置内部に記憶する記憶部を備えていれば、後から乱数データの確認等を行うのに役立つ。
とくに、前記記憶部は、装置外部からの乱数データ出力の要求に応じて装置外部に出力された乱データ数を記憶保持するものであるのが好適である。
あるいは、本人認証のためのＩＤを登録可能な記憶部を備えているのが好適である。
また、前記ノイズ源のノイズは、半導体の熱雑音とすることができる。
さらに、前記乱数発生装置は、装置外のコンピュータからの要求に応じて乱数データを出力する外部インターフェース部を備えているのが好ましく、さらには、乱数発生装置はワンチップＩＣ装置として構成されているのが好ましい。
【発明を実施するための最良の形態】
以下、本発明の実施形態を図面に基づいて説明する。
本発明に係る乱数発生装置１は、乱数を装置外部に出力可能なものである。図１に示すように、乱数発生装置１は、ワンチップＩＣとして構成され、外部装置であるパーソナルコンピュータＰＣ等のデータバス等に接続されて乱数等をパーソナルコンピュータ側に出力可能なインターフェースを備えている。なお、乱数発生装置１であるワンチップＩＣは電子基板上に配置され、当該基板はパーソナルコンピュータＰＣと接続するためのケーブル等を備えた筺体に内蔵して製品とすることができる。
図２に示すように、この乱数発生装置１は、３系統の出力が可能であり、また２系統の入力が可能となっている。なお、いずれの入出力も同一のデータバスを介して外部装置ＰＣとデータのやりとりが行われる。
乱数発生装置１の出力のうち、第１系出力は、物理乱数データの出力であり、装置（ＩＣ）内部で発生する熱雑音（白色雑音）をアナログ的に増幅し、その信号をサンプリングして２値化しデジタル数値にすることで物理乱数を出力するものである。
この第１系出力のために、装置１は、ノイズ信号を出力するノイズ源１０１と、ノイズ源１０１から出力されたノイズ信号を増幅する増幅器１０３と、増幅したノイズ信号を２値化する２値化装置１０５と、２値化されたシリアル信号をパラレル信号に変換するシリアルパラレル変換器１０７とを備えている。
前記ノイズ源１０１は、半導体の熱雑音をノイズとするものであり、半導体の熱雑音を利用すると、疑似乱数に比べ、周期性がなくランダムな信号を得られる。また、ノイズ源１０１となる半導体は装置（ＩＣ）内部に備えられ、外付け部品は不要である。
図３に示すように、前記増幅器１０３は、ノイズ信号を２値化できるレベルまでノイズ振幅を高めるためのものである。この増幅器１０３は相補増幅器により構成されている。また、この増幅器１０３は２段構成であり、１段目１０３ａで４０ｄＢ増幅し、２段目１０３ｂで２０ｄＢ増幅している。
増幅されたノイズ信号は、シュミットトリガゲート１０６に入力され、ノイズ信号の大きさに応じたパルス幅の方形波が出力される。シュミットトリガは、入力電圧（ノイズ信号）がある一定値以上になると出力パルスを立ち上げ（又は立ち下げ）、入力電圧が他の一定値以下になると出力派するを立ち下げ（又は立ち上げ）る回路である。
したがって、シュミットトリガゲート１０６により、アナログのノイズ信号がその大きさに応じたパルス幅のデジタルノイズ信号（ＴＴＬレベル）に変換される。このようにシュミットトリガゲート１０６は、ノイズ信号をデジタルノイズ信号（ＴＴＬレベル）に変換する変換器として機能している。
前記２値化装置１０５は、サンプリングクロックを用いたシリアルレジスタ１０５（以下、「シリアルシフトレジスタ」ともいう）で構成されている。シリアルレジスタ１０５の入力はノイズ信号であり、前記シュミットトリガゲート１０６の１か０の出力が、シリアルレジスタ１０５に入力される。このシリアルシフトレジスタ１０５は、シリアル入力、シリアル出力のシフトレジスタとして構成されており、クロックＣＬＫ０，ＣＬＫ１で動作する。なお、クロックＣＬＫ０，ＣＬＫ１、装置のメインクロックを１／２５６に分周したものを用いており、クロックＣＬＫ０とクロックＣＬＫ１とは位相が半周期ずれた同周波数のクロックである。
シリアルレジスタ１０５は、Ｄフリップフロップ１０５ａ，１０５ｂ，１０５ｃをシリアルに３段（複数段）接続して構成されており、第１段目１０５ａ及び第３段目１０５ｃには、クロックＣＬＫ０が与えられ、第２段目１０５ｂにはクロックＣＬＫ１が与えられる。
図４に示すように、２値化装置１０５は、ノイズ信号をクロックＣＬＫ０（サンプリングクロック）のタイミングで２値化するものである。これを詳細に説明すると、図５に示すように、シュミットトリガゲート１０６から出力されたパルス状のノイズ信号は、第１段目のＤフリップフロップ１０５ａによって、クロックＣＬＫ０信号の立ち上がりタイミングでサンプリングされ、第１段目のＤフリップフロップ１０５ａの出力Ｑは１か０を出力し、サンプリングクロックであるクロックＣＬＫ０のタイミングで定量的（サンプリングされた）数値となる。
そして、半周期ずれたクロックＣＬＫ１の立ち上がりタイミングで第１段目のＤフリップフロップ１０５ａの出力は、第２段目１０５ｂにシフトする。
さらに、ＣＬＫ０の次の立ち上がりタイミングで、第１段目１０５ａのＤフリップフロップは、再びノイズ信号のサンプリングを行うとともに、第２段目のＤフリップフロップ１０５ｂの出力は、第３段目１０５ｃにシフトする。すなわち、シリアルレジスタ１０５から出力される。
以上が繰り返され、第１段目１０５によるサンプリング結果は、クロックＣＬＫ０の１周期分遅延してシリアルレジスタ１０５の出力として現れる。前記ノイズ信号は、ランダムな信号であるから、これを２値化することによってサンプリングＣＬＫに同期したデジタル物理乱数が得られる。
また、サンプリング結果をシフトレジスタ１０５でシフトさせて出力することで、次のような効果が発生する。すなわち、サンプリングＣＬＫのタイミングが図６に示すようにノイズ信号の立ち上がり（又は、立ち下がり）とほぼ一致した場合、フリップフロップ１０５ａの出力にはグリッジ（ｇｒｉｇ）が発生することがある（セットアップ不良）が、第２段目１０５ｂ、第３段目１０５ｃとシフトさせることによって、グリッジを消去することができ、シリアルシフトレジスタ１０５の出力としてはグリッジを防止でき、安定した出力が得られる。
しかも、以上の２値化装置１０６によると、簡易な構成で２値化を行うことができ、装置の簡素化が図られ、ワンチップＩＣ化も容易となる。
図２に示すように、２値化されたシリアルな乱数信号は、シリアルパラレル変換器１０７によってパラレル信号に変換される。このパラレル信号は８ビットであり、乱数の数値としては２５６種類（０〜２５５の数値）となる。
８ビットのパラレル信号とされた乱数信号（物理乱数データ）は、ビットマスク部１０８を介して第１系出力とされる。
ビットマスク部１０８は、必要に応じて８ビット乱数データのいくつかのビットをマスク（１又は０に固定）するためのものである。図７に示す実施形態では、ビットマスク部１０８は、乱数データのビット数（８個）分のＯＲ回路から構成され、乱数データの各ビットとマスクレジスタ１２２の各ビットの値との論理和をとることにより、乱数データの所定ビットがマスクされる。すなわち、図７のマスクレジスタ１２２のようにマスクデータの上位３ビット（５，６，７ビット目）が１にセットされ、他のビットが０にセットされている場合、マスクビット部１０８の出力は、上位３ビット（５，６，７ビット目）が１に固定され、他のビットは、乱数データがそのまま出力される。
この場合、ビットマスク部１０８から出力された乱数データの有効ビットは８ビットのうち下位５ビットとなり、乱数の数値は３２種類となる。このようにビットマスク部１０８によって、乱数の発生確率を調整することができ、パチンコ等の遊技機等のように発生確率が変化する乱数が要求される場合に適している。
なお、マスクレジスタ１２２へのデータセットは装置外部から行えるが、この点については後述する。
乱数発生装置１の出力のうち、第２系出力は、複数個のカウンタ出力を、連続的排他的論理和チェーン構造回路に入力し、その回路の中から任意の８ビットをカウンター出力として取り出すものである。この第２系出力で得られる信号は、基本的にはカウンターに基づいているが、複数のカウンター出力を排他的論理和回路で構成されるアルゴリズムに基づいてランダムな数値となるようにデータミックスしているので、乱数として用いることができる。
この第２系出力のために、装置１は、３つのカウンタ１０９，１１０，１１１と、各カウンタの出力をミックスするためのデータミックス部１１５とを備えている。
図８にも示すように、前記カウンタは、１個のグレイカウンタ１０９と２個のバイナリカウンタ１１０，１１１とから構成され、各カウンタ１０９，１１０，１１１は８ビット出力である。また、各カウンタは、第１系出力で使用されたクロックＣＬＫ０と同じクロックで動作（カウント）する。
なお、グレイカウンタ１０９の出力端子（ａ１〜ａ８）は、信号線（ｅ０〜ｅ７）によってデータミックス部１１５の入力端子（ａ０〜ａ７）に接続され、第１バイナリカウンタ１１０の出力端子（ｙ１〜ｙ８）は、信号線（ｃ０〜ｃ７）によってデータミックス部１１５の入力端子（ｃ０〜ｃ７）に接続され、第２バイナリカウンタ１１１の出力端子（ｙ１〜ｙ８）は、信号線（ｄ０〜ｄ７）によってデータミックス部１１５の入力端子（ｄ０〜ｄ７）に接続されている。
データミックス部１１５は、各カウンタ１０９，１１０，１１１からの出力計２４ビットを排他的論理和回路（ＥＯＲ）によって８ビット出力を生成する。このデータミックス部１１５は、第１段目のチェーン構造回路１１５ａ，１１５ｂと第２段目のチェーン構造回路１１５ｃとから構成される（図９及び図１０参照）。
第１段目のチェーン構造回路は、さらに第１列チェーン構造回路１１５ａと第２列チェーン構造回路１１５ｂとを有している。第１列チェーン構造回路１１５ａは、１５個の２入力ＥＯＲ回路をチェーン状（直列）に接続したものであり、チェーンの最初のＥＯＲ回路の２入力と、その他のＥＯＲ回路の１入力（チェーン状に接続されていない方の入力）によって、第１列チェーン構造回路１１５ａ全体で、１６個（８ビット×２）の入力を有している。
第１列チェーン構造回路１１５ａの入力には、グレイカウンタ１０９の出力（ａ１〜ａ８）及び第１バイナリカウンタ１１０の出力（ｙ１〜ｙ８）が与えられる。すなわち、データミックス部１１５の入力（ａ０〜ａ７）及び入力（ｃ０〜ｃ７）が与えられる。第１列チェーン構造回路１１５ａの出力は、任意のＥＯＲ回路の出力から得ることができ、第２段目のチェーン構造回路１１５ｃに与えられる。図９では、チェーンの最初、４番目、７番目、チェーンの最後の各ＥＯＲの出力を第１列チェーン構造回路１１５ａの出力としている。なお、チェーンの最初の出力はｘ６、４番目の出力はｘ４、７番目の出力はｘ２、チェーンの最後の出力はｘ０として、第２段目のチェーン構造回路１１５ｃに与えられる。
第２列チェーン構造回路１１５ｂも第１列チェーン構造回路と同様の構成であり、第２列チェーン構造回路１１５ｂの入力には、第１バイナリカウンタ１１０の出力（ｙ１〜ｙ８）及び第２バイナリカウンタ１１１の出力（ｙ１〜ｙ８）が与えられる。すなわち、データミックス部１１５の入力（ｃ０〜ｃ７）及び入力（ｄ０〜ｄ７）が与えられる。第２列チェーン構造回路１１５の出力も、チェーンの最初、４番目、７番目、チェーンの最後の各ＥＯＲの出力が用いられている。なお、チェーンの最初の出力はｘ７、４番目の出力はｘ５、７番目の出力はｘ３、チェーンの最後の出力はｘ１として第２段目のチェーン構造回路１１５ｃに与えられる。
図１０に示すように、第１列チェーン構造回路１１５ａ及び第２列チェーン構造回路１１５ｂの出力ｘ０〜ｘ７が入力される第２段目のチェーン構造回路１１５ｃは、８個の２入力ＥＯＲ回路をチェーン状（直列）に接続したものであり、チェーンの最初のＥＯＲ回路の入力の一方側は、グランドＧＮＤに接続されて、全体として８個の入力を有している。
第２段目のチェーン構造回路１１５ｃの出力（ｏ０〜ｏ７）は、各ＥＯＲ回路の出力が用いられ、８ビットである。この第２段目のチェーン構造回路１１５ｃの出力が、データミックス部１１５の出力（ｏ０からｏ７）、すなわち第２系出力（カウンタデータ）となる。なお、このカウンタデータもサンプリングＣＬＫに基づくものであるので、サンプリングＣＬＫに同期した信号となっている。
第２系出力は、第１系出力と同様にビットマスクが可能であり、このためにビットマスク部１１６を備えている。このビットマスク部１１６の構成はビットマスク部１０８の構成と同様であり、マスクレジスタ１２２のマスクデータに応じて出力をマスクでき、第２系出力の有効ビット数を調整することができる。
図２に示すように、乱数発生装置１の出力のうち、第３系出力は、パラレルレジスタ列（記憶部）１１８にセットされたデータを出力するものである。このパラレルレジスタ列１１８は、８ビットのレジスタであり、装置外部から与えられたデータ（第２系入力）の他、第１系出力（乱数データ）又は第２系出力（カウンタデータ）のデータを書き込むことができるように接続されている。
このパラレルレジスタ列１１８は、ユーザＩＤを装置外部から書き込み、記憶保持させ、ＩＤが必要なときに第３系出力として出力することができる。この場合、パラレルレジスタ列１１８に登録されたＩＤは、本人認証に利用できる。パラレルレジスタ列１１８には、ＩＤ等の書き込みが自由であるが、書き込み禁止とすることもできる。
また、パラレルレジスタ列（記憶部）１１８は、装置外部に出力された乱数データ又はカウンタデータを書き込んでおいて記憶保持させるのに利用することもでき、必要なときに第３系出力として装置外部に出力することで、後のデータ確認等に用いることができる。
なお、装置外部から書き込まれるデータの記憶部と、第１系出力又は第２系出力のデータが書き込まれる記憶部とを別々に構成してもよい。さらには、第１系出力用の記憶部と第２系出力用の記憶部とを別々に設けてもよい。
また、第３系出力も、第１系及び第２系出力と同様にビットマスクが可能であり、このためにビットマスク部１２０を備えている。このビットマスク部１２０の構成はビットマスク部１０８の構成と同様であり、マスクレジスタ１２２のマスクデータに応じて出力をマスクでき、第３系出力の有効ビット数を調整することができる。
以上の第１系〜第３系の出力は、外部インターフェース部１２５を介して装置（ＩＣ）外部へ選択的に出力される。第１系出力（乱数データ）及び第２系出力（カウンタデータ）は絶え間なく生成され、又第３系出力もパラレルレジスタ列１１８のデータが常に出力可能となっている。外部インターフェース部１２５では、装置外部からの出力の要求ＲＥＱに応じていずれかの出力を装置外部、すなわちデータバスＤＡＴＡに出力する。なお、第１系〜第３系のいずれの出力を装置外部に出力するかは装置外部からの要求に応じて行われる。
装置外部、例えば、図１のパーソナルコンピュータＰＣからの出力要求がなされると、第１系〜第３系のいずれかの出力のパラレルデータをデータ出力レジスタ（図示省略）に書き込み、データ読み出し期間中保持する。データ読み出し期間を保護するために要求（ＲＥＱ）に対する変換中（ＢＵＳＹ）のフラグを同時に出力する。
なお、乱数データは、パラレル出力とは別に、シリアル信号として装置外部に出力することもできる。
また、図１２に示すように、外部インターフェース１２５は、装置外部からの入力も選択的に受け付ける。入力には２系統あり、第１系入力は、マスクデータを受け付けるためのものであり、第２系入力は、パラレルレジスタ列１１８に書き込まれる固定データを受け付けるものである。なお、いずれの入力も出力と同様に８ビットである。
装置外部、例えば、図１のパーソナルコンピュータＰＣからデータバスＤＡＴＡに入力が与えられ、装置に対して書き込み信号ＷＲが与えられると、データバスＤＡＴＡのデータはパラレルレジスタ列１１８又はマスクレジスタ１２２に書き込まれる。なお、第１系、第２系のいずれの入力であるかは装置外部から指示される。
以上のように外部インターフェース部１２５は、パーソナルコンピュータＰＣ等の外部装置との接続を目的として構成されており、この外部インターフェース１２５により、本装置を乱数の必要な様々な機器に組み込んで汎用的な利用が可能となる。
特に、本装置１で真性乱数を発生させ、暗号化のための鍵を作成し、秘密鍵暗号方式又は公開暗号方式等の暗号方式により平分を暗号化する暗号化システムとして構成することができる。なお、当該暗号化システムはコンピュータと接続可能な装置として構成するのが好ましい。暗号化システムをパーソナルコンピュータ等と接続することにより、さまざまな形式のファイルを暗号化することが可能となる。
【産業上の利用の可能性】
本発明によると、ノイズ発生源から発生したノイズ信号を増幅する増幅器と、増幅されたノイズ信号を２値化するための２値化装置とを備え、２値化装置がシリアルレジスタによって構成されているので、暗号化等で必要な物理乱数を簡素な構成で得られる。
【図面の簡単な説明】
図１は、本発明に係る乱数発生装置（ワンチップＩＣ装置）をパーソナルコンピュータと接続した状態を示す概念図である。
図２は、乱数発生装置の機能ブロック図である。
図３は、物理乱数発生部の構成図である。
図４は、ノイズ信号とサンプリングクロックの説明図である。
図５は、ノイズ信号をサンプリングクロックで２値化するタイミング図である。
図６は、グリッジの発生を示す説明図である。
図７は、ビットマスク部の回路図及びマスクレジスタのデータ内容を示す図である。
図８は、カウンタ装置の概略構成図である。
図９は、カウンタ装置の第１段目のチェーン構造回路図である。
図１０は、カウンタ装置の第２段目のチェーン構造回路図である。
図１１は、外部インターフェース部の出力機能説明図である。
図１２は、外部インターフェース部の入力機能説明図である。
【図１】
2002037260.tif 000003
【図２】
2002037260.tif 000004
【図３】
2002037260.tif 000005
【図４】
2002037260.tif 000006
【図５】
2002037260.tif 000007
【図６】
2002037260.tif 000008
【図７】
2002037260.tif 000009
【図８】
2002037260.tif 000010
【図９】
2002037260.tif 000011
【図１０】
2002037260.tif 000012
【図１１】
2002037260.tif 000013
【図１２】
2002037260.tif 000014
【国際調査報告】
2002037260.tif 000015
2002037260.tif 000016
2002037260.tif 000017
2002037260.tif 000018