物理乱数の一様化手法と物理乱数発生装置
技 術 分 野
本発明は、 偏りのある物理乱数を簡単に一様化することが可能な物理乱数の一 様化手法に関するものである。
明
更に、 本発明は、 各種の用途に用いるに好適な物理乱数発生装置に関するもの 田
であり、 その具体的な用途としては、 セキュリティ一、 暗号、 認証、 施錠、 暗号 化通信、 スマートカード (例えば、 電子マネ一、 クレジットカード、 診察券) 、 ホームセキュリティ一、 力一セキュリティー、 キーレスエントリ一、 確率、 抽選 、 ゲーム、 アミューズメント (例えば、 パチンコ、 パチスロ) 、 シミュレ一ショ ン (例えば、 気象 ·学術計算 ·株価におけるモンテカルロ) 、 グラフィックス ( 例えば、 C G、 自動作曲) 、 制御、 計測、 F A、 口ポット制御 (人工知能) など が挙げられる。 背 景 技 術
一般に乱数には、 計算によって決定論的に生成される擬似乱数と、 自然界の物 理現象を利用して生成される物理乱数とがある。 後者 (物理乱数) は真の意味で ランダムな現象を基に生成されるので、 理想的な乱数となる資質があるものの、 実際に物理乱数を生成する場合、 途中過程で様々な誤差要因が介在するため、 必 ずしも理想的な乱数が出力されるとは限らず、 偏りのある乱数が出てきてしまう 恐れもある。 この誤差要因としては、 デジタル化の際に基準となるクロックの幅 や、 ノィズを利用する場合に余計なノィズが混入することなどが挙げられる。 従来、 こうした物理乱数の偏りを改善する手法、 すなわち物理乱数の一様化手 法としては、 2つの 2進乱数を用いて乱数の偏りを改善するノイマンコレクター (例えば、 非特許文献 1参照) や、 ノイズに基づいて発生させた物理乱数を擬似 乱数と合成することで物理乱数の偏りを改善する手法 (以下、 乱数合成法と称す
る。 ) が提案されていた (例えば、 特開 2 0 0 1— 3 4 4 0 9 4号公報 (段落
〔0 0 1 4〕 および 〔0 0 1 8〕 の檷および図 1参照、 また、 非特許文献である Benj amin Jun and Paul Kocher著、 " The Intel Random Number Generator 、 CRY PTOGRAPHY RESEARCH^ 1 9 9 9年 4月 2 2日発表 (第 4頁、 4. 3. Digi tal Pos t - P roces s ing) 参照。 )
しかし、 ノイマンコレクタ一では、 1ビットの乱数を出力するのに 2ピットの 乱数を必要とする上に、 その 2ビットの組合せによっては乱数を出力しない場合 もあるので、 乱数の発生速度が落ちてしまう欠点があつた。
また、 乱数合成法では、 擬似乱数がわかれば、 基になる物理乱数を出力から取 り出せるようになるため、 乱数の偏りが他人に知られてしまい、 保安性に欠ける という不都合があった。
また、 前記したような従来の物理乱数発生装置としては、 半導体内で発生する ノイズを用いたものが多く、 パソコンに外部から接続して使用するよう構成され る規模の大きなものや、 I Cチップ単体で乱数を発生させるものがあった。 また 、 アミューズメント用には、 時間的にランダムであると見なせる信号が発生した 時に、 備えられた高速カウン夕一の値を参照し、 それを乱数として用いるものが あった。
一般に物理乱数発生器は高速に乱数を発生することは難しく、 時としてその乱 数発生速度以上の大量の乱数が必要となる事が起こる。 そのため、 記憶媒体を設 けて乱数を貯めておいたり、 複数の物理乱数発生装置を用いで乱数の発生量を増 やしたりすることが考えられるが、 これを実現するためには複雑な回路を利用者 側で組む必要が生じる。
また、 一般に物理乱数は使用環境によって乱数の質が変化する可能性があり、 利用者がこれら物理乱数発生装置の発生した乱数が真正乱数として使用すること ができるか否かを確認することは有益なことである。 しかしながら、 乱数の検定 を行うには専用の測定装置を構築しなければならず、 一般の物理乱数発生装置利 用者にとっては、 このような余計なコストと手間がかかるような作業は受け入れ 難い。 また、 乱数検定は大量のデータを扱うので、 それを貯めておく記憶装置は 大容量のものが必要となるとともに、 検定のための計算処理にも時間がかかる。
更に、 従来の物理乱数発生装置としては、 例えば特開 2 0 0 3— 2 9 9 6 4号 公報に開示されているように、 2個のディレーおょぴセレクタ一等からなる位相 調整部と、 フリップ *フロップと、 フィードパック回路とから構成される物理乱 数発生器を備えたものが知られている。
しかし、 これでは、 フリップ。 フロップのクロック端子とデ一タ端子に入力さ れる 2系統の信号ラインに応じた 2個のディレーおよびセレクタが必要となるの で、 位相調整部、 ひいては物理乱数発生器の規模が大きくなり、 その占有面積が 拡大するばかりか、 その消費電力が増大するという不都合があった。 特に、 物理 乱数発生器が C P U (中央演算処理装置) 、 R O M (読取り専用記憶装置) 、 R AM (読取り書き込み記憶装置) などの多くの機能と I C (集積回路) 内に混載 される場合には、 この物理乱数発生器の専有面積をできる限り縮小することが強 く望まれる。 発 明 の 開 示
本発明は、 このような事情に鑑み、 乱数の発生速度を維持すると同時に保安性 をも確保することが可能な物理乱数の一様化手法を提供することを目的とする。 本発明の他の目的は、 物理乱数発生装置単体での乱数利用効率が高く、 かつ複 数の物理乱数 I Cを組み上げて乱数を高速に発生させることが容易であり、 さら に、 乱数の質を容易に確認して使用することが可能な物理乱数発生装置を提供せ んとするものである。
更に、 本発明の別の目的は、 占有面積が小さくて消費電力が少ない物理乱数発 生器と、 この物理乱数発生器が組み込まれた物理乱数発生装置を提供せんとする ものである。
先ず、 本発明のうち、 請求項 1に係る発明は、 複数の物理乱数を乱数保持装置 ( 2 0 0 ) に入力して保持し、 この乱数保持装置に保持された物理乱数の一部を セレクタ一のァドレスとして使用し、 そのァドレスに基づいて残りの部分から乱 数をランダムに選択して出力することを特徴とする物理乱数の一様化手法である また、 本発明の請求項 2に係る発明は、 前記セレクタ一に代え、 論理積回路を
用い乱数保持装置に保持された乱数をランダムに選択して、 それらの排他的論理 和を出力することを特徴とする物理乱数の一様化手法である。
更に、 本発明の請求項 3に係る発明は、 セレクタ一の出力と物理乱数を入力と する排他的論理和回路を設けその出力を乱数保持装置 (2 0 0 ) 入力とする請求 項 1に記載の物理乱数の一様化手法である。
また、 本発明の請求項 4に係る発明は、 請求項 1から請求項 3の何れかの操作 を 2サイクル以上繰り返して物理乱数を多段に一様化することを特徵とする物理 乱数の一様化手法である。
また、 本発明の請求項 5に係る発明は、 乱数保持装置としてシフトレジス夕 ( 2 0 0 ) を用いたことを特徵とする請求項 1から請求項 4までのいずれかに記載 の物理乱数の一様化手法である。
なお、 括弧内の符号は図面において,対応する要素を表す便宜的なものであり、 したがって、 本発明は図面上の記載に限定拘束されるものではない。 このことは 「特許請求の範囲」 の櫚についても同様である。
次に、 本発明のうち請求項 6に係る発明は、 物理乱数発生器を有する物理乱数 発生装置であって、 前記物理乱数発生器が、 基準クロック信号に応じてシリアル 乱数を生成するシリアル物理乱数発生器を備え、 シリアル乱数をパラレル乱数に 変換するシリアル Zパラレル変換部を備え、 パラレル乱数を保持しうる複数個の レジスターを備え、 前記シリアルノパラレル変換部によつてパラレル乱数が生成 される度に前記レジスタ一に順次パラレル乱数を保持し、 かつ、 読出しクロック 信号に応じて前記レジスターからパラレル乱数を読み出して出力するとともに、 読み出しの終了したレジスタ一に他のレジスタ一からパラレル乱数をシフ卜させ て内容を逐次更新する制御回路を備えて構成される。 ここで、 読出しクロックは 基準クロックとは別に入力されるものである。
また、 本発明のうち請求項 7に係る発明は、 前記物理乱数発生器が、 複数個の レジスターのうちパラレル乱数を保持すべきレジスタ一を決めて書き込みァドレ スを出力するアップ/ダウンカウン夕一を備え、 前記アップ/ダウンカウンター が出力した書き込みァドレスに基づき、 パラレル乱数を保持すべきレジスターを 選択してロード信号を出力するセレクタ一を備え、 前記セレクタ一からのロード
信号に基づいて前記シリアル/パラレル変換部内のパラレル乱数を前記レジス夕 一のうち後段のレジスターから前段のレジスターへ順次保持し、 かつ、 読出しク ロック信号に応じて前記レジスターのうち最後段からパラレル乱数を読み出して 出力するとともに、 このレジスタ一より前段にある各レジスタ一内のパラレル乱 数を後段へ順次シフトする制御回路を備えて構成される。
また、 本発明のうち請求項 8に係る発明は、 前記物理乱数発生器が、 前記シリ アル物理乱数発生器が生成したシリアル乱数の総数をカウントする総数カウンタ 一を備え、 前記総数カウンターがカウントしたシリアル乱数の総数が所定のピッ ト数に達したとき、 これらの'シリアル乱数に基づいてその一様性を検証する乱数 検証回路を備えて構成される。
また、 本発明のうち請求項 9に係る発明は、 前記乱数検証回路の乱数検証方法 として、 乱数値 " 0 " 又は " 1 " の出現度数をカウン卜し、 これを規定値と比較 することによって乱数の一様性を検証する乱数検証方法を採用して構成される。 また、 本発明のうち請求項 1 0に係る発明は、 前記乱数検証回路の乱数検証方 法として、 4ビットで一つの乱数値とし、 各々の乱数値の出現度数に基づいて算 出された χ二乗値を規定値と比較することによって乱数の一様性を検証する乱数 検証方法を採用して構成される。
また、 本発明のうち請求項 1 1に係る発明は、 前記乱数検証回路の乱数検証方 法として、 連の長さ別にその出現度数'をカウントし、 これらを規定値と比較する ことによって乱数の一様性を検証する乱数検証方法を採用して構成される。 また、 本発明のうち請求項 1 2に係る発明は、 前記乱数検証回路の乱数検証方 法として、 所定ビット数の乱数中に出現した最長の連の長さを規定値と比較す ¾ ことによって乱数の一様性を検証する乱数検証方法を採用して構成される。 また、 本発明のうち請求項 1 3に係る発明は、 チップセレクトと出力イネ一ブ ル機能とそれに対応した端子を備え、 出力部のバッファ一機能を 3ステートとし て構成される。
さらに、 本発明のうち請求項 1 4に係る発明は、 前記物理乱数発生器を複数個 用意し、 セレクタ一のセレクト信号に基づき、 前記物理乱数発生器の中から一つ を選択して乱数または乱数検証データを出力するようにして構成される。
さらに、 本発明のうち請求項 1 5に係る発明は、 抵抗およびキャパシ夕でクロ ック信号を積分して積分波形を出力する積分回路と、 ノイズ源と、 このノイズ源 のノイズを増幅してノィズ信号を出力する増幅器と、 前記積分波形と前記ノィズ 信号とをミキシングするミキサーと、 このミキサーの出力波形に基づいて生成さ れるジッターの最初のエッジを検出するエッジ検出回路とを 2個ずつ備え、 前記 各エッジ検出回路の出力信号の位相差に基づいて" 0 " または" 1 " を出力する フリップ ·フロップを備え、 前記各積分回路に入力される入力信号の位相を調整 するディレー、 第 1セレクタ一およびアップ/ダウンカウン夕一からなる位相調 整部を備え、 前記フリップ'フロップから出力される" 0 " または" 1 " がそれ ぞれ 5 0 %に収束するように当該フリップ ·フロップの出力を前記位相調整部に フィードバックするフィードパック回路を備えた物理乱数発生器において、 前記 各積分回路の前段にそれぞれ第 2セレクタ一及び第 3セレクタ一を設け、 前記ァ ップ /ダウンカウンタ一の最上位ピットによつて前記第 1セレクタ一と前記第 2 セレクタ一および前記第 3セレクタ一との入力の極性切換を行う極性切換回路を 設けたことを特徴とする物理乱数発送器である。
さらに、 本発明のうち請求項 1 6に係る発明は、 抵抗およびキャパシ夕でクロ ック信号を積分して積分波形を出力する積分回路を 1個備え、 ノイズ源と、 この ノイズ源のノイズを増幅してノイズ信号を出力するアンプと、 前記積分波形と前 記ノイズ信号とをミキシングするミキサーと、 このミキサーの出力波形に基づい て生成されるジッターの最初のエッジを検出するエッジ検出回路とを 2個ずつ備 え、 前記各エッジ検出回路の出力信号の位相差に基づいて" 0 " または" 1 " を 出力するフリップ · フロップを備えた物理乱数発生器において、 前記フリップ フロップに入力される入力信号の位相を調整するディレーとセレクタ一からなる 可変ディレーを前記各エッジ検出回路の前段または後段に設け、 前記フリップ · フロップから出力される" 0 " または" 1 " がそれぞれ 5 0 %に収束するように 当該フリップ ·フロップの出力を前記可変ディレーにフィードパックするフィ一 ドパック回路を設けたことを特徴とする物理乱数発生器である。
さらに、 上記構成において、 前記積分回路の抵抗の後段に F E T (電界効果ト ランジス夕) を当該積分回路のキャパシ夕と並列に付加した構成とすることもで
きる。
また、 上記構成の前記積分回路の抵抗に代えて、 定電流回路を設けた構成とす ること可能である。 図 面 の 簡 単 な 説 明
図 1 Aおよび図 1 Bは、 本発明に係る物理乱数の一様化手法が適用される乱数 一様化回路の二例を示す回路図である。
図 2 A及び図 2 Bは、 本発明に係る物理乱数の一様化手法が適用される乱数一 様化回路の別の二例を示す回路図である。
図 3 A及び図 3 Bは、 本発明に係る物理乱数の一様化手法が適用される乱数一 様化回路のさらに別の二例を示す回路図である。
図 4は本発明に係る物理乱数発生装置の第 1の実施形態を示す回路図。
図 5は図 4に示す物理乱数発生装置の物理乱数発生器の詳細を示す回路図。 図 6は図 5に示す物理乱数発生器の各部の出力波形を示す波形図。
図 7は図 5に示す物理乱数発生器の各部の出力波形を示す波形図。
図 8は図 4に示す物理乱数発生装置の乱数検証回路の Monobi tTes tに関する部 分の回路図。
図 9は図 4に示す物理乱数発生装置の乱数検証回路の PokerTes tに関する部分 の回路図。
図 1 0は図 4に示す物理乱数発生装置の乱数検証回路の RunsTes tに関する部分 の回路図。
図 1 1は図 4に示す物理乱数発生装置の乱数検証回路の RmisTes Uこ関する部分 の回路図。
図 1 2は図 4に示す物理乱数発生装置の乱数検証回路の LongRunsTes tに関する 部分の回路図である。
図 1 3は本発明に係る物理乱数発生装置の第 2の実施形態を示す回路図。 図 1 4は本発明に係る物理乱数発生装置の第 3の実施形態を示す回路図。 図 1 5は図 1 4に示す物理乱数発生装置の各部の出力波形を示す波形図。 図 1 6は本発明の係る物理乱数発生器の別の実施形態を示す回路図。
図 1 7は図 1 6に示す物理乱数発生器のエッジ検出回路の詳細を示す図。 図 1 8は図 1 6に示す物理乱数発生器の動作波形を示す図。
図 1 9は本発明に係る物理乱数発生器の更に別の実施形態を示す回路図。 図 2 0は積分回路の別の例を示す回路図。
図 2 1は図 2 0に示す積分回路を用いた物理乱数発生器の動作波形を示す図。 図 2 2は積分回路の更に別の例を示す図であり、 更に
図 2 3は、 図 2 2に示す積分回路を用いた物理乱数発生器の動作波形を示す図 である。 発明を実施するための最良の形態
ぐ発明の第 1の態様 >
以下、 本発明の実施形態を図面に基づいて説明する。
まず、 図 1 Aに示す乱数一様化回路 1 0 0では、 シフトレジスタ 2 0 0とセレ クタ 3 00とを具備しており、 シフトレジスタ 2 0 0のデ一夕端子 Dには 2進乱 数 ( 「0」 または 「1」 ) が順次入力され、 シフトレジスタ 2 0 0のクロック端 子 C L Kに入力される基準パルス信号が立ち上がるごとに、 これらの 2進乱数が 順に出力 Q 0 0〜Q 1 34にシフ卜されていく。 そして、 シフトレジスタ 2 0 0 の出力 Q 0 0〜Q 1 2 7の 1 2 8ビットの乱数はそれぞれセレクタ 3のデ一夕端 子 D O 0~D 1 2 7に入力され、 シフトレジスタ 2 0 0の出力 Q 1 28〜Q 1 3 4の 7ピットの乱数はそれぞれセレクタ 3 0 0のアドレス AD 0 -AD 6に入力 される。
その後、 セレクタ 3 0 0では、 アドレス AD 0 ~AD 6に入力された 7ビット のァドレス値に応じて、 データ端子 D 0 0〜D 1 2 7に入力された 1 2 8ピット の乱数から 1ビットが選択され、 出力端子 OUTから出力される。 例えば、 アド レス AD 0〜AD 6にそれぞれ 「1」 「0」 「0」 「0」 「0」 「0」 「0」 が 入力されたときは、 データ端子 D O 0に入力された乱数が出力端子 OUTから出 力される。 また、 アドレス AD 0〜AD 6にそれぞれ 「1」 「0」 「1」 「0」
「0」 「0」 「0」 が入力されたときは、 データ端子 D 04に入力された乱数が 出力端子 OUTから出力される。
このように、 シフトレジスタ 2 0 0のデータ端子 Dに順次入力される 2進乱数 は、 その一部がアドレスとなって自分自身をランダムに選び出すので、 この 2進 乱数が偏りを持っていても、 この乱数一様化回路 1で一様化されて出力されるこ とになる。 しかも、 従来のノイマンコレクタ一と異なり、 1ビットの乱数を出力 するのに複数ビットの乱数を必要とすることもなく、 乱数を出力しない場合もな いため、 乱数の発生速度を維持することができる。 また、 従来の乱数合成法と違 つて、 乱数の偏りが他人に知られてしまう事態が生じないので、 保安性を確保す ることができる。
また、 図 1 Bに示す乱数一様化回路 1 0 0は、 シフトレジスタ 2 0 0からの乱 数出力を選択するビット数を 6ビットに減らしたことと、 排他的論理和 (X O R ) 回路を追加したことを除き、 図 1 Aに示す乱数一様化回路.1と同様である。 す なわち、 図 1 Bに示す乱数一様化回路 1では、 シフトレジスタ 2 0 0とセレクタ 3 0 0とを具備しており、 セレクタ 3 0 0の出力と 2進乱数 ( 「0」 または 「1 」 ) とを入力とする排他的論理和回路の出力が順次シフトレジスタ 2 0◦のデ一 夕端子 Dに入力され、 シフトレジスタ 2 0 0のクロック端子 C L Kに入力される 基準パルス信号が立ち上がるごとに、 出力 Q 0 0 ~ Q 6 9に順にシフトされてい く。 そして、 シフトレジスタ 2 0 0の出力 Q 0 0〜Q 6 3の 6 4ビットの乱数は それぞれセレクタ 3 0 0のデータ端子 D O 0 ~ D 6 3に入力され、 シフトレジス 夕 2の出力 Q 6 4 ~ Q 6 9の 6ビッ卜の乱数はそれぞれセレクタ 3 0 0のァドレ ス A D 0〜A D 5に入力される。 その後、 セレクタ 3 0 0では、 アドレス A D O 〜A D 5に入力された 6ピットのァドレス値に応じて、 データ端子 D 0 0〜D 6 3に入力された 6 4ビットの乱数から 1ピットが選択され、 出力端子 O U Tから 出力される。
この場合も、 シフトレジスタ 2 0 0のデータ端子 Dに順次入力される 2進乱数 は、 その一部がアドレスとなって自分自身をランダムに選び出すので、 この 2進 乱数が偏りを持っていても、 この乱数一様化回路 1 0 0で一様化されて出力され ることになり、 乱数の発生速度を維持すると同時に、 保安性を確保することがで さる。
このことを確認するため、 この乱数一様化回路 1 0 0から出力された乱数の一
P 漏謹 12213 様性を乱数検定規格 F I P S 140 - 2に準拠して評価した。 その結果を表 1お よび表 2に示す。 なお、 表 1中の数値は元データを表し、 表 2中の数値は検定結 果データを表す。 ここで、 表 1、 2中の 「Mon o」 、 「 P o k e r」 、 「Ru n s」 および 「L on gRun」 は乱数検定の種類を表しており、 それぞれ乱数 検定規格 F I PS 140— 2の 「Monobit TestJ 、 「Porker TestJ 、 「Runs Te stj および 「Long Run TestJ に対応している。 また、 結果は 50回を 1セットと して表示しており、 数値は 50回の検定中で不合格になった回数を表している。
【表 1】 、、 "ΝΓη υ· λΛ" π P o k e R u n s 丁 ) Π π
1 ο 1 ο
? ο η ο o ο 1 ο
Ak ο 1
c π u πJ
D u A u o
7 u Π u π o o π υ u π u π u
Q y υ U 上 υ u υ u υ υ
1丄 1丄 υ u U π υ 丄 υ U υ π υ 丄 3 υ u υ υ λ υ yj 丄 υ 丄 £) υ yj π π υ
1丄 a Ο π υ n 上
丄 ί π U u 丄 π u
1丄 β ο r υi u π υ η 丄 y υ U π υ ώ υ υ π u U π υ 丄 π υ n υ 1 1
π n 1
9 q υ υ υ υ n u π υ υ 0 η u υ π υ D π U U 丄 υ
Δ 1 υ υ υ
Δ υ υ U
y υ υ 丄 υ ϋ 1 U U υ
6 1 U U υ 丄 ο
Ο ώ υ υ 丄 U
υ υ υ
υ υ υ π V υ υ υ ι a
Ό π υ η υ 1 π 7 υ υ 丄 π υ ο Ο υ υ υ
π υ η υ V V π υ π U
4 1 ο ο ο ο
4 2 0 0 0 0
4 3 0 0 1 0
4 4 0 0 0 0
4 5 0 0 0 0
4 6 0 0 2 0
4 7 0 0 0 0
4 8 0 0 1 0
4 9 0 0 0 0
5 0 0 0 0 0
【表 2】 セット No. Mono Poke r Runs L o n gRu n
1 - 0 0 0 0
2 0 0 0 0
3 0 0 0 0
4 0 0 0 0
5 0 0 0 0
6 0 0 0 0
7 0 0 0 0
8 0 0 0 0
9 0 0 0 0
10 0 0 0 0
11 0 0 0 0
12 0 0 0 0
13 0 0 0 0
1 0 0 0 0
15 0 0 0 0
16 0 0 0 0
1 0 0 0 0
18 0 0 0 0
19 0 0 0 0
20 0 0 0 0
21 0 0 0 0
22 0 0 0 0
23 0 0 1 0
24 0 0 0 0
25 0 0 0 0
26 0 0 0 0
27 0 0 0 0
28 0 0 0 0
29 0 0 0 0
30 0 0 0 0
31 0 0 0 0
32 0 0 0 0
33 0 0 0 0
34 0 0 0 0
35 0 0 0 0
36 0 0 0 0
37 0 0 0 0
38 0 0 0 0
39 0 0 0 0
40 0 0 0 0
41 0 0 1 0
42 0 0 0 0
43 0 0 0 0
44 0 0 0 0
45 0 0 0 0
46 0 0 0 0
47 0 0 0 0
48 1 0 0 0
49 0 0 0 0
50 0 0 0 0
上に示した表 1及び表 2から明瞭に理解させるように、 4種類すベての乱数検 定 ( 「Mo no」 、 「 Po k e r」 、 「Run s」 および 「: LongRunj ) において、 セット No.:!〜 50のほとんど全部が合格値となり、 上述した効果が確 認された。
一方、 図 2 Aに示す乱数一様化回路 1は、 シフトレジスタ 200からの乱数出 力を選択するピット数を 1 5ビットに増やしたことと、 セレクタ 300と同様な 働きをするものとして論理積 (AND) 回路と排他的論理和 (XOR) 回路との 組み合わせを代用したことを除き、 図 1 Aに示す乱数一様化回路 1と同様である 。 すなわち、 図 2 Aに示す乱数一様化回路 1ではシフトレジスタ 200を具備し ており、 シフトレジスタ 200のデ一夕端子 Dには 2進乱数 ( 「0」 または 「1 J ) が順次入力され、 シフトレジスタ 200のクロック端子 CLKに入力される 基準パルス信号が立ち上がるごとに、 これらの 2進乱数が順に出力 Q 00〜Q3 0にシフトされていく。 そして、 シフトレジスタ 200の出力 Q00〜Q 14の 1 5ビットの乱数とシフトレジスタ 200の出力 Q 1 6 ~Q 30の 1 5ピットの 乱数とを入力とする 1 5個の論理積回路の出力が、 シフトレジスタ 200の出力 Q 1 5とともに排他的論理和回路で順次合成されて出力される。
このように、 シフトレジスタ 200のデ一夕端子 Dに順次入力される 2進乱数 は、 シフトレジスタ 200内で同じピット数 (15ビット) の 2組に分けられた 後、 論理積回路と排他的論理和回路でランダムに演算されるので、 この 2進乱数 が偏りを持っていても、 この乱数一様化回路 1で一様化されて出力されることに なる。 しかも、 従来のノイマンコレクターと異なり、 1ピットの乱数を出力する のに複数ピットの乱数を必要とすることもなく、 乱数を出力しない場合もないた め、 乱数の発生速度を維持することができる。 また、 従来の乱数合成法と違って 、 乱数の偏りが他人に知られてしまう事態が生じないので、 保安性を確保するこ とができる。
また、 図 2 Bに示す乱数一様化回路 100は、 シフトレジスタ 200からの乱 数出力を選択するビット数を 7ビットに減らしたことと、 排他的論理和 (XOR ) 0路を追加したことを除き、 図 2 Aに示す乱数一様化回路 1と同様である。 す なわち、 図 2 Bに示す乱数一様化回路 1ではシフトレジスタ 200を具備してお
り、 シフトレジスタ 2 0 0のデータ端子 Dには 2進乱数 ( 「0」 または 「1」 ) が順次入力され、 シフトレジスタ 2 0 0のクロック端子 C L Kに入力される基準 パルス信号が立ち上がるごとに、 これらの 2進乱数が順に出力 Q 0 0〜Q 1 4に シフトされていく。 そして、 シフトレジスタ 2の出力 Q 0 0 ~ Q 0 6の 7ビット の乱数とシフトレジスタ 2の出力 Q 0 8 ~ Q 1 4の 7ビットの乱数とを入力とす る 7個の論理積回路の出力が、 シフトレジスタ 2 0 0の出力 Q 0 7とともに排他 的論理和回路で順次合成され、 最後に元の 2進乱数 (生データ) と排他的論理和 回路で合成されて出力される。
この場合も、 シフトレジスタ 2 0 0のデータ端子 Dに順次入力される 2進乱数 は、 シフトレジスタ 2 0 0内で同じピット数 (7ビット) の 2組に分けられた後 、 論理積回路と排他的論理和回路でランダムに演算されるので、 この 2進乱数が 偏りを持っていても、 この乱数一様化回路 1 0 0で一様化されて出力されること になり、 乱数の発生速度を維持すると同時に、 保安性を確保することができる。 なお、 上述の実施形態においては、 複数の物理乱数を保持する乱数保持装置と してシフトレジス夕 2 0 0を用いた場合について説明したが、 シフトレジスタ 2 0 0以外の乱数保持装置 (例えば、 フリップフロップ) を代用することも可能で ある。
また、 上述の実施形態においては、 1個の乱数一様化回路 1を用いて物理乱数 を一様化する場合について説明したが、 図 3 A及び図 3 Bに示すように、 図 1 A 、 図 1 Bや図 2 A、 図 2 Bに示す乱数一様化回路 1 0 0 ( C K T 1 , C K R 2 , · · - C K T x ) を 2個以上接続して物理乱数を多段に一様化することもでき る。 この場合、 乱数一様化回路 1 0 0の接続方法は、 図 3 Aに示すような直列接 続であっても、 図 3 Bに示すような並列接続であっても構わない。
以上説明したように、 本発明によれば、 乱数保持装置 (シフトレジスタ) に入 力された物理乱数は、 たとえそれが偏りを持っていても一様化されて出力され、 乱数を出力しない場合や乱数の偏りが他人に知られてしまう事態が起きないこと から、 乱数の発生速度を維持すると同時に保安性をも確保することが可能な物理 乱数の一様化手法を提供することができる。
<発明の第 2の態様 >
次に、 本発明の物理乱数発生器の好適な実施例について図面の図 4〜図 1 5を 参照して説明する。
この物理乱数発生装置 9 1は、 図 4に示すように、 物理乱数発生器 1、 乱数検 5 証回路 2 1、 制御回路 9 4、 カウンタ一 9 5、 第 1セレクタ一 9 6、 第 2セレク ター 9 7から構成されており、 物理乱数発生器 1は、 図 5に示すように、 シリア ル物理乱数発生器 2、 カウンター 3、 シフトレジスタ一 4、 複数個 (図 5では m 個) のレジスター 5、 制御回路 6、 アップ Zダウンカウンター 7、 セレクタ一 8 、 基準クロック側の 2個の遅延回路 9および読出しクロック側の 2個の遅延回路
10 1 0から構成されている。
他方、 乱数検証回路 2 1は、 図 8から図 1 2までに示すように、 乱数検定規格 F I P S 1 4 0— 2に準拠した 4種類の検定方法 (Monobi tTes t、 PokerTes t, Ru nsTes tおよび LongRunsTes t) に対応する部分から構成されている。 すなわち、 Mo nobi tTes tに関する部分は、 図 8に示すように、 第 1カウンタ一 2 3、 第 2カウン is 夕一 2 4、 レジスター 2 5、 制御回路 2 6および比較器 2 7から構成されており 、 PokerTes tに関する部分は、 図 9に示すように、 第 1カウンター 3 3、 シフト レジスター 3 4、 デコーダ一 3 5、 複数個 (図 9では 1 6個) のカウン夕一 3 6 、 制御回路 3 7、 セレクタ一 3 8、 掛算器 3 9、 加算器 4 0、 レジスター 4 1お ょぴ比較器 4 2から構成されている。 また、 RunsTes tに関する部分はさらに乱数o 出力が " 1 " の場合と乱数出力が " 0 " の場合とに二分され、 前者は、 図 1 0に 示すように、 第 1カウンタ一 5 3、 比較器 5 4、 データ保持器 5 5、 第 2カウン 夕一 5 6、 制御回路 5 7、 デコーダー 5 8、 6個のカウンター 5 9および 6個の 比較器 6 0から構成されており、 後者は、 図 1 1に示すように、 物理乱数発生器 1のシリアル物理乱数発生器 2からデコーダー 5 8への出力線上にィンパ一夕が5 設けられて出力が反転する点を除き、 前者と同じ構成を有している。 さらに、 Lo ngRunsTes tに関する部分は、 図 1 2に示すように、 第 1カウンター 7 3、 比較器 7 4、 データ保持器 7 5、 制御回路 7 6、 第 2カウンタ一 7 7、 第 1比較器 7 8 、 レジスター 7 9およぴ第 2比較器 8 0から構成されている。
物理乱数発生装置 9 1は以上のような構成を有するので、 この物理乱数発生装
置 9 1を作動させると、 まず物理乱数発生器 1で、 シリアル乱数が出力されると ともに、 パラレル乱数が保持されて必要に応じて出力できる状態となる。
すなわち、 基準クロック(CLK—0)でシリアル物理乱数発生器 2より生成された シリアル乱数(SRND)をカウンタ一 3のキヤリーアゥト(CO)に同期して、 シフトレ ジスター 4でシリアルからパラレルに変換した nビットの乱数(CRND)をセレクタ 一 8で選択されたレジスター 5にロードしてパラレル乱数を保持する。
このとき、 セレクタ一 8はアツプノダウンカウンター 7の出力の書込みァドレ ス(ADDRESS)で指定されたレジスター 5を選択し、 カウンター 3のキャリーァゥ ト(CO)に同期してパラレル乱数(CRND)をレジスター 5にロードし、 口一ドごとに アップ Zダウンカウンタ一 7をカウントアップし、 アップ/ダウンカウンター 7 の出力の書込みァドレス(ADDRESS)が mになつた時点で、 アップ ダウンカウン 夕一 7はカウントアップとパラレル乱数のロードを中止し、 以降その状態を維持 する。
パラレル乱数の出力(PRND)は最下位のレジスター 5の出力とし、 読み出し後に 読出しクロック(CLK_R)を入力し、 読出しクロックにてアップ/ダウンカウンタ 一 7のカウントダウンとすべてのレジスター 5内のデータを上位から下位へシフ 卜し、 パラレル乱数(PRND)はその都度更新される。 アップ Zダウンカウンター 7 の出力の書込みァドレス(ADDRESS)がゼロになった時点で、 アップ Zダウンカウ ンタ一 7はカウントダウンとデータシフトを中止し、 以降その状態を維持する。 アップ Zダウンカウンタ一 7の出力の書込みァドレス(ADDRESS)は外部に出力 され、 すべてのレジスター 5に保持されているパラレル乱数の数を逐次モニタ一 可能とする。
遅延回路 9、 1 0は各クロックのエッジ (例えば、 立上りエッジ) を取り出し 、 非常に短いパルス波形 (例えば、 1 0 n s ) を生成し、 アップ Zダウンカウン 夕一 7とすべてのレジスター 5のクロック信号(CLOCK)、 アップ Zダウンカウン ター 7の ENABLE信号、 すべてのレジス夕一 5の SHIFT信号と LOAD (0)〜LOAD (m-l) を生成する。 これにより、 基準クロック(CLK— 0)と読出しクロック(CLK_R)が非同 期または同期式で動作するときに、 基準クロック(CLK—0)のエッジ (例えば、 立 上りエッジ) に対する読出しクロック(CLK_R)のエッジ (例えば、 立上りエッジ
) の禁止域(t d— Ra+ t d— Oa+ 2 X t d— mg)を非常に小さくして基準クロック(CLK_0)と 読出しクロック(CLK_R)との干渉を最小限とすることができる。 なお、 CLKJbと C LK_Rbがク口ック信号(CLOCK)を生成し、 CLK—Oaと CLK— Raが ENABLE信号、 SHIFT信号 と LOAD (0)〜L0AD (m-1)を生成する。
制御回路 6はカウンター 3のキャリーアウト(CO)の同期信号(SYNC)、 CLK_0a、 CLK— Ra、 アップ/ダウンカウンタ一 7の OVER信号と ZERO信号より、 アップ/ダウ ンカウンター 7の UP/DOWN信号と ENABLE信号、 すべてのレジスタ一 5の SHIFT信号 と LOAD (0)〜L0AD (m- 1)用の LOAD信号を生成する。
こうすることにより、 基準クロックに同期してシリアル物理乱数発生器 2で生 成されたシリアル乱数より n倍の周期で最大 m個の nピッ卜のパラレル乱数を保 持することができる。 それ以降のシリアル乱数は読み出し操作 (CULRの入力) を :るまでは保持されない。 こうして保持された最大 m個のパラレル乱数は読出 しクロックで必要なときに必要な量 (最大 m個) を短時間に集中して読み出すこ とができ、 読み出された量のパラレル乱数は逐次補充される。 基準クロック(CLK —0)のエッジに対する読出しクロックのエッジの禁止域が非常に狭く、 非同期ま たは同期式でタイミングよく、 かつ効率的に読み出すことができる。 書込みアド レスを読み出すことで、 その時点で保持されたパラレル乱数の量を確認すること が可能となり、 乱数を効率的に活用することができる。
ところで、 こうしてシリアル物理乱数発生器 2で生成されたシリアル乱数は、 乱数検定規格 F I P S 1 4 0— 2に準拠した 4種類の検定方法 (Monobi tTes t、 P okerTes t , RimsTes tおよび LongRunsTes t) でその一様性が検証される。
まず、 Monob i tTes tによる検証が行われる。 すなわち、 図 8に示すように、 第 1カウンター 2 3はスタート信号(START)と基準クロック(CLK—0)より制御回路 2 6を介して生成された信号 START一 Cでカウントを開始し、 20, 000カウント時に信 号 OUT— Cを出力する。 第 2カウンタ一 2 4は制御回路 2 6の出力信号 CLR_C2でス タート信号(START)が入った時点に初期化を行い、 シリアル乱数(SRND)の " 1 " または " 0 " をカウントする。 レジスター 2 5は制御回路 2 6の出力信号 L0AD_R でスタート信号(START)が入った時点より 20, 000クロック時の第 2カウンター 2 4のカウント値をロードして保持し、 Monob i tDat a (MOND)を出力する。 比較器 2
7はレジスター 2 5の出力 MonobitData(MOND)と上限比較データ (例えば、 10,27 5bit) および下限比較データ (例えば、 9, 725Mt) とを比較し、 Monobi t Judge (M 0NJ)信号を出力する。 これにより、 基準クロックに同期して生成されたシリアル 乱数について、 スタート信号から 20, 000ク口ック後に MonobitDataと MonobitJudg eを検証することができる。
次に、 PokerTestによる検証が行われる。 すなわち、 図 9に示すように、 第 1 カウンター 3 3はスタート信号(START)と基準クロック(CLK— 0)より制御回路 3 7 を介して生成された信号 START— Cでカウントを開始し、 20, 000カウント時に信号 0 UT_Cを出力する。 シフトレジスタ一 34はシリアル乱数(SRND)を基準クロック(C LK— 0)にて逐次 4ピットのパラレル乱数(PRND— 4B)に変換する。 デコーダー 3 5は 、 スタート信号(START)と基準クロック(CLKJ))より制御回路 3 7を介して生成さ れた ENABLE信号がアクティブのとき (4クロックごとに 1回) にパラレル乱数(P RND— 4B)で指定された出力部(SEJ)〜SE_15)に出力される。 カウンタ一 3 6は制御 回路 3 7の出力信号 CLR—CRでスタート信号(START)が入った時点に初期化を行い 、 ENABLE信号がアクティブのとき (4クロックごとに 1回) にパラレル乱数(PRN D—4B)のデータにてデコーダー 3 5で指定されたカウンター 3 6をカウントアツ プする。 すべてのカウンタ一 3 6の総計は 5, 000カウントとなり、 基準クロック に同期して生成されたシリアル乱 について、 スタート信号から 20, 000クロック 後にその間の 4ピットごとのパラレル乱数(PRND_4B)のデータ (0〜1 5) の度 数分布データ(PokerData0〜PokerDatal5)を取得する。 レジスタ一 4 1は、 制御 回路 3 7の出力信号 CLR_CRでスタート信号(START)が入った時点に初期化(P0KD=0 )を行い、 度数分布データ(PokerData0〜PokerDatal5)を取得した後、 セレクタ一 38、 掛算器 39、 加算器 40を介して度数分布データ(PokerDataO〜PokerData 15)の 1 6個の二乗和を求めることで PokerData(I>OKD)を取得する。 比較器 42は レジスター 4 1の出力 PokerData(POKD)と上限比較データ (例えば、 1, 576, 928) および下限比較デ一夕 (例えば、 1, 563, 175) とを比較し、 Poker Judge (P0KJ)信 号を出力する。 これにより、 基準クロックに同期して生成されたシリアル乱数に ついて、 スタート信号から 20, 000+16クロック後に: PokerDataと Poker Judgeを検証 することができる。
次いで、 RunsTes tによる検証が行われる。 すなわち、 図 1 0および図 1 1に示 すように、 第 1カウンター 5 3はスタート信号(START)と基準クロック(CLK_0)よ り制御回路 5 7を介して生成された信号 START— Cでカウントを開始し、 20, 000カウ ント時に信号 OUT一 Cを出力する。 データ保持器 5 5はシリアル乱数(SRND)を基準ク
5 ロック(CLK_0)にて逐次 1ピット保持し、 比較器 5 4はシリアル乱数(SRND)とデ 一夕保持器 5 5で保持された乱数を比較し、 1クロック前の乱数と今回の乱数が 変化したときに信号 CHANGEを出力する。 第 2カウンタ一 5 6は、 信号 CHANGEが出 力されてから次の出力がされるまでのクロックをカウントし、 信号 RUNS J)を出力 する。 信号1^^ー0と同ー信号の長さ( の関係は 101^ー0+1となる。 第 2カウン
10 夕一 5 6は、 制御回路 5 7の出力信号 CLR—CCでスタート信号(START)が入ったと きと信号 CHANGEが出力されたときに初期化(RUNSJ)=0)を行う。 デコーダ一 5 8は 、 スタート信号(START)、 基準クロック(CLKJ))、 第 1カウンター 5 3の出力(OUT _C)と比較器 5 4の出力(CHANGE)より制御回路 5 7を介して生成された ENABLE信 号がアクティブ (CHANGEがアクティブ) のときで、 図 1 0ではシリアル乱数(SRN is D)が " 1 " のとき、 図 1 1ではシリアル乱数(SRND)が " 0 " のとき、 第 2カウン 夕一 5 6の出力(RUNS— D)で選択された出力(SE— 1〜SE_6+)をアクティブにする。 な お、 L=1→SE_1、— L=2→SE— 2、 ···、 L=6+→SE_6+となる。 すべてのカウンタ一 5 9は 、 制御回路 5 7の出力信号 CLR—Cでスタート信号(START)が入った時点に初期化を 行い、 デコーダ一 5 8の出力(SEJ〜SE— 6+)で指定されたカウンタ一 5 9をカウ
20 ントアップし、 1〜6 +の同一信号の長さ(L)の出現回数 (図 1 0では RunsDat al !!〜 RunsDa t a6+H、 図 1 1では RunsDa lL〜Run Da t a6+L) を取得する。 各比較器 6 0は各カウンタ一 5 9の出力 (図 1 0では RunsDat alH〜RunsDat a6+H、 図 1 1では RimsDat alL〜RunsDat a6+L) とそれぞれの上限比較データ (例えば、 2, 685、 1 , 38 6、 723、 384、 209、 209) および下限比較データ (例えば、 2, 315、 1 , 114, 527、
25 240、 103、 103) とを比較し、 判定信号 (図 1 0では Runs JudgelH~Runs Judge6+H 、 図 1 1では Rims JudgelL〜Riins Jiidge6+L) を出力する。 これにより、 基準クロッ クに同期して生成されたシリアル乱数について、 スタート信号から 20, 000クロッ ク後に RunsTes tのデータと判定を検証することができる。
最後に、 LongRunsTes tによる検証が行われる。 すなわち、 図 1 2に示すように
、 第 1カウンター 7 3はスタート信号(START)と基準クロック(CLK—0)より制御回 路 5 7を介して生成された信号 START— Cでカウントを開始し、 20, 000カウント時に 信号 OUT— Cを出力する。 データ保持器 7 5はシリアル乱数(SRND)を基準クロック( CLK_0)にて逐次 1ピット保持し、 比較器 7 4はシリアル乱数(SRND)とデー夕保持 器 7 5で保持された乱数を比較し、 1クロック前の乱数と今回の乱数が変化した ときに信号 CHANGEを出力する。 第 2カウンター 7 7は、 信号 CHANGEが出力されて から次の出力がされるまでのクロックをカウントし、 信号 LRUNS— Dを出力する。 第 2カウンター 7 7は、 制御回路 7 6の出力信号 CLR—CCでスタート信号(START) が入つたときと信号 CHANGEが出力されたときに初期化(LRUNS_D=0)を行う。 レジ スター 7 9は、 制御回路 7 6の出力信号 (; LR_Rでスタート信号(START)が入ったと きに初期化(LRUNS— D=0)を行う。 レジスター 7 9の出力信号 LongRunsDa t a (LRND) と第 2カウンタ一 7 7の出力信号 ttRUNS_D)を第 1比較器 7 8で比較し、 LRNDく L RUNS— Dのときに第 1比較器 7 8は出力信号 C0MPJJを出力し、 制御回路 7 6を介し てレジスター 7 9に LOAD— R信号を出力して、 レジス夕一 7 9に逐次 LRUNS_Dの最 大値を保持する。 第 2比較器 8 0は上限比較データ (例えば、 26) と比較し、 判 定信号 LongRuns J udge aRNJ)を出力する。 信号 LRUNS_D、 LRNDと同一信号の長さ(L )の関係は L=LRUNS_D+ 1、 L (max) =LRND+l=LRUNS— D (max) +1となる。 これにより、 基 準クロックに同期して生成されたシリアル乱数について、 スタート信号から 20, 0 00クロック後に LongRunsTes tのデータと判定を検証することができる。
そして、 こうして 4種類の検定方法で検証された一様性乱数の検証データは、 図 4に示すように、 第 2セレクタ一 9 7に保持され、 使用者の要望に応じて出力 される。 選択信号(A0、 A1 )と動作テーブルを表 3に示す。
【表 3】
すなわち、 物理乱数発生器 1は、 選択信号 (A1)の状態 ( " 0 " または " 1 " )
3 により、 読出しクロック(CLKJOでのパラレル乱数の更新 (アツプノダウンカウ ン夕一 7のカウントダウン) または非更新とする。 出力のパラレル乱数 RND)は 第 2セレクタ一 9 7の DATAJ)に接続される。 出力(C0ND_R)には書込みアドレス(A DDRESS)などの物理乱数生成時おょぴパラレル乱数変換時に生成される各種デー タゃフラグを出力し、 第 2セレクタ一 9 7の DATA— 1に接続される。
乱数検証回路 2 1は、 選択信号(A0、 A1)が 2 (ADDRE一 S)のときに制御回路 9 4 を介して読出しクロック(CLK_R)信号で検証を開始し、 Monob i tTes t、 PokerTes t 、 RunsTes tおよび LongRunsTes tを基準クロック(CLK—0)で 20, 000+16サイクルで完 了し、 判定結果、 判定データ、 PokerTes tの生データを出力して第 1セレクタ一 9 6に接続される。 その詳細を表 4に示す。
[表 4】
なお、 総合判定はすべての判定結果が合格のときに出力される。 出力(C0ND_T) には、 乱数検証時に生成される各種データやフラグを出力し、 第 2セレクタ一 9 7の DATA— 2にカウンタ一出力のモニターァドレス(SEL— ADD)とともに接続される 。 また、 検証のスタート信号にてパラレル乱数生成用のカウンタ一 3、 シフトレ ジス夕一 4、 アツプノダウンカウンター 7とすべてのレジスタ一 5は初期化され 、 検証された物理乱数を保持して検証後の物理乱数を使用することができる。 カウンター 9 5は第 1セレクタ一 9 6のモニターァドレス(SEL_ADD)を生成す る。 カウンタ一 9 5は、 制御回路 9 4の出力信号(CLR一 C)で選択信号(A0、 A1)が 2 (ADDRE— S)のときに読出しクロック(CLKJ 信号で検証を開始し、 この開始時に 初期化を行い、 制御回路 9 4の出力信号(CLK—C)で選択信号 (A0、 A1)が 3 (ADDRE— S)のときに読出しクロック(CLK_R)信号でカウンター 9 5のカウントアップ (更 新) を行う。
これにより、 基準クロックに同期して生成されたシリアル乱数(SRND)と逐次補 充されるパラレル乱数(PRND)の生成及ぴ一様性の検証を逐次行うことができる。 こうすることにより、 物理乱数発生器 1の検証およびデータの確認が容易とな り、 検証後の乱数を活用することができる。 選択信号(A0、 A1)と第 2セレクタ一 9 7を用いることで入出力端子を大幅に減らすことができる。 選択信号(A0、 A1) 、 読出しクロック(CLKJ 、 カウンター 9 5と第 2セレクタ一 9 7で、 参照でき る有効な検証データを拡大することができる。
なお、 図 1 3に示すように、 物理乱数発生器 1にチップセレクト(CS)と出カイ ネーブル(0E)の入力を付加し、 パラレル乱数 [PRND (O)〜PRND (n- 1) ]の出力形態を 3ステート ( " 0 "、 " 1 "、 of f ) にすることもできる。
また、 図 1 4および図 1 5に示すように、 複数個 (図 1 4では p個) の物理乱 数発生器 1とセレクタ一 1 2とで高速 (図 1 4では p倍) の乱数生成スピードを 獲得することも可能である。 ここで、 基準クロック(CLK— 0)のエッジ (例えば、 立上りエッジ) に対する読出しクロック(CLKJ0のエッジ (例えば、 立上りエツ ジ) の禁止域(i d_Ra+t dJ)a+ 2 X t d—mg)を非常に狭く考慮することのみで非同期 または同期式の高速乱数発生を容易に実現することができる。
このように、 チップセレクト(CS)と出力イネ一ブル(0E)を有することで、 物理
乱数発生器 1を複数個接続することが容易となり、 乱数生成の高速化が可能とな る。 また、 チップセレクト(CS)と出力イネ一ブル(0E)を有することで、 C P Uを 使用したシステムに物理乱数発生器 1を容易に接続することができる。
なお、 上述の実施形態では、 基準クロック(CLK—0)のエッジに対する読出しク ロック(CLKJ0のエッジの禁止域(td—Ra+t(L0a+ 2 X td— mg)を非常に小さくして基 準クロック(CLK_0)と読出しクロック(CLKJ0との干渉を最小限とするため、 基準 クロック側および読出しクロック側にそれぞれ 2個の遅延回路 9、 1 0を設けた 場合について説明したが、 基準クロック側と読出しクロック側のいずれか一方に だけ遅延回路 9、 1 0を設けてもよく、 遅延回路 9、 1 0の個数も 1個以上であ れば何個でも構わない。 或いはまた、 遅延回路 9、 1 0に代えて波形成形回路 ( 例えば、 単安定マルチバイブレータ) を付加しても、 同じ効果を得ることができ る。
以上説明したように、 本発明の上記第 2の態様のうち請求項 4〜 1 0に係る発 明によれば、 生成された物理乱数を効率よく利用することができるとともに、 そ の乱数の一様性を容易に検定して使用することができ、 かつ、 簡単な回路構成に よりこれらを実現することが可能となる。
また、 本発明の第 2の態様のうち請求項 1 1および 1 2に係る発明によれば、 複数個の物理乱数発生 I Cを用いて高速に乱数を発生させることが容易となり、 かつ、 Dat a Busに直接接続できるようになるため、 物理乱数発生装置の使い易さ が格段に向上する。
<発明の第 3の態様 >
本発明の更に別の実施態様において、 図 1 6および図 1 8に示すように、 抵抗 Rおよびキャパシ夕 (コンデンサ) Cでクロック信号を積分して積分波形を出力 する積分回路 1 0 5と、 ノイズ源 1 0 6と、 このノイズ源 1 0 6のノイズを増幅 してノイズ信号を出力する増幅器 1 0 7と、 積分波形とノイズ信号とをミキシン グするミキサ一 1 0 8と、 このミキサー 1 0 8の出力波形に基づいて生成される ジッターの最初のエッジを検出するエッジ検出回路 1 0 9とが 2個ずつ設けられ ている。 各エッジ検出回路 1 0 9は、 図 1 7に示すような回路構成となっており 、 これらのエッジ検出回路 1 0 9の後段には、 図 1 6に示すように、 各エッジ検
出回路 109の出力信号の位相差に基づいて" 0" または" 1" を出力する D夕 イブのフリップ ·フロップ 110が設けられている。 更に、 フリップ 'フロップ 110の後段には、 乱数をクロック信号に同期させる Dタイプのフリップ ·フロ ップ 111が設けられている。
また、 物理乱数発生器 101の最前段には、 各積分回路 105に入力される入 力信号の位相を調整する位相調整部 102が設けられており、 この位相調整部 1 02はディレー 121、 第 1セレクタ一 122及びアップ Zダウンカウンタ一 1 23から構成されている。
また、 フリップ ·フロップ 1 11の出力とアップ/ダウンカウンタ一 123と の間にはフィードパック回路 103が設けられており、 フリップ ' フロップ 11 1〜出力される" 0" または" 1 " がそれぞれ 50 %に収束するようにフリップ •フロップ 111の出力が位相調整部 102にフィードパックされる。 すなわち 、 フィードパック回路 103は第 1カウンター 131、 比較器 132, 第 2カウ ンター 133, レジスター 134, 比較器 135, シフトレジス夕一/レジス夕 —136、 加算機' 137から構成されており、 第 1カウンタ一 131および比較 器 13.2はフィードパックの周期を乱数 (2 xm) で生成する。 また、 第 2カウ ンター 133、 レジスター 134および比較器 135はフィードパックの周期 ( 2 xm) 中の" 0" または" 1" の数をカウント (n) し、 比較データをアップ /ダウンカウンター 123に出力して乱数の一様性を補正するフィードパック信 号を出力する。 さらに、 シフトレジス夕/レジスター 136および加算機 137 は、 フィードパックの周期を決める乱数 (m) を出力 (OUT) より取得する。 これにより、 フィードパック周期による乱数の質の低下 (癖) を 防ぐことがで さる。
さらに、 位相調整部 102各積分回路 105との間にはそれぞれ第 2セレクタ - 115および第 3セレクタ一 116が設けられていると共に、 第 1セレクタ一 122とアップ/ダウンカウンター 123との間には極性切換回路 113が設け られており、 表 5に示すように、 アツプ ダウンカウンター 123の最上位ビッ ト MSBによって第 1セレクタ一 122と第 2セレクタ一 115および第 3セレ クタ一 116との入力の極性切換が行われる。
【表 5】
したがって、 2系統の信号ラインに応じた 2個のディレーおょぴセレクタ一を 必要とする従来の物理乱数発生器と比べて、 ディレー 1 2 1及び第 1セレクタ一 1 2 2を半分にしてゲート数を削減することができるので、 物理乱数発生器 1 0 1の規模を小さくして占有面積を縮小し、 その消費電力を低減することが可能と なる。
図 1 9は本発明の更に別の実施例による物理乱数発生器の回路図である。 この 物理乱数発生器 1 0 1においては、 図 1 9に示すように、 抵抗 Rおよびキャパシ 夕 Cでクロック信号を積分して積分波形を出力する積分回路 1 0 4が 1つ設けら れていると共に、 ノイズ源 1 0 6と、 このノイズ源 1 0 6のノイズを増幅してノ ィズ信号を出力する増幅器 1 0 7と、 積分波形とノイズ信号とをミキシングする ミキサー 1 0 8と、 このミキサ一 1 0 8の出力波形に基づいて生成されるジッタ —の最初のエッジを検出するエッジ検出回路 1 0 9とが 2個ずつ設けられている 。 これらのエッジ検出回路 1 0 9の後段には、 各エッジ検出回路 9の出力信号の
位相差に基づいて" 0 " または" 1 " を出力する Dタイプのフリップ ·フロップ 1 1 0が設けられており、 フリップ ·フロップ 1 1 0の後段には、 乱数をク口ッ ク信号に同期させる Dタイプのフリップ · フロップ 1 1 0が設けられている。 また、 フリップ ·フロップ 1 1 0と各エッジ検出回路 1 0 9との間 (各エツジ 検出回路 1 0 9の後段) にはそれぞれ、 ディレーとセレクタ一からなる可変ディ レー 1 1 9が設けられており、 フリップ · フロップ 1 1 0に入力される入力信号 の位相を調整することができる。
さらに、 フリップ ·フロップ 1 1 1の出力とアップ Zダウンカウンター 1 2 3 との間にはフィードパック回路 1 0 3が設けられており、 フリップ ·フロップ 1 1 1から出力される" 0 " または" 1 " がそれぞれ 5 0 %に収束するようにフリ ップ · フロップ 1 1 1の出力が可変ディレ一 1 1 9にフィードバックされる。 したがって、 2系統の信号ラインについて積分回路 1 0 5が 1つで済むことに 加えて、 積分回路 1 0 5を構成する抵抗 R、 キャパシ夕 Cの誤差による位相調整 範囲を狭めることができるため、 ディレーとセレクタ一からなる可変ディレー 1 1 9を縮小し、 ゲート数を削減することができることから、 物理乱数発生器 1 0 1の規模を小さくして占有面積を縮小し、 その消費電力を低減することが可能と なる。
尚、 上記の第 1 9図に示した実施形態において、 図 2 0に示すように、 積分回 路 1 0 5の抵抗 Rの後段に F E T (電界トランジスタ) 1 1 7をキャパシタ Cと 並列に付加してもよい。 この場合は、 図 2 1に示すように、 積分回路 1 0 5のキ ャパシタ Cに充電された電荷を放電して電位を積分波形の基点に戻すことにより 、 積分波形の基点が常に安定し、 その結果としてジッターの分布も安定する。 さ らに、 ジッターの分布が安定することは良質な乱数を生成することにつながる。 また、 乱数生成は電位が基点に戻るまで待たなければならないが、 積分回路 1 0 5のキャパシタ Cに充電された電荷が高速に放電され、 電位も高速に積分波形の 基点に戻るため、 乱数生成までの待ち時間を短縮することができる。 それに加え 、 乱数生成後に波形の電位が上がりきるのを待たずして強制的に基点まで電位を 下げることができるので、 さらなる時間短縮が可能となる (乱数生成したら、 す ぐに電位を基点まで戻せる) 。 これにより、 乱数生成スピードを大幅に高速化す
ることができる。 同様に、 上述した図 1 6〜図 1 8に示した実施形態において、 各積分回路 1 0 5の抵抗 Rの後段に F E T 1 1 7をキャパシタ Cと並列に付加す ることもできる。
また、 上記図 1 9に示した実施形態において、 図 2 2に示すように、 積分回路 1 0 5の抵抗 Rに代えて、 定電流回路 1 1 8も設けても構わない。 この場合は、 図 2 3に示すように、 キャパシタ Cの充電時の積分波形が直線となり、 ノイズに 対して変調したジッターの歪みがなくなるため、 乱数の質が向上する。 同様に、 上述した図 1 6〜図 1 8の実施形態において、 各積分回路 1 0 5の抵抗 Rに代え て定電流回路 1 1 8を設けることも可能である。
また、 図 3 Bの実施例について説明したと同様に、 上述した物理乱数発生器 1 0 1を 個 (kは 2以上の数値) 並列に接続し、 各物理乱数発生器 1 0 1に入力 されたパラレル物理乱数を k個のシリアル物理乱数に並べ替え、 排他的論理和 ( X O R) 素子を介して出力することにより、 複数個の物理乱数発生器 1 0 1から なる物理乱数発生装置の乱数の質を向上させることができる。
また、 図 1 6〜図 1 8の実施形態及ぴ図 1 9の実施形態においては、 乱数発生 用のフリップ ·フロップとして Dタイプのフリップ · フロップを用いた場合につ いて説明したが、 本発明ではこれに限定されるわけではなく、 これと同等の機能 を有するフリップ ·フロップであれば代用できる。
また、 図 1 9の実施形態においては、 図示の如く、 ディレーとセレクタ一から なる可変ディレー 1 1 9をエッジ検出回路 1 0 9の後段に設けた場合について説 明したが、 可変ディレー 1 1 9をエッジ検出回路 1 0 9の前段に設けてもよい。