JP2007034836A - 乱数発生装置 - Google Patents

乱数発生装置 Download PDF

Info

Publication number
JP2007034836A
JP2007034836A JP2005219246A JP2005219246A JP2007034836A JP 2007034836 A JP2007034836 A JP 2007034836A JP 2005219246 A JP2005219246 A JP 2005219246A JP 2005219246 A JP2005219246 A JP 2005219246A JP 2007034836 A JP2007034836 A JP 2007034836A
Authority
JP
Japan
Prior art keywords
random number
output
level
metastable
data
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.)
Granted
Application number
JP2005219246A
Other languages
English (en)
Other versions
JP4471901B2 (ja
Inventor
Kazuhiko Fukushima
和彦 福島
Atsuo Yamaguchi
敦男 山口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2005219246A priority Critical patent/JP4471901B2/ja
Publication of JP2007034836A publication Critical patent/JP2007034836A/ja
Application granted granted Critical
Publication of JP4471901B2 publication Critical patent/JP4471901B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 乱数性を向上させることが可能な乱数発生装置を提供する。
【解決手段】 乱数発生装置は、回路の出力が不安定な状態であるメタステーブルにおける回路の出力に基づいて乱数データを生成する乱数生成部1と、乱数データを格納する乱数格納部4と、メタステーブルの消滅後に乱数生成部1から出力される乱数データを乱数格納部4に格納させる制御を行なう制御部5とを備える。
【選択図】 図1

Description

本発明は、乱数発生装置に関し、特に、回路の出力が不安定な状態における回路の出力に基づいて乱数を生成する乱数発生装置に関する。
情報セキュリティ分野においては乱数の使用が不可欠であり、近年、一様性(乱数の確率値および出現率に差異が生じないこと)を有し、かつ乱数出現の規則性や前後の相関性、周期性などを有しない自然乱数(真正乱数)を発生する高性能な乱数発生装置の需要が高まっている。
たとえば、特許文献1には以下のような乱数発生装置が開示されている。すなわち、カスケード接続されたMuller(ミューラー)Cゲート1,2が第2の方形波Sの立ち上がり時点以降における第1の方形波Fの立ち下がり時点を検出し、カスケード接続されたMullerCゲート3,4が第2の方形波Sの立ち上がり時点以降における第1の方形波Fの立ち上がり時点を検出し、第2の方形波Sの立ち上がり時点で第1の方形波Fの値が1の場合にはNANDゲート5が0を乱数として出力し、第2の方形波Sの立ち上がり時点で第1の方形波Fの値が0の場合にはNANDゲート6が0を乱数として出力する。
また、特許文献2には以下のような乱数発生装置が開示されている。すなわち、ループ状に接続された複数の遅延回路、複数の遅延回路で形成されたループ内に複数の遅延回路の総遅延時間よりも短いパルス幅のパルス信号を発生させるパルス発生回路、および複数の遅延回路のうちのある遅延回路の出力ノードに接続され、その出力ノードをパルス信号が通過した回数をカウントし、そのカウント値に基づいて真正乱数データを出力するカウンタを備える。
特開2003−150372号公報 特開2005−18251号公報
ところで、特許文献1記載の乱数発生装置は2つの入力信号の関係に応じて乱数を発生する構成であるため、適切な入力信号を生成できない場合には乱数性が低下してしまうという問題点があった。
また、特許文献2記載の乱数発生装置は、回路の不確定動作によって回路の出力が不安定となる状態、すなわちメタステーブルにおける回路の出力に基づいて乱数を発生する構成であるが、メタステーブルが消滅する前、すなわち出力ノードを通過するパルス信号が消滅する前のカウント値を真正乱数データとして出力すると、メタステーブルの寿命に依存しない乱数が生成されるために乱数性が低下してしまう場合があるという問題点があった。
それゆえに、本発明の目的は、乱数性を向上させることが可能な乱数発生装置を提供することである。
上記課題を解決するために、本発明のある局面に係わる乱数発生装置は、回路の出力が不安定な状態であるメタステーブルにおける回路の出力に基づいて乱数データを生成する乱数生成部と、乱数データを格納する乱数格納部と、メタステーブルの消滅後に乱数生成部から出力される乱数データを乱数格納部に格納させる制御を行なう制御部とを備える。
また本発明のさらに別の局面に係わる乱数発生装置は、回路の出力が不安定な状態であるメタステーブルにおける回路の出力に基づいて乱数データを生成する乱数生成部と、乱数データを格納する乱数格納部と、メタステーブルの消滅を検知する検知器と、検知器がメタステーブルの発生から所定時間内にメタステーブルの消滅を検知した場合にはメタステーブルの消滅後に、または所定時間が経過しても検知器がメタステーブルの消滅を検知しない場合には所定時間経過後に、乱数生成部から出力される乱数データを乱数格納部に格納させる制御を行なう制御部とを備える。
本発明によれば、乱数性を向上させることができる。
以下、本発明の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第1の実施の形態>
[構成および基本動作]
図1は、本発明の第1の実施の形態に係る乱数発生装置の構成を示す図である。同図を参照して、乱数発生装置は、乱数生成部1と、M系列生成部(擬似乱数生成部)2と、EXOR(イクスクルーシブオア)ゲート3と、乱数格納部4と、制御信号生成部5とを備える。乱数生成部1は、リング発振器11(乱数用発振器)と、2値化部12とを含む。
乱数生成部1は、リング発振器11においてメタステーブルが発生しているときのリング発振器11の出力に基づいて乱数データを生成する。
M系列生成部2は、公知のM系列(最長符号系列)を生成する。M系列は、一様性のある擬似乱数データ、すなわち“0”と“1”の発生確率がともに50%で、規則性のある擬似的な乱数データである。なお、乱数生成部1およびM系列生成部2は非同期で動作する。
EXORゲート3は、乱数生成部1から受けた乱数データおよびM系列生成部2から受けた擬似乱数データの排他的論理和を出力する。乱数生成部1の生成する乱数データは一様性が保証されていないが、M系列生成部2の生成する擬似乱数データは一様性が保証されているため、EXORゲート3からは一様性のある乱数データが出力される。
乱数格納部4は、EXORゲート3から受けた乱数データを格納し、乱数として出力する。より詳細には、乱数格納部4は、乱数データを複数ビット格納するための複数個のレジスタを含む。また、乱数格納部4は、CPU等の外部回路が出力する図示しないリード信号を受けて各レジスタに格納された乱数データを乱数としてCPUバスへ出力する。
制御信号生成部5は、乱数生成部1と、M系列生成部2と、乱数格納部4とを制御して乱数を生成する。
図2は、リング発振器11および2値化部12の構成を示す図である。同図を参照して、リング発振器11は、インバータ21a〜21eと、NANDゲート22a〜22cとを含む。2値化部12はレジスタ23a〜23cと、EXORゲート24とを含む。
リング発振器11は、制御信号生成部5から受けた発振制御信号に応じて発振状態または安定状態になる。2値化部12は、リング発振器11のループにおける各ノードをパルス信号が通過した回数をカウントし、このカウント値に基づいて乱数データを出力する。
より詳細には、NANDゲート22a〜22cおよびインバータ21aで構成される回路は、制御信号生成部5から受けた発振制御信号に応じて、奇数個のインバータからなるループを形成するか、または偶数個のインバータからなるループを形成するかを切り替える。
リング発振器11において、インバータ21bの出力およびNANDゲート22bの入力の接続点がノードN21であり、NANDゲート22cの出力およびインバータ21cの入力の接続点がノードN22であり、インバータ21dの出力およびインバータ21eの入力の接続点がノードN23である。
ノードN21〜N23は、それぞれ2値化部12におけるレジスタ23a〜23cのクロック入力端子に接続される。
このような構成により、発振制御信号がHレベルのときはNANDゲート22bの出力信号がHレベルとなるため、インバータ21c〜21eと、NANDゲート22aおよび22cとからなるループ、すなわち奇数個のインバータからなるループが形成される。発振制御信号がLレベルのときはNANDゲート22aの出力信号がHレベルとなるため、インバータ21b〜21eと、NANDゲート22bおよび22cとからなるループ、すなわち偶数個のインバータからなるループが形成される。したがって、発振制御信号がLレベルのときは各インバータおよび各NANDゲートの出力信号の論理レベルが確定するためループが安定状態になるが、発振制御信号がHレベルのときは各インバータおよび各NANDゲートの出力信号がHレベルおよびLレベルを繰り返すためにループが発振状態になる。
レジスタ23a〜23cは、反転出力端子とデータ入力端子とが接続された、1ビットのカウンタである。レジスタ23a〜23cは、クロック入力端子に入力される信号の立ち上がりエッジを検出するたびに正反転出力端子からの出力信号を反転させる。
図3は、リング発振器11および2値化部12の動作を説明するためのタイムチャートである。
同図を参照して、制御信号生成部5から出力される発振制御信号は、時刻t0にHレベルに立ち上げられ、時間T0経過後にLレベルに立ち下げられるパルス信号である。この時間T0(パルス幅)は、リング発振器11のループの遅延時間T1よりも短い時間である。
発振制御信号がLレベルからHレベルになると前述のようにループが安定状態から発振状態となる。発振状態においては各インバータおよび各NANDゲートの出力信号がHレベルおよびLレベルを繰り返すため、リング発振器11のループにおける各ノードをパルス信号が通過する。そして、発振制御信号がHレベルからLレベルになるとループが発振状態でなくなるため、発振状態において各ノードを通過していたパルス信号が徐々に細くなり、最終的にパルス信号が消滅して安定状態となる。このように発振状態におけるパルス信号よりも細いパルス信号がループを通過している状態、すなわちリング発振器12の出力が不安定な状態がメタステーブルである。ここで、パルス信号のレベルが小さくなり、レジスタ23a〜23cがパルス信号をクロックとして認識できなくなった状態、すなわちレジスタ23a〜23cがパルス信号の立ち上がりエッジまたは立ち下がりエッジを検出できなくなった状態がメタステーブルの消滅である。
同図に示すタイムチャートにおいて、各レジスタは、それぞれパルス数を2回ずつカウントする。すなわち、初期状態において各レジスタの非反転出力がLレベルであった場合、各レジスタの非反転出力は1回目のカウントでHレベルになり、2回目のカウントでLレベルになる。そうすると、メタステーブル消滅後のEXORゲート24の出力信号はLレベルになる。
メタステーブルの寿命は、リング発振器11のループにおける各回路の特性によって決まり、各回路の特性は製造ばらつきおよび周囲温度等によって変動するものであるため、メタステーブルの寿命は制御できるものではなく、メタステーブルが消滅するノード、すなわち最後のパルス信号が通過するノードは不確定である。
たとえば、メタステーブルがループを2周した後に出力ノードN22で消滅した場合、出力ノードN21に対応するレジスタはパルス数を3回カウントし、出力ノードN22〜N23に対応するレジスタはそれぞれパルス数を2回ずつカウントする。すなわち、初期状態において各レジスタの非反転出力がLレベルであった場合、メタステーブル消滅後の出力ノードN21に対応するレジスタの非反転出力はHレベルになり、出力ノードN22〜N23に対応するレジスタの非反転出力はそれぞれLレベルになる。そうすると、メタステーブル消滅後のEXORゲート24の出力信号はHレベルになる。したがって、時刻t0から所定時間経過後(メタステーブル消滅後)の時刻t1における2値化部12の出力信号はメタステーブルの寿命に依存するため、真正乱数データ、すなわち規則性がなく質の高い乱数データとなる。
以上のように、本実施の形態に係る乱数発生装置における乱数生成部1は、リング発振器11の3個(奇数個)のインバータからなるループと4個(偶数個)のインバータからなるループとを切り替え、メタステーブルの寿命を“0”,“1”に2値化することによって真正乱数データを生成する。したがって、小型で消費電力が小さく、高性能な乱数発生装置が実現できる。
図4は、M系列生成部2の構成を示す図である。
同図を参照して、M系列生成部2は、n個(nは3以上の自然数)のレジスタ91と、複数個のEXORゲート92と、ANDゲート93と、ORゲート94とを含む。
各レジスタ91は、そのデータ入力端子が前段のレジスタ91の非反転出力端子に接続され、クロック入力端子に制御信号生成部5からのM系列シフト信号が入力され、反転出力端子がANDゲート93の入力端子に接続される。ただし、初段のレジスタ91は、データ入力端子がORゲート94の出力端子に接続される。
各EXORゲート92は、入力端子の一方が対応のレジスタ91の非反転出力を受け、その入力端子の他方が前段のEXORゲート92の出力信号を受け、これらの排他的論理和を出力する。ただし、初段のEXORゲート92は、その入力端子の一方が(n−2)段目のレジスタ91の非反転出力を受け、入力端子の他方がn段目のEXORゲート92の出力信号を受ける。
このように、複数段のレジスタ91を直列に接続し、最終出力をフィードバックする構成により、擬似乱数が生成されることは周知である。このM系列生成部2が出力する擬似乱数データの繰返し周期はEXORゲート92の数および位置に応じて異なり、擬似乱数データの繰返し周期が最も長くなるようにEXORゲート92の数および位置が定められる。この場合、繰返し周期が(2n−1)の擬似乱数データが生成される。
ANDゲート93は、n個のレジスタ91の反転出力の論理積を出力する。ORゲート94は、最終段のEXORゲート92の出力信号およびANDゲート93の出力信号の論理和を出力する。このような構成により、すべてのレジスタ91の非反転出力がLレベルになってM系列生成部2が出力する擬似乱数データがLレベルの安定状態になることが防止される。
図5は、制御信号生成部5の構成を示す図である。
同図を参照して、制御信号生成部5は、リング発振器101(クロック用発振器)と、レジスタ31a〜31bと、ANDゲート32a〜32bとを含む。
図6は、リング発振器101の構成を示す図である。
同図を参照して、リング発振器101は、ANDゲート33と、インバータ34a〜34cとを含む。
ANDゲート33と、インバータ34a〜34cとからなるループ、すなわち奇数個のインバータからなるループが形成される。発振制御信号がLレベルのときはANDゲート33の出力信号がLレベルとなるため、リング発振器101の出力信号はHレベルで安定する。一方、発振制御信号がHレベルのときはANDゲート33の出力信号がHレベルとなるため、ANDゲート33および各インバータの出力信号の論理レベルがHおよびLレベルを繰り返してループが発振状態となり、制御信号生成用クロックが出力される。
再び図5を参照して、レジスタ31a〜31bは、データ入力端子に入力されたデータをリング発振器101から受けた制御信号生成用クロックのタイミングでサンプリングして保持し、保持したデータを出力する。レジスタ31aの非反転出力端子がレジスタ31bのデータ入力端子に接続され、反転出力端子がANDゲート32aの入力端子の一方およびANDゲート32bの入力端子の一方に接続される。レジスタ31bの非反転出力端子がANDゲート32aの入力端子の他方に接続され、反転出力端子がANDゲート32bの入力端子の他方およびレジスタ31aのデータ入力端子に接続される。
ANDゲート32aの出力が乱数格納信号となり、また、ANDゲート32bの出力が発振制御信号およびM系列シフト信号となる。
次に、制御信号生成部5が各回路を制御して乱数を生成する際の動作について説明する。
図7は、本発明の第1の実施の形態に係る乱数発生装置における各信号のタイムチャートである。
制御信号生成部5は、発振制御信号およびM系列シフト信号をLレベルからHレベルに変化させる。発振制御信号がLレベルからHレベルになると、乱数生成部1におけるリング発振器11が発振状態となる。また、M系列シフト信号がLレベルからHレベルになると、M系列生成部2における各レジスタがシフト動作を行ない、M系列生成部2の出力、すなわち擬似乱数データの論理レベルがたとえばLレベルからHレベルに変化する。
次に、制御信号生成部5は、発振制御信号およびM系列シフト信号をHレベルからLレベルに変化させる。発振制御信号がHレベルからLレベルになるとリング発振器11が発振状態でなくなり、リング発振器11においてメタステーブルが発生する。
そして、リング発振器11においてメタステーブルが消滅し、乱数生成部1から真正乱数データとしてたとえばHレベルのデータが出力される。EXORゲート3は、乱数生成部1からHレベルのデータおよびM系列生成部2からHレベルのデータを受けて、Lレベルのデータを乱数データとして出力する。
次に、制御信号生成部5は、乱数格納部4を制御して、EXORゲート3から受けた乱数データをメタステーブル消滅後のタイミングで格納する。同図において、制御信号生成部5は、リング発振器11においてメタステーブルが消滅した後のタイミングである制御信号生成用クロックの4クロック目で乱数格納信号をLレベルからHレベルに変化させている。乱数格納信号がLレベルからHレベルになると、乱数格納部4は、EXORゲート3から出力されているLレベルの乱数データを格納する。
ここで、メタステーブルが消滅した後に乱数格納信号をLレベルからHレベルに変化させるように構成するためには、制御信号生成用クロックの周期をある程度大きくする必要がある。制御信号生成用クロックの周期を大きくする方法としては、制御信号生成部5が含むリング発振器101における各インバータを入出力間の遅延量の大きい回路とするか、リング発振器101におけるループを構成するインバータの数を増やすか、またはインバータの出力に容量値の大きい素子を接続する等の方法が考えられる。
ところで、特許文献1記載の乱数発生装置は2つの入力信号の関係に応じて乱数を発生する構成であるため、適切な入力信号を生成できない場合には乱数性が低下してしまうという問題点があった。
また、特許文献2記載の乱数発生装置は、メタステーブルが消滅する前のカウント値を真正乱数データとして出力すると、メタステーブルの寿命に依存しない乱数が生成されるために乱数性が低下してしまう場合があるという問題点があった。
しかしながら、本発明の第1の実施の形態に係る乱数発生装置では、制御信号生成部5は、乱数格納部4を制御して、EXORゲート3から受けた乱数データをメタステーブル消滅後のタイミングで格納する。すなわち、メタステーブルの寿命に基づく乱数を生成する。
したがって、本発明の第1の実施の形態に係る乱数発生装置では、乱数性を向上させることができる。
また、本発明の第1の実施の形態に係る乱数発生装置では、リング発振器101が生成する制御信号生成用クロックの周波数は乱数発生装置の外部から制御することができない。したがって、耐タンパ性、すなわち機器の内部構造および記憶しているデータ等の解析の困難さを向上させることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第2の実施の形態>
本実施の形態は、第1の実施の形態に係る乱数発生装置におけるリング発振器11および制御信号生成部5の構成を変更した乱数発生装置に関する。すなわち、本実施の形態に係る乱数発生装置は、リング発振器11の代わりにリング発振器13(乱数用発振器)を備え、また、制御信号生成部5の代わりに制御信号生成部15を備える。
図8は、リング発振器13の構成を示す図である。
同図を参照して、リング発振器13は、NANDゲート41a〜41fを含む。NANDゲート41a〜41fはループを形成する。このループは偶数個のインバータからなるループと等価であり、発振制御信号がLレベルおよびHレベルのいずれの場合にも安定状態になる。
リング発振器21において、NANDゲート41fの出力およびNANDゲート41aの入力の接続点がノードN41であり、NANDゲート41bの出力およびNANDゲート41cの入力の接続点がノードN42であり、NANDゲート41dの出力およびNANDゲート41eの入力の接続点がノードN43である。
ノードN41〜N43は、それぞれ2値化部12におけるレジスタ23a〜23cのクロック入力端子に接続される。
リング発振器13の構成および動作は、特許文献1の図19に示すリング発振器と同様である。すなわち、このループの初期状態は、ノードN41〜N43の電位がHレベルの安定状態である。発振制御信号がHレベルに立ち上げられたことに応じて、NANDゲート41a〜41eの出力がLレベルに立下げられた後、NANDゲート41a、41cおよび41eの電位がLレベル、NANDゲート41b、41dおよび41fの電位がHレベルの安定状態に遷移する。発振制御信号の変化時において、ノードN41〜N43に順次メタステーブルが発生する。メタステーブルの波形は時間が経つにつれて徐々に小さくなって消滅する。
したがって、リング発振器21のループの遅延時間よりも短いパルス幅の発振制御信号を生成しなくても、発振制御信号をLレベルからHレベルに立ち上げるだけで簡単にメタステーブルを発生することができるため、乱数発生装置の構成を簡易化することができる。
図9は、制御信号生成部15の構成を示す図である。
同図を参照して、制御信号生成部15は、図5に示す制御信号生成部5に対して、さらにインバータ35を含む。インバータ35は、ANDゲート32bの出力を反転させ、発振制御信号として乱数生成部1へ出力する。その他の構成および動作は図5に示す制御信号生成部5と同様である。
次に、制御信号生成部15が各回路を制御して乱数を生成する際の動作について説明する。
図10は、本発明の第2の実施の形態に係る乱数発生装置における各信号のタイムチャートである。
制御信号生成部15は、発振制御信号をHレベルからLレベルに変化させる。この場合、乱数生成部1におけるリング発振器11は安定状態であり、各ノードの電位がHレベルであるため、乱数生成部1の出力はLレベルとなる。また、制御信号生成部15は、M系列シフト信号をLレベルからHレベルに変化させる。M系列シフト信号がLレベルからHレベルになると、M系列生成部2における各レジスタがシフト動作を行ない、M系列生成部2の出力、すなわち擬似乱数データの論理レベルがたとえばLレベルからHレベルに変化する。
次に、制御信号生成部5は、発振制御信号をLレベルからHレベルに変化させる。発振制御信号がLレベルからHレベルになると、リング発振器13においてメタステーブルが発生する。また、制御信号生成部5は、M系列シフト信号をHレベルからLレベルに変化させる。
そして、リング発振器13においてメタステーブルが消滅し、乱数生成部1から真正乱数データとしてたとえばHレベルのデータが出力される。EXORゲート3は、乱数生成部1からHレベルのデータおよびM系列生成部2からHレベルのデータを受けて、Lレベルのデータを乱数データとして出力する。
次に、制御信号生成部5は、乱数格納部4を制御して、EXORゲート3から受けた乱数データをメタステーブル消滅後のタイミングで格納する。同図において、制御信号生成部5は、リング発振器13においてメタステーブルが消滅した後のタイミングである制御信号生成用クロックの4クロック目で乱数格納信号をLレベルからHレベルに変化させている。乱数格納信号がLレベルからHレベルになると、乱数格納部4は、EXORゲート3から出力されているLレベルの乱数データを格納する。
したがって、本発明の第2の実施の形態に係る乱数発生装置は、第1の実施の形態に係る乱数発生装置と同様にメタステーブルの寿命に基づく乱数を生成することができるため、乱数性を向上させることができる。また、第1の実施の形態に係る乱数発生装置と同様に、耐タンパ性を向上させることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第3の実施の形態>
本実施の形態は、第1の実施の形態に係る乱数発生装置における制御信号生成部5の構成を変更した乱数発生装置に関する。すなわち、本実施の形態に係る乱数発生装置は、制御信号生成部5の代わりに制御信号生成部25を備える。
図11は、制御信号生成部25の構成を示す図である。
同図を参照して、制御信号生成部25は、図5に示す制御信号生成部5に対して、リング発振器101の代わりに分周器51を含む。分周器51は、外部から乱数発生装置に入力されるシステムクロックまたは内部発振によるクロックを分周し、分周したクロックを制御信号生成用クロックとしてレジスタ31a〜31bへ出力する。その他の構成および動作は図5に示す制御信号生成部5と同様である。
したがって、本実施の形態に係る乱数発生装置は、第1の実施の形態に係る乱数発生装置と同様にメタステーブルの寿命に基づく乱数を生成することができるため、乱数性を向上させることができる。
ここで、第1の実施の形態に係る乱数発生装置では、前述のように制御信号生成用クロックの周期を大きくするためにリング発振器101におけるループを構成するインバータの数を増やす等の方法をとる必要があり、リング発振器101の回路規模が大きくなる。しかしながら、本実施の形態に係る乱数発生装置では、クロックを発生するリング発振器が不要となり、また、分周器はたとえば数個のレジスタで構成できることから、回路規模を小さくすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第4の実施の形態>
本実施の形態は、第1の実施の形態に係る乱数発生装置における制御信号生成部5の構成を変更した乱数発生装置に関する。すなわち、本実施の形態に係る乱数発生装置は、制御信号生成部5の代わりに制御信号生成部35を備える。
図12は、制御信号生成部35の構成を示す図である。
同図を参照して、制御信号生成部25は、レジスタ52a〜52cを含む。レジスタ52a〜52cは、図示しないCPU(Central Processing Unit)からCPUバス経由で受けたデータを、同じくCPUから受けた書き込み信号のタイミングで保持し、保持したデータをそれぞれ発振制御信号、乱数格納信号およびM系列シフト信号として出力する。すなわち、CPUは、レジスタ52a〜52cを制御して、図7と同様の発振制御信号、乱数格納信号およびM系列シフト信号を生成する。ここで、CPUは、乱数発生装置の外部に存在する。
次に、制御信号生成部5が各回路を制御して乱数を生成する際の動作について説明する。
図13は、本発明の第4の実施の形態に係る乱数発生装置における各信号のタイムチャートである。
同図において、CPUバスデータのMSB(Most Significant Bit)がレジスタ52aに対応し、MSBから2ビット目がレジスタ52bに対応し、LSB(Least Significant Bit)がレジスタ52cに対応する。
CPUは、発振制御信号、乱数格納信号およびM系列シフト信号の論理レベルを変更するタイミングに応じてCPUバスデータを変更し、かつ、書き込み信号を各レジスタへ出力することにより、同図に示すような発振制御信号、乱数格納信号およびM系列シフト信号を生成する。その他の動作は図7と同様であるため、ここでは説明を繰り返さない。
したがって、本実施の形態に係る乱数発生装置は、第1の実施の形態に係る乱数発生装置と同様にメタステーブルの寿命に基づく乱数を生成することができるため、乱数性を向上させることができる。
さらに、本実施の形態に係る乱数発生装置では、制御信号生成部35は3個のレジスタだけで構成されるため、第1〜第3の実施の形態に係る乱数発生装置よりも回路規模を小さくすることができる。
なお、本実施の形態に係る乱数発生装置では、制御信号生成部25がレジスタ52a〜52cを含む構成としたが、これに限定するものではなく、制御信号生成部25がレジスタ52a〜52cのうちの少なくともいずれか一つを含み、CPUが、発振制御信号、乱数格納信号およびM系列シフト信号のうちの少なくともいずれか一つを制御する構成とすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第5の実施の形態>
本実施の形態は、メタステーブルの消滅を検知し、かつ、第1の実施の形態に係る乱数発生装置における制御信号生成部5の構成を変更した乱数発生装置に関する。
図14は、本発明の第5の実施の形態に係る乱数発生装置の構成を示す図である。
同図を参照して、乱数発生装置は、第1の実施の形態に係る乱数発生装置に対して、さらにメタステーブル消滅検知器6を備え、かつ、制御信号生成部5の代わりに制御信号生成部45を備える。メタステーブル消滅検知器6は、レジスタ61と、ANDゲート62とを含む。
レジスタ61のクロック入力端子にEXORゲート3の出力が接続され、データ入力端子にHレベルの固定電位が接続され、リセット端子に制御信号生成部45からの消滅検知リセットが入力される。ANDゲート62の入力端子の一方にレジスタ61の出力が接続され、他方に制御信号生成部45からのゲート制御信号が入力される。ANDゲート62は両入力端子の論理積を消滅検知結果として制御信号生成部45へ出力する。
次に、本実施の形態に係る乱数発生装置がメタステーブルの消滅を検知して乱数を生成する際の動作について説明する。
図15は、本発明の第5の実施の形態に係る乱数発生装置における各信号のタイムチャートである。
メタステーブルが発生するまでの動作は第1の実施の形態に係る乱数発生装置と同様であるため、ここでは説明を繰り返さない。
リング発振器11においてメタステーブルが発生した後、制御信号生成部45は、消滅検知リセットをLレベルからHレベルに変化させる。消滅検知リセットがHレベルになると、レジスタ61はリセット状態となり、レジスタ61の出力はLレベルとなる。
次に、制御信号生成部45は、消滅検知リセットをHレベルからLレベルに変化させてレジスタ61のリセット状態を解除する。そして、制御信号生成部45は、レジスタ61のリセット状態が解除された後にゲート制御信号をLレベルからHレベルに変化させ、ANDゲート62から出力される消滅検知結果を受ける。
ここで、メタステーブルが消滅していない場合には、乱数生成部1からの乱数データはHレベルおよびLレベルを繰り返している。また、M系列生成部2からの出力はHレベルまたはLレベルで安定している。したがって、レジスタ61のクロック入力端子に入力されるEXORゲート3からの出力はHレベルおよびLレベルを繰り返しており、また、レジスタ61のデータ入力端子の電位がHレベルであることから、レジスタ61の出力はHレベルである。また、ゲート制御信号がHレベルであることから、ANDゲート62から出力される消滅検知結果はHレベルとなる。そして、制御信号生成部45は、ANDゲート62から受けた消滅検知結果がHレベルである場合にはメタステーブルは未だ消滅していないと判断する。
そして、制御信号生成部45は、消滅検知リセットをLレベルからHレベルに変化させてレジスタ61を再びリセット状態とする。また、制御信号生成部45は、ゲート制御信号をHレベルからLレベルに変化させる。このように、制御信号生成部45は、メタステーブルが消滅するまで以上の動作(以下、検出動作とも称する。)を繰り返す。
一方、メタステーブルが消滅した場合には、乱数生成部1からの乱数データはHレベルまたはLレベルで安定する。また、M系列生成部2からの出力はHレベルまたはLレベルで固定される。したがって、レジスタ61のクロック入力端子に入力されるEXORゲート3からの出力はHレベルまたはLレベルとなり、レジスタ61はデータ入力端子のHレベルをラッチしないため、レジスタ61の出力はリセット状態のLレベルが維持される。制御信号生成部45は、ANDゲート62から受けた消滅検知結果がLレベルである場合にはメタステーブルが消滅したと判断し、乱数格納部4を制御して、EXORゲート3から受けた乱数データを格納する。同図において、制御信号生成部45は、4回目の検知動作において、消滅検知結果がLレベルとなったことからメタステーブルが消滅したと判断し、乱数格納信号をLレベルからHレベルに変化させている。
したがって、本実施の形態に係る乱数発生装置は、メタステーブル消滅検知器6がメタステーブルの消滅を検知し、制御信号生成部45が、メタステーブル消滅検知器6からメタステーブルが消滅したことを表わす消滅検知結果を受けた後に乱数格納部4を制御して、EXORゲート3から受けた乱数データを格納する。このような構成により、メタステーブルの寿命に基づく乱数をより確実に生成することができ、乱数性を向上させることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第6の実施の形態>
本実施の形態は、第5の実施の形態に係る乱数発生装置における制御信号生成部45の動作内容を追加した乱数発生装置に関する。
ここでは、本実施の形態に係る乱数発生装置がメタステーブルの消滅を検知して乱数を生成する際の動作について説明する。
図16は、本発明の第6の実施の形態に係る乱数発生装置における各信号のタイムチャートである。
制御信号生成部45は、メタステーブルが発生してから所定時間経過してもメタステーブルが消滅しない場合、すなわち検出動作を所定回数行なってもANDゲート62からの消滅検知結果がHレベルのままである場合には、乱数格納部4を制御して、EXORゲート3から受けた乱数データを格納する。同図において、制御信号生成部45は、x回目(xは1以上の自然数)の検知動作においても消滅検知結果がHレベルであることから乱数格納信号をLレベルからHレベルに変化させている。
そして、制御信号生成部45は、発振制御信号およびM系列シフト信号をLレベルからHレベルに変化させて次の乱数生成を開始する。
したがって、本実施の形態に係る乱数発生装置では、乱数生成時間が長くなりすぎることを防ぐことができる。また、本実施の形態に係る乱数発生装置では、メタステーブルの寿命に基づく乱数が生成されないが、メタステーブルが発生してから、メタステーブル消滅前に乱数格納信号をLレベルからHレベルに変化させるまでの期間を適切に設定することにより、乱数性を十分に向上させることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第7の実施の形態>
本実施の形態は、第1の実施の形態に係る乱数発生装置における制御信号生成部5の構成を変更した乱数発生装置に関する。
図17は、本発明の第7の実施の形態に係る乱数発生装置の構成を示す図である。
同図を参照して、乱数発生装置は、第1の実施の形態に係る乱数発生装置に対して、制御信号生成部5の代わりに制御信号生成部55を備える。制御信号生成部55は、レジスタ71a〜レジスタ71eを含む。
レジスタ71a〜71eは、図示しないCPUからCPUバス経由で受けたデータを、同じくCPUから受けた書き込み信号のタイミングで保持し、保持したデータをそれぞれ発振制御信号、M系列シフト信号、乱数格納信号、消滅検知リセットおよびゲート制御信号として出力する。ここで、CPUは、乱数発生装置の外部に存在する。
メタステーブル消滅検知器6におけるANDゲート62から出力される消滅検知結果は、CPUバス経由でCPUへ出力される。
図18は、CPUが本発明の第7の実施の形態に係る乱数発生装置を制御して乱数を生成する際の動作手順を定めたフローチャートである。
まず、CPUは、レジスタ71aおよびレジスタ71bの出力をLレベルからHレベルに変化させる。すなわち、CPUは、発振制御信号およびM系列シフト信号をLレベルからHレベルに変化させる。発振制御信号がLレベルからHレベルになると、乱数生成部1におけるリング発振器11が発振状態となる。また、M系列シフト信号がLレベルからHレベルになると、M系列生成部2における各レジスタがシフト動作を行ない、M系列生成部2の出力、すなわち擬似乱数データの論理レベルがたとえばLレベルからHレベルに変化する(S1)。
次に、CPUは、レジスタ71aおよびレジスタ71bの出力をHレベルからLレベルに変化させる。すなわち、CPUは、発振制御信号およびM系列シフト信号をHレベルからLレベルに変化させる。発振制御信号がHレベルからLレベルになるとリング発振器11が発振状態でなくなり、リング発振器11においてメタステーブルが発生する(S2)。
リング発振器11においてメタステーブルが発生した後、CPUは、レジスタ71dの出力をLレベルからHレベルに変化させる。すなわち、CPUは、消滅検知リセットをLレベルからHレベルに変化させる。消滅検知リセットがHレベルになると、レジスタ61はリセット状態となり、レジスタ61の出力はLレベルとなる(S3)。
次に、CPUは、消滅検知リセットをHレベルからLレベルに変化させてレジスタ61のリセット状態を解除する。そして、CPUは、レジスタ61のリセット状態が解除された後にゲート制御信号をLレベルからHレベルに変化させて、ANDゲート62から出力される消滅検知結果をCPUバス経由で読み出す。
CPUは、ANDゲート62から受けた消滅検知結果がLレベルである場合にはメタステーブルが消滅したと判断し(S5でYES)、レジスタ71cの出力をLレベルからHレベルに変化させる。すなわち、CPUは、乱数格納信号をLレベルからHレベルに変化させることにより、乱数格納部4にEXORゲート3から受けた乱数データを格納させる制御を行なう。そして、乱数格納部4が格納した1bitの乱数データは乱数としてCPUバス経由でCPUへ出力される、すなわち、CPUは、乱数格納部4が格納した1bitの乱数データを乱数として読み出す(S6)。
一方、CPUは、ANDゲート62から受けた消滅検知結果がHレベルである場合にはメタステーブルは未だ消滅していないと判断し(S5でNO)、変数として保持している”消滅検知結果の読み出し回数”に1を加える(S7)。
CPUは、消滅検知結果の読み出し回数が所定の読み出し限度回数以上である場合には(S8でYES)、乱数格納信号をLレベルからHレベルに変化させることにより、乱数格納部4にEXORゲート3から受けた乱数データを格納させる制御を行なう。そして、CPUは、乱数格納部4が格納した1bitの乱数データを乱数として読み出す(S6)。
一方、CPUは、消滅検知結果の読み出し回数が所定の読み出し限度回数未満である場合には(S8でNO)、消滅検知リセットをLレベルからHレベルに変化させてレジスタ61を再びリセット状態とする(S3)。また、CPUは、ゲート制御信号をHレベルからLレベルに変化させる。
CPUは、乱数を所定ビット数分取得した場合には(S9でYES)、取得した乱数を図示しない暗号器、ハッシュ関数生成部およびM系列生成部へ出力する(S10)。なお、暗号器、ハッシュ関数生成部およびM系列生成部は、回路、またはCPU等に組み込まれたソフトウェアによって構成される。
一方、CPUは、乱数を所定ビット数分取得していない場合には(S9でNO)、レジスタ71aおよびレジスタ71bの出力をLレベルからHレベルに変化させて、次の乱数生成を開始する(S1)。
したがって、本実施の形態に係る乱数発生装置は、第1の実施の形態に係る乱数発生装置と同様にメタステーブルの寿命に基づく乱数を生成することができるため、乱数性を向上させることができる。
さらに、本実施の形態に係る乱数発生装置では、制御信号生成部55は5個のレジスタだけで構成されるため、第5〜第6の実施の形態に係る乱数発生装置よりも回路規模を小さくすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第8の実施の形態>
本実施の形態は、リング発振器のテストを行なう乱数発生装置に関する。
図19は、本発明の第8の実施の形態に係る乱数発生装置におけるリング発振器のテスト方法を説明するための乱数発生装置の概略図である。
同図を参照して、乱数発生装置は、セレクタ73と、カウンタ74と、複数個のリング発振器75とを備える。
次に、リング発振器のテストを行なう際の乱数発生装置の動作について説明する。
まず、図示しない制御信号生成部は、発振制御信号をリング発振器75へ出力し、リング発振器75を発振状態とする。
また、セレクタ73は、複数個のリング発振器75から受けた信号のうち、テスト対象のリング発振器75から受けた信号を選択してカウンタ74へ出力する。
ここで、リング発振器75は、たとえばリング発振器11、リング発振器13およびリング発振器101である。リング発振器11では、インバータ21b〜21eおよびレジスタ23a〜23cのうちのいずれか一つの出力がセレクタ73に接続される。また、リング発振器13では、NANDゲート41a〜41fおよびレジスタ23a〜23cのうちのいずれか一つの出力がセレクタ73に接続される。また、リング発振器101では、ANDゲート33およびインバータ34a〜34cのうちのいずれか一つの出力がセレクタ73に接続される。
カウンタ74は、セレクタ73経由で受けたテスト対象のリング発振器75の出力を所定時間カウントする。
そして、図示しないテスト制御部がカウンタ74のカウント値を読み出し、リング発振器75の発振周波数を算出する。発振周波数が所定の範囲内である場合にはテスト対象のリング発振器75は合格となり、また、発振周波数が所定の範囲外である場合にはテスト対象のリング発振器75は不合格となる。
なお、カウンタ74がリング発振器11およびリング発振器13におけるレジスタの出力をカウントする場合には、インバータまたはNANDゲートの出力をカウントする場合と比べてカウント値が半分になるため、発振周波数はカウント値の2倍に基づいて算出される。その他の構成および動作は前述の第1の実施の形態に係る乱数発生装置等と同様である。
したがって、本実施の形態に係る乱数発生装置では、リング発振器75のテストを乱数発生装置内部で行なうことができるため、リング発振器75の出力またはカウント値を乱数発生装置外部へ出力する必要がなくなり、テスト時間の短縮を図ることができる。
なお、乱数発生装置がカウンタ74を備えず、リング発振器75の出力がセレクタ73経由で乱数発生装置の外部へ出力される構成としてもよい。このような構成により、乱数発生装置の外部に存在するCPU等がリング発振器75からの出力と所定のテストパターンとを比較して、リング発振器75の合否を判定することができるため、カウンタ74およびテスト制御部等が不要となり、回路規模を小さくすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第9の実施の形態>
本実施の形態は、第8の実施の形態に係る乱数発生装置におけるカウンタ74の代わりにM系列生成部2を変形してカウンタ機能を追加した乱数発生装置に関する。
図20は、本発明の第9の実施の形態に係る乱数発生装置におけるリング発振器のテスト方法を説明するための乱数発生装置の概略図である。
同図を参照して、乱数発生装置は、第8の実施の形態に係る乱数発生装置に対して、カウンタ74を備えず、また、M系列生成部2の代わりにM系列生成部76を備える。セレクタ73は、図示しない制御信号生成部から受けたM系列シフト信号またはリング発振器75の出力を選択してM系列生成部76へ出力する。
図21は、M系列生成部76の構成の概略図である。
同図を参照して、M系列生成部76は、セレクタ81と、M系列ロジック82と、カウンタロジック83と、セレクタ84と、レジスタ91とを含む。
M系列ロジック82は、レジスタ91間に配置される、M系列生成用の論理回路である。M系列ロジック82は、EXORゲート92またはORゲート94を含む回路か、または配線のみの回路かのいずれかである。
カウンタロジック83は、レジスタ91間に配置される、リング発振器75の出力のカウント用の論理回路であり、レジスタ91との組み合わせでカウンタ機能を実現する。
セレクタ81は、M系列カウンタ切り替え信号に基づいて、前段のM系列ロジック82の出力またはカウンタロジック83の出力を選択してレジスタ91へ出力する。
セレクタ84は、M系列カウンタ切り替え信号に基づいて、M系列生成用のクロック、すなわちM系列シフト信号、またはリング発振器75の出力を選択して各レジスタ91のクロック入力端子へ出力する。
レジスタ91は、セレクタ84の選択したデータをクロックとして使用し、このクロックのタイミングでセレクタ81の選択したデータを保持して次段のM系列ロジック82およびカウンタロジック83へ出力する。
リング発振器のテストが行なわれる場合には、M系列カウンタ切り替え信号に基づいて、セレクタ81はカウンタロジック83の出力を選択し、また、セレクタ84はリング発振器75の出力を選択する。この場合、M系列生成部76は、リング発振器75の出力をカウントする。
一方、乱数が生成される通常動作においては、M系列カウンタ切り替え信号に基づいて、セレクタ81はM系列ロジック82の出力を選択し、また、セレクタ84はM系列シフト信号を選択する。この場合、M系列生成部76はM系列を生成する。
その他の構成および動作は前述の第1の実施の形態に係る乱数発生装置等と同様である。
したがって、本実施の形態に係る乱数発生装置では、カウンタ74の代わりにM系列生成部76を変形してリング発振器75の出力をカウントすることができるため、第9の実施の形態に係る乱数発生装置と比べて回路規模を小さくすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第10の実施の形態>
本実施の形態は、図2に示すリング発振器11および2値化部12にリング発振器の縮退故障テスト機能を追加した乱数発生装置に関する。
図22は、本発明の第10の実施の形態に係る乱数発生装置におけるリング発振器111および2値化部12の構成を示す図である。
同図を参照して、リング発振器111は、リング発振器11に対して、さらに、セレクタ85〜86を含む。
セレクタ85は、テストデータ1またはインバータ21eの出力を選択してインバータ21bへ出力する。セレクタ86は、テストデータ2またはインバータ21cの出力を選択してインバータ21dへ出力する。レジスタ23a〜23cは、乱数発生装置の外部から読み出し可能である。
まず、図示しない制御信号生成部は、発振制御信号をHレベルにする。発振制御信号がHレベルになると、インバータ21c〜21eと、NANDゲート22aおよび22cとからなるループが形成される。
次に、乱数発生装置の外部に存在するCPUがCPUバス経由でテストデータ2をセレクタ86へ出力する。そうすると、テストデータ2に応じたデータがレジスタ23a〜23cに保持される。
そして、CPUがレジスタ23a〜23cの保持するデータをCPUバス経由で読み出し、乱数発生装置に入力するテストデータに対応する検証用のテストパターンと比較して、リング発振器111の合否を判定する。
次に、制御信号生成部5は、発振制御信号をHレベルからLレベルに変化させる。発振制御信号がHレベルからLレベルになると、インバータ21b〜21eと、NANDゲート22bおよび22cとからなるループが形成される。
そして、CPUがCPUバス経由でテストデータ1をセレクタ85へ出力する。そうすると、テストデータ1に応じたデータがレジスタ23a〜23cに保持される。
そして、CPUがレジスタ23a〜23cの保持するデータをCPUバス経由で読み出し、乱数発生装置に入力するテストデータに対応する検証用のテストパターンと比較して、リング発振器111の合否を判定する。なお、テストデータ1〜2は、シミュレーションで生成された、回路の故障を100%検出できるテストパターンであることが好ましい。
また、レジスタ23a〜23cは、乱数発生装置の外部から書き込み可能である。EXORゲート24の出力は外部から読み出し可能である。
CPUがCPUバス経由でテストデータ3をレジスタ23a〜23cに書き込む。そして、CPUは、EXORゲート24の出力をCPUバス経由で読み出し、レジスタ23a〜23cに書き込んだテストデータ3に対応する検証用のテストパターンと比較して、リング発振器111の合否を判定する。
その他の構成および動作は前述の第1の実施の形態に係る乱数発生装置等と同様である。
したがって、本実施の形態に係る乱数発生装置では、セレクタ85およびセレクタ86にテストデータ1〜2を入力することにより、リング発振器111の縮退故障、すなわち各ゲートの入力または出力が一定の論理レベルに固定されてしまう故障を検出することができる。
また、リング発振器111におけるセレクタ85およびセレクタ86の2箇所でテストデータの入力を行なうことにより、セレクタ85およびセレクタ86の入力部分についても縮退故障の検出を行なうことができる。
また、レジスタ23a〜23cは、乱数発生装置の外部から読み出し可能である。このような構成により、乱数発生装置に入力するテストデータに対応する検証用のテストパターンを乱数発生装置内で保持し、かつ、これらを比較してリング発振器111の合否を判定する回路を乱数発生装置内で備える必要がなくなり、回路規模を小さくすることができる。
また、レジスタ23a〜23cは、乱数発生装置の外部から書き込み可能であり、EXORゲート24の出力は外部から読み出し可能である。このような構成により、レジスタ23a〜23cおよびEXORゲート24の縮退故障の検出を行なうことができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第11の実施の形態>
本実施の形態は、図8に示すリング発振器13および2値化部12にリング発振器の縮退故障テスト機能を追加した乱数発生装置に関する。
図23は、本発明の第11の実施の形態に係る乱数発生装置におけるリング発振器113および2値化部12の構成を示す図である。
同図を参照して、リング発振器113は、リング発振器13に対して、さらに、セレクタ42a〜42fを含む。
セレクタ42a〜42fは、テストデータa〜fまたは発振制御信号を選択してNANDゲート41a〜41fへ出力する。
乱数発生装置の外部に存在するCPUがCPUバス経由でテストデータa〜fをセレクタ42a〜42fへ出力する。CPUは、セレクタ42a〜42fへのテストデータa〜fを個別に制御することができる。なお、テストデータa〜fは、シミュレーションで生成された、回路の故障を100%検出できるテストパターンであることが好ましい。
この乱数発生装置がリング発振器の縮退故障テストを行なう際の動作としては、たとえば、図示しない制御信号生成部が、発振制御信号をLレベルからHレベルに変化させる際に、セレクタ42a〜42fのうちの少なくともいずれか一つがテストデータを選択し、CPUが発振制御信号と同様の信号をテストデータとしてセレクタに出力する。そして、リング発振器113においてメタステーブルが発生するか否かをレジスタ23a〜23cまたはEXORゲート24の出力をCPUバス経由でCPUが読み出すことによって確認する。
その他の構成および動作は前述の第1の実施の形態に係る乱数発生装置等と同様である。
したがって、本実施の形態に係る乱数発生装置では、セレクタ42a〜42fにテストデータを入力することにより、リング発振器113の縮退故障を検出することができる。
また、リング発振器113の各NANDゲートにおいてテストデータを入力することにより、セレクタ42a〜42fの入力部分についても縮退故障の検出を行なうことができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
本発明の第1の実施の形態に係る乱数発生装置の構成を示す図である。 リング発振器11および2値化部12の構成を示す図である。 リング発振器11および2値化部12の動作を説明するためのタイムチャートである。 M系列生成部2の構成を示す図である。 制御信号生成部5の構成を示す図である。 リング発振器101の構成を示す図である。 本発明の第1の実施の形態に係る乱数発生装置における各信号のタイムチャートである。 リング発振器13の構成を示す図である。 制御信号生成部15の構成を示す図である。 本発明の第2の実施の形態に係る乱数発生装置における各信号のタイムチャートである。 制御信号生成部25の構成を示す図である。 制御信号生成部35の構成を示す図である。 本発明の第4の実施の形態に係る乱数発生装置における各信号のタイムチャートである。 本発明の第5の実施の形態に係る乱数発生装置の構成を示す図である。 本発明の第5の実施の形態に係る乱数発生装置における各信号のタイムチャートである。 本発明の第6の実施の形態に係る乱数発生装置における各信号のタイムチャートである。 本発明の第7の実施の形態に係る乱数発生装置の構成を示す図である。 CPUが本発明の第7の実施の形態に係る乱数発生装置を制御して乱数を生成する際の動作手順を定めたフローチャートである。 本発明の第8の実施の形態に係る乱数発生装置におけるリング発振器のテスト方法を説明するための乱数発生装置の概略図である。 本発明の第9の実施の形態に係る乱数発生装置におけるリング発振器のテスト方法を説明するための乱数発生装置の概略図である。 M系列生成部76の構成の概略図である。 本発明の第10の実施の形態に係る乱数発生装置におけるリング発振器111および2値化部12の構成を示す図である。 本発明の第11の実施の形態に係る乱数発生装置におけるリング発振器113および2値化部12の構成を示す図である。
符号の説明
1 乱数生成部、2,76 M系列生成部(擬似乱数生成部)、3,24,92 EXORゲート、4 乱数格納部、5,15,25,35,45,55 制御信号生成部、6 メタステーブル消滅検知器、11,13 リング発振器(乱数用発振器)、101 リング発振器(クロック用発振器)、12 2値化部、21a〜21e,34a〜34c,35 インバータ、22a〜22c,41a〜41e NANDゲート、23a〜23c,31a〜31b,52a〜52c,61,71a〜71e,91 レジスタ、32a〜32b,33,62,93 ANDゲート、94 ORゲート、51 分周器、42a〜42f,73,81,84〜86 セレクタ、74 カウンタ、75,111,113 リング発振器、82 M系列ロジック、83 カウンタロジック、N21〜N23,N41〜N43 ノード。

Claims (20)

  1. 回路の出力が不安定な状態であるメタステーブルにおける前記回路の出力に基づいて乱数データを生成する乱数生成部と、
    前記乱数データを格納する乱数格納部と、
    前記メタステーブルの消滅後に前記乱数生成部から出力される前記乱数データを前記乱数格納部に格納させる制御を行なう制御部とを備える乱数発生装置。
  2. 前記乱数発生装置は、さらに、
    前記メタステーブルの消滅を検知する検知器を備え、
    前記制御部は、前記検知結果に基づいて前記制御を行なう請求項1記載の乱数発生装置。
  3. 前記検知結果は外部から読み出し可能である請求項2記載の乱数発生装置。
  4. 前記制御部は、
    所定の周期を有するクロックを分周する分周器を含み、前記分周されたクロックに基づいて前記制御を行なう請求項1記載の乱数発生装置。
  5. 前記制御部は、1個以上のレジスタを含み、外部からの前記レジスタに対する書き込みに基づいて前記制御を行なう請求項1記載の乱数発生装置。
  6. 前記乱数発生装置は、さらに、
    M系列を生成するM系列生成部と、
    前記M系列および前記乱数データの排他的論理和を出力するEXORゲートとを備え、
    前記乱数格納部は、前記排他的論理和を前記乱数データとして格納する請求項1記載の乱数発生装置。
  7. 前記M系列生成部は、
    M系列生成用の論理回路である複数個のM系列ロジック部と、
    前記乱数用発振器出力のカウント用の論理回路である複数個のカウントロジック部と、
    M系列生成用のクロックまたは前記乱数用発振器出力を選択する複数個の第1のセレクタと、
    前段の前記M系列ロジック部の出力または前段の前記カウントロジック部の出力を選択する複数個の第2のセレクタと、
    前記第1のセレクタの選択したデータをクロックとして使用し、前記クロックのタイミングで前記第2のセレクタの選択したデータを保持して次段の前記M系列ロジック部および次段の前記カウンタロジック部へ出力するレジスタとを含む請求項6記載の乱数発生装置。
  8. 前記乱数生成部は、
    前記メタステーブルを発生する乱数用発振器と、
    前記メタステーブルにおける前記乱数用発振器の出力に基づいて前記乱数データを生成する2値化部とを含む請求項1記載の乱数発生装置。
  9. 前記制御部は、さらに、1個以上のレジスタを含み、外部からの前記レジスタに対する書き込みに基づいて前記乱数用発振器において前記メタステーブルを発生させる制御を行なう請求項8記載の乱数発生装置。
  10. 前記乱数発生装置は、さらに、
    前記乱数用発振器の出力をカウントするカウンタを備える請求項8記載の乱数発生装置。
  11. 前記乱数用発振器の出力は外部へ出力可能である請求項8記載の乱数発生装置。
  12. 前記乱数用発振器は、
    ループ状に接続された複数個の遅延回路と、
    第1の入力テストデータまたは前記遅延回路の出力を選択する第3のセレクタと、
    第2の入力テストデータ、または前記第3のセレクタに出力が接続される前記遅延回路とは異なる前記遅延回路の出力を選択する第4のセレクタとを含む請求項8記載の乱数発生装置。
  13. 前記2値化部は、前記遅延回路の出力を保持し、前記保持したデータが外部から読み出し可能であるレジスタを含む請求項12記載の乱数発生装置。
  14. 前記2値化部は、
    前記メタステーブルにおけるパルス信号が前記乱数用発振器の前記各遅延回路を通過する回数をそれぞれカウントする複数個のレジスタと、
    前記各カウント結果の排他的論理和を出力するEXORゲートとを含み、
    前記レジスタは外部から書き込み可能であり、前記EXORゲートの出力は外部から読み出し可能である請求項8記載の乱数発生装置。
  15. 前記乱数用発振器は、
    ループ状に接続された複数個の遅延回路と、
    前記遅延回路に対応して配置される複数個の第5のセレクタとを含み、
    前記遅延回路は前段の前記遅延回路の出力および前記第5のセレクタの出力を入力し、
    前記第5のセレクタは、前記メタステーブルを発生するための制御信号または第3の入力テストデータを前記遅延回路へ出力する請求項8記載の乱数発生装置。
  16. 前記乱数発生装置は、さらに、クロックを生成するクロック用発振器を備え、
    前記制御部は、前記クロック用発振器で生成されるクロックに基づいて前記制御を行なう請求項1記載の乱数発生装置。
  17. 前記乱数発生装置は、さらに、
    M系列を生成するM系列生成部と、
    前記M系列および前記乱数データの排他的論理和を出力するEXORゲートとを備え、
    前記乱数格納部は、前記排他的論理和を前記乱数データとして格納し、
    前記M系列生成部は、
    M系列生成用の論理回路である複数個のM系列ロジック部と、
    前記クロック用発振器出力のカウント用の論理回路である複数個のカウントロジック部と、
    M系列生成用のクロックまたは前記クロック用発振器出力を選択する複数個の第1のセレクタと、
    前段の前記M系列ロジック部の出力または前段の前記カウントロジック部の出力を選択する複数個の第2のセレクタと、
    前記第1のセレクタの選択したデータをクロックとして使用し、前記クロックのタイミングで前記第2のセレクタの選択したデータを保持して次段の前記M系列ロジック部および次段の前記カウンタロジック部へ出力するレジスタとを含む請求項16記載の乱数発生装置。
  18. 前記乱数発生装置は、さらに、
    前記クロック用発振器の出力をカウントするカウンタを備える請求項16記載の乱数発生装置。
  19. 前記クロック用発振器の出力は外部へ出力可能である請求項16記載の乱数発生装置。
  20. 回路の出力が不安定な状態であるメタステーブルにおける前記回路の出力に基づいて乱数データを生成する乱数生成部と、
    前記乱数データを格納する乱数格納部と、
    前記メタステーブルの消滅を検知する検知器と、
    前記検知器が前記メタステーブルの発生から所定時間内に前記メタステーブルの消滅を検知した場合には前記メタステーブルの消滅後に、または前記所定時間が経過しても前記検知器が前記メタステーブルの消滅を検知しない場合には前記所定時間経過後に、前記乱数生成部から出力される前記乱数データを前記乱数格納部に格納させる制御を行なう制御部とを備える乱数発生装置。
JP2005219246A 2005-07-28 2005-07-28 乱数発生装置 Expired - Fee Related JP4471901B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005219246A JP4471901B2 (ja) 2005-07-28 2005-07-28 乱数発生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005219246A JP4471901B2 (ja) 2005-07-28 2005-07-28 乱数発生装置

Publications (2)

Publication Number Publication Date
JP2007034836A true JP2007034836A (ja) 2007-02-08
JP4471901B2 JP4471901B2 (ja) 2010-06-02

Family

ID=37794000

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005219246A Expired - Fee Related JP4471901B2 (ja) 2005-07-28 2005-07-28 乱数発生装置

Country Status (1)

Country Link
JP (1) JP4471901B2 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010117846A (ja) * 2008-11-12 2010-05-27 Nippon Telegr & Teleph Corp <Ntt> 乱数生成回路
JP2010134248A (ja) * 2008-12-05 2010-06-17 Renesas Electronics Corp 半導体集積回路、データの暗号化装置、暗号鍵の生成装置、及び暗号鍵の生成方法
WO2011086688A1 (ja) * 2010-01-15 2011-07-21 三菱電機株式会社 ビット列生成装置及びビット列生成方法
JP2012129784A (ja) * 2010-12-15 2012-07-05 Nippon Telegr & Teleph Corp <Ntt> 乱数生成回路
CN102735985A (zh) * 2012-06-12 2012-10-17 福建睿矽微电子科技有限公司 随机电流型防探测装置及防探测方法
CN102759680A (zh) * 2012-06-12 2012-10-31 福建睿矽微电子科技有限公司 随机电压型防探测装置及防探测方法
US8527567B2 (en) 2009-11-30 2013-09-03 Samsung Electronics Co., Ltd. Random number generators having metastable seed signal generators therein
WO2015098207A1 (ja) * 2013-12-27 2015-07-02 株式会社東芝 Id生成装置、id生成方法、およびid生成システム
JP2016076741A (ja) * 2014-10-02 2016-05-12 Nttエレクトロニクス株式会社 ランダムデータ生成器及びデータ通信端末
JP2016128999A (ja) * 2015-01-09 2016-07-14 株式会社メガチップス 乱数生成装置及び乱数生成方法
JP2017527225A (ja) * 2014-09-14 2017-09-14 デュランド アレクサンドルDURAND Alexandre 暗号システムの再現可能なランダムシーケンス
CN115513145A (zh) * 2022-11-17 2022-12-23 灿芯半导体(上海)股份有限公司 一种防窥探,防篡改,低功耗屏蔽罩

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010117846A (ja) * 2008-11-12 2010-05-27 Nippon Telegr & Teleph Corp <Ntt> 乱数生成回路
JP2010134248A (ja) * 2008-12-05 2010-06-17 Renesas Electronics Corp 半導体集積回路、データの暗号化装置、暗号鍵の生成装置、及び暗号鍵の生成方法
US8527567B2 (en) 2009-11-30 2013-09-03 Samsung Electronics Co., Ltd. Random number generators having metastable seed signal generators therein
WO2011086688A1 (ja) * 2010-01-15 2011-07-21 三菱電機株式会社 ビット列生成装置及びビット列生成方法
US9031232B2 (en) 2010-01-15 2015-05-12 Mitsubishi Electric Corporation Bit sequence generation apparatus and bit sequence generation method
JP2012129784A (ja) * 2010-12-15 2012-07-05 Nippon Telegr & Teleph Corp <Ntt> 乱数生成回路
CN102759680B (zh) * 2012-06-12 2015-06-24 福建睿矽微电子科技有限公司 随机电压型防探测装置及防探测方法
CN102759680A (zh) * 2012-06-12 2012-10-31 福建睿矽微电子科技有限公司 随机电压型防探测装置及防探测方法
CN102735985A (zh) * 2012-06-12 2012-10-17 福建睿矽微电子科技有限公司 随机电流型防探测装置及防探测方法
WO2015098207A1 (ja) * 2013-12-27 2015-07-02 株式会社東芝 Id生成装置、id生成方法、およびid生成システム
JP2015127757A (ja) * 2013-12-27 2015-07-09 株式会社東芝 Id生成装置、id生成方法、およびid生成システム
JP2017527225A (ja) * 2014-09-14 2017-09-14 デュランド アレクサンドルDURAND Alexandre 暗号システムの再現可能なランダムシーケンス
JP2016076741A (ja) * 2014-10-02 2016-05-12 Nttエレクトロニクス株式会社 ランダムデータ生成器及びデータ通信端末
JP2016128999A (ja) * 2015-01-09 2016-07-14 株式会社メガチップス 乱数生成装置及び乱数生成方法
CN115513145A (zh) * 2022-11-17 2022-12-23 灿芯半导体(上海)股份有限公司 一种防窥探,防篡改,低功耗屏蔽罩
CN115513145B (zh) * 2022-11-17 2023-03-10 灿芯半导体(上海)股份有限公司 一种防窥探,防篡改,低功耗屏蔽罩

Also Published As

Publication number Publication date
JP4471901B2 (ja) 2010-06-02

Similar Documents

Publication Publication Date Title
JP4471901B2 (ja) 乱数発生装置
US7424500B2 (en) Random number generator with ring oscillation circuit
US7376687B2 (en) Pseudo-random number generator
US7461312B2 (en) Digital signature generation for hardware functional test
US6065029A (en) Method and system for providing a random number generator
JP4806631B2 (ja) タイミング発生器および半導体試験装置
JP2007164434A (ja) 乱数検定回路
CN109256172B (zh) 包括检测时钟样式生成器的存储器设备
JP2005249969A (ja) 乱数検査回路、乱数生成回路、半導体集積装置、icカードおよび情報端末機器
US9983262B1 (en) Built-in self test controller for a random number generator core
US9836280B2 (en) Arrangement and method for checking the entropy of a random number sequence
JP2010287860A (ja) 半導体集積回路装置
US20210279391A1 (en) Semiconductor integrated circuit, circuit designing apparatus, and circuit designing method
JP5381001B2 (ja) 半導体集積回路及び半導体集積回路の試験方法
US7668893B2 (en) Data generator having linear feedback shift registers for generating data pattern in forward and reverse orders
US20070150531A1 (en) Apparatus and method for generating random number using digital logic
JP2023553348A (ja) 乱数生成
US20150019605A1 (en) Method for assessing an output of a random number generator
JP4724774B2 (ja) 半導体回路装置、メモリテスト回路及び半導体回路装置の試験方法
JP2008128795A (ja) 半導体集積回路
JP2017173068A (ja) 試験回路
JP7312973B2 (ja) 乱数発生器
JP2010206603A (ja) 遅延発生装置及びicテスタ
JP3543399B2 (ja) 検査機能付半導体装置およびその自己検査方式
JP2004040037A (ja) 半導体集積回路の検査装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100212

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100223

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100302

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130312

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130312

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130312

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140312

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees