JP2017173068A - 試験回路 - Google Patents
試験回路 Download PDFInfo
- Publication number
- JP2017173068A JP2017173068A JP2016057991A JP2016057991A JP2017173068A JP 2017173068 A JP2017173068 A JP 2017173068A JP 2016057991 A JP2016057991 A JP 2016057991A JP 2016057991 A JP2016057991 A JP 2016057991A JP 2017173068 A JP2017173068 A JP 2017173068A
- Authority
- JP
- Japan
- Prior art keywords
- test
- shift register
- bit
- original data
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
Abstract
【課題】擬似乱数を生成するための元データに対して試験を行うことが可能な、試験回路を提供する。【解決手段】クロック信号に基づいて、擬似乱数を生成するための元となる元データに対して試験を行う試験部と、クロック信号に基づいて、元データに対する試験の結果を判定するタイミングを検出する判定タイミング検出部と、を備え、試験部は、元データにおける各ビットに含まれる所定の値の割合に関する試験と、元データにおける各ビットの値の連続数に関する試験との、一方または双方を行う、試験回路が、提供される。【選択図】図1
Description
本発明は、試験回路に関する。
生成された物理乱数の乱数性を試験する技術が開発されている。生成された物理乱数の乱数性を試験する回路を備える物理乱数生成装置に係る技術としては、例えば特許文献1に記載の技術が挙げられる。
例えば暗号化などのセキュリティに係る処理では、乱数が用いられる。ここで、セキュリティに係る処理に用いられる乱数は、よりセキュリティ性を高めるために、理想的な乱数である真性乱数とみなせる乱数であることが望ましい。そのため、例えば、セキュリティに係る処理を行う、マイクロコンピュータなどを構成するプロセッサでは、ファームウェアなどのソフトウェアを実行することによって、定期的に、擬似乱数を生成するための元となるデータを試験し、試験済みの当該データから擬似乱数を生成することによって、真性乱数とみなせる乱数を取得している。ここで、擬似乱数の生成は、例えば、DRBG(Deterministic Random Bit Generator)などの擬似乱数演算により行われる。以下では、上記擬似乱数を生成するための元となるデータを、「元データ」、または「エントロピーデータ」と示す場合がある。
しかしながら、ソフトウェアを実行することにより真性乱数とみなせる乱数を取得する場合には、元データを、ソフトウェアによる処理によって試験しなければならない。よって、ソフトウェアを実行することにより真性乱数とみなせる乱数を取得する場合、例えばマイクロコンピュータなどの回路規模が小さいときには、上記プロセッサにおける処理負荷が大きくなる恐れがある。
本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、擬似乱数を生成するための元データに対して試験を行うことが可能な、新規かつ改良された試験回路を提供することにある。
上記目的を達成するために、本発明の一の観点によれば、クロック信号に基づいて、擬似乱数を生成するための元となる元データに対して試験を行う試験部と、上記クロック信号に基づいて、上記元データに対する試験の結果を判定するタイミングを検出する判定タイミング検出部と、を備え、上記試験部は、上記元データにおける各ビットに含まれる所定の値の割合に関する試験と、上記元データにおける各ビットの値の連続数に関する試験との、一方または双方を行う、試験回路が、提供される。
かかる構成によって、擬似乱数を生成するための元データに対して試験を行うことができる。また、かかる構成によって、一定の時間間隔で取得される元データに対する試験を、試験回路にて行うことができるので、マイクロコンピュータなどを構成するプロセッサに負荷を与えることなく、擬似乱数を生成するための元データに対して試験を行うことが、可能となる。
また、上記試験部は、上記クロック信号に基づいて、上記元データを順次格納する第1シフトレジスタを備え、上記第1シフトレジスタに格納された上記元データに対して試験を行ってもよい。
また、上記割合に関する試験を行う場合、上記試験部は、上記第1シフトレジスタに格納された上記元データに対して、上記割合に関する試験を行う第1試験回路を備え、上記第1試験回路は、上記第1シフトレジスタに格納されている上記元データのうちの所定のビットの値が、上記所定の値である数のカウントを行う第1カウンタと、上記第1カウンタにおけるカウント数と、設定されている第1閾値とを比較する第1比較回路と、を備えていてもよい。
また、上記所定のビットは、上記第1シフトレジスタの最終段に格納されたデータに対応する最終ビットであってもよい。
また、上記第1カウンタは、上記クロック信号に基づいて上記所定のビットの値が上記所定の値である数のカウントを行ってもよい。
また、上記連続数に関する試験を行う場合、上記試験部は、上記第1シフトレジスタに格納された上記元データに対して、上記連続数に関する試験を行う第2試験回路を備え、上記第2試験回路は、上記第1シフトレジスタに格納されている上記元データのうちの、隣接する所定の2つのビットの値を比較する第2比較回路と、上記第2比較回路の比較結果に基づいて、上記元データにおける各ビットの値の連続数のカウントを行う第2カウンタと、上記第2カウンタにおけるカウント数と、設定されている第2閾値とを比較する第3比較回路と、を備えていてもよい。
また、上記隣接する所定の2つのビットは、上記第1シフトレジスタの最終段に格納されたデータに対応する最終ビット、および上記最終ビットに隣接するビットであってもよい。
また、上記第2カウンタは、上記クロック信号に基づいて上記連続数のカウントを行ってもよい。
また、上記判定タイミング検出部は、上記クロック信号に基づいてカウントを行う第3カウンタと、上記第3カウンタにおける所定のビットのデータを選択するセレクタと、上記セレクタにより選択されたデータを順次格納する第2シフトレジスタと、上記第2シフトレジスタに格納されているデータのうちの、隣接する所定の2つのビットの値を比較する第4比較回路と、を備えていてもよい。
また、上記第2シフトレジスタは、2ビットシフトレジスタであってもよい。
また、上記元データは、N(Nは、1以上の整数)ビットのデータストリームであってもよい。
本発明によれば、擬似乱数を生成するための元データに対して試験を行うことができる。
以下、添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
(本発明の実施形態に係る試験回路)
以下、本発明の実施形態に係る試験回路について、説明する。
以下、本発明の実施形態に係る試験回路について、説明する。
[1]本発明の実施形態に係る試験回路の構成の一例
図1は、本発明の実施形態に係る試験回路100の構成の一例を示すブロック図である。試験回路100は、例えば、試験部102と、判定タイミング検出部104とを備える。
図1は、本発明の実施形態に係る試験回路100の構成の一例を示すブロック図である。試験回路100は、例えば、試験部102と、判定タイミング検出部104とを備える。
試験部102には、エントロピーデータ(元データ)とクロック信号とが入力され、判定タイミング検出部104には、クロック信号が入力される。試験部102と判定タイミング検出部104とは、例えばハイレベルのクロック信号に基づき動作することによって、同期して動作する。また、例えばハイレベルのクロック信号に基づき動作することによって、試験部102では、エントロピーデータが一定の時間間隔で取得される。
ここで、本発明の実施形態に係るエントロピーデータとしては、例えば、“相異なるクロックを生成する、複数のクロックジェネレータ(後述する)により生成されたクロックを組み合わせることによって生成されたデータ”や、“ツェナダイオードやトランジスタなどの半導体素子(または、任意の半導体回路)により生じるノイズを示すノイズデータ”が、挙げられる。なお、本発明の実施形態に係るエントロピーデータは、上記に示す例に限られず、任意の乱数源から得られるデータであってもよい。
エントロピーデータとしては、例えば、N(Nは、1以上の整数)ビットのデータストリームが、挙げられる。以下では、説明の簡単化のために、エントロピーデータが、1ビットのデータストリームである場合を例に挙げる。
また、本発明の実施形態に係るクロック信号としては、例えば、水晶発振子などの源振から任意の周波数のクロック信号を生成するクロックジェネレータから出力される、クロック信号が挙げられる。エントロピーデータに係る複数のクロックジェネレータのうちの1つと、クロック信号に係るクロックジェネレータは、同一のクロックジェネレータであってもよいし、異なっていてもよい。なお、本発明の実施形態に係るクロック信号の発生源が、上記に示す例に限られないことは、言うまでもない。
[1−1]試験部102
試験部102は、入力されたクロック信号に基づいて、入力されたエントロピーデータに対して試験を行う。ここで、本発明の実施形態に係る試験とは、例えば、エントロピーデータが偏っているか否かを判定するための試験に該当する。
試験部102は、入力されたクロック信号に基づいて、入力されたエントロピーデータに対して試験を行う。ここで、本発明の実施形態に係る試験とは、例えば、エントロピーデータが偏っているか否かを判定するための試験に該当する。
より具体的には、試験部102は、本発明の実施形態に係る試験として、例えば、エントロピーデータにおける各ビットに含まれる所定の値の割合に関する試験(以下、「割合に関する試験」と示す場合がある。)と、エントロピーデータにおける各ビットの値の連続数に関する試験(以下、「連続数に関する試験」と示す場合がある。)との、一方または双方を、行う。
以下、試験部102が、割合に関する試験と、連続数に関する試験との双方を行う場合を例に挙げて、試験部102の構成の一例を説明する。
図2は、本発明の実施形態に係る試験回路100を構成する試験部102の回路構成の一例を示す説明図である。
試験部102は、例えば、シフトレジスタ110(第1シフトレジスタ)と、第1試験回路112と、第2試験回路114とを備える。試験部102では、シフトレジスタ110に格納されたエントロピーデータに対して試験が行われる。
[1−1−1]シフトレジスタ110
シフトレジスタ110は、クロック信号に基づいて、エントロピーデータを順次格納する。シフトレジスタ110としては、例えば、複数段のフリップフロップで構成される、SISO(Serial Input Serial Output)シフトレジスタが挙げられる。シフトレジスタ110が格納可能なデータのビット数としては、例えば、Mビット(Mは、2以上の整数。)が挙げられる。
シフトレジスタ110は、クロック信号に基づいて、エントロピーデータを順次格納する。シフトレジスタ110としては、例えば、複数段のフリップフロップで構成される、SISO(Serial Input Serial Output)シフトレジスタが挙げられる。シフトレジスタ110が格納可能なデータのビット数としては、例えば、Mビット(Mは、2以上の整数。)が挙げられる。
なお、シフトレジスタ110は、SISOシフトレジスタに限られない。例えば、シフトレジスタ110は、PIPO(Parallel Input Parallel Output)シフトレジスタや、SIPO(Serial Input Parallel Output)シフトレジスタなどの他の種類のシフトレジスタであってもよい。ここで、例えばシフトレジスタ110がSIPOシフトレジスタである場合には、シフトレジスタ110がSISOシフトレジスタである場合と比較して、シフトレジスタの並列数倍、早いクロック信号で処理が行われる必要がある。シフトレジスタ110がSIPOシフトレジスタである場合、例えば、シフトレジスタ110の前段に逓倍回路が設けられ、シフトレジスタ110には、例えば、逓倍回路によりシフトレジスタの並列数倍逓倍されたクロック信号が、入力される。以下では、シフトレジスタ110が、SISOシフトレジスタである場合を例に挙げる。
また、図示していないが、シフトレジスタ110から出力されるデータ(すなわち、エントロピーデータのうちの、第1試験回路112と第2試験回路114とにおいて試験済みのデータ。以下、同様とする。)は、例えば、シフトレジスタ110の後段に設けられるバッファレジスタなどの記録媒体(図示せず)に記憶される。なお、本発明の実施形態に係る試験回路は、シフトレジスタ110の後段に記録媒体が設けられず、“シフトレジスタ110から出力されるデータが、バッファレジスタなどに記録されずに失われる構成”をとることも可能である。
[1−1−2]第1試験回路112
第1試験回路112は、例えば、割合検知カウンタ120(第1カウンタ)と、比較回路122(第1比較回路)とを備え、シフトレジスタ110に格納されたエントロピーデータに対して、割合に関する試験を行う。
第1試験回路112は、例えば、割合検知カウンタ120(第1カウンタ)と、比較回路122(第1比較回路)とを備え、シフトレジスタ110に格納されたエントロピーデータに対して、割合に関する試験を行う。
割合検知カウンタ120は、シフトレジスタ110に格納されているエントロピーデータのうちの所定のビットの値が、所定の値である数のカウントを行う。割合検知カウンタ120がカウントを行う所定の値としては、例えば“1”が挙げられる。
ここで、割合検知カウンタ120がカウントを行う対象である、シフトレジスタ110における所定のビットとしては、例えば図2に示すように、シフトレジスタ110の最終段に格納されたデータに対応する最終ビットが挙げられる。以下では、シフトレジスタ110の最終段に格納されたデータに対応する最終ビットを、「シフトレジスタ110の最終ビット」と示す場合がある。
なお、本発明の実施形態に係るシフトレジスタ110における所定のビットは、上記に示す例に限られない。例えば、シフトレジスタ110における所定のビットは、シフトレジスタ110の1段目に格納されたデータに対応するビットであってもよく、また、シフトレジスタ110の任意の段に格納されたデータに対応するビットであってもよい。以下では、割合検知カウンタ120がカウントを行う対象である、シフトレジスタ110における所定のビットが、図2に示すようにシフトレジスタ110の最終ビットである場合を例に挙げる。
カウントを行う所定の値が“1”である場合、割合検知カウンタ120は、シフトレジスタ110における所定のビットの値が“1”であるときに、カウント数を1ずつ増やす。例えば割合検知カウンタ120は、シフトレジスタ110の最終ビット(所定のビット一例)の値が“1”であるときに、カウント数を1ずつ増やす。
割合検知カウンタ120におけるカウントは、クロック信号に基づいて行われる。よって、割合検知カウンタ120におけるカウントは、シフトレジスタ110におけるエントロピーデータの更新と同期することとなる。
比較回路122は、割合検知カウンタ120におけるカウント数と、設定されている割合検知カウンタ上限閾値(第1閾値)とを比較する。比較回路122は、例えば、ANDゲート、ORゲート、NOTゲートなどの基本論理ゲートを複数組み合わせることによって、実現することが可能である。
ここで、割合検知カウンタ上限閾値は、例えば、予め設定される固定値であってもよいし、セキュリティに係る処理において求められる乱数の精度などに基づいて適宜変更可能な、可変値であってもよい。
比較回路122は、割合検知カウンタ120におけるカウント数と、割合検知カウンタ上限閾値とを比較した結果を示すデータを出力する。比較回路122から出力される比較した結果を示すデータが、割合に関する試験の試験結果を示すデータに該当する。
例えば、“比較回路122から出力される比較した結果を示すデータが、割合検知カウンタ上限閾値が割合検知カウンタ120におけるカウント数よりも大きいことを示している場合(または、割合検知カウンタ上限閾値が割合検知カウンタ120におけるカウント数以上であることを示している場合)”は、割合に関する試験が行われたエントロピーデータが、割合に関して偏っていない可能性が高いこと(割合に関して十分にばらついていること)を示している。つまり、上記の場合には、割合に関する試験が行われたエントロピーデータは、十分な精度の擬似乱数を得ることができる可能性が高いデータであるといえる。
また、“比較回路122から出力される比較した結果を示すデータが、割合検知カウンタ上限閾値が割合検知カウンタ120におけるカウント数以下であることを示している場合(または、割合検知カウンタ上限閾値が割合検知カウンタ120におけるカウント数より小さいことを示している場合)”は、割合に関する試験が行われたエントロピーデータが、割合に関して偏っている可能性が高いこと(割合に関して十分にばらついていないこと)を示している。つまり、上記の場合には、割合に関する試験が行われたエントロピーデータは、十分な精度の擬似乱数を得ることができない可能性が高いデータであるといえる。
第1試験回路112では、例えば上記のように、割合検知カウンタ120および比較回路122によって、シフトレジスタ110に格納されたエントロピーデータに対して、割合に関する試験が行われる。
[1−1−3]第2試験回路114
第2試験回路114は、例えば、比較回路130(第2比較回路)と、連続性検知カウンタ132(第2カウンタ)と、比較回路134(第3比較回路)とを備え、シフトレジスタ110に格納されたエントロピーデータに対して、連続数に関する試験を行う。
第2試験回路114は、例えば、比較回路130(第2比較回路)と、連続性検知カウンタ132(第2カウンタ)と、比較回路134(第3比較回路)とを備え、シフトレジスタ110に格納されたエントロピーデータに対して、連続数に関する試験を行う。
比較回路130は、シフトレジスタ110に格納されているエントロピーデータのうちの、隣接する所定の2つのビットの値を比較する。比較回路130は、例えば、ANDゲート、ORゲート、NOTゲートなどの基本論理ゲートを複数組み合わせることによって、実現することが可能である。
ここで、比較回路130が比較を行う対象である、シフトレジスタ110における隣接する所定の2つのビットとしては、例えば図2に示すように、“シフトレジスタ110の最終ビット、および最終ビットに隣接するビット”が挙げられる。
なお、本発明の実施形態に係るシフトレジスタ110における、隣接する所定の2つのビットは、上記に示す例に限られない。例えば、シフトレジスタ110における隣接する所定の2つのビットは、“シフトレジスタ110の1段目に格納されたデータに対応するビット、およびシフトレジスタ110の2段目に格納されたデータに対応するビット”であってもよい。また、シフトレジスタ110における隣接する所定の2つのビットは、例えば、“シフトレジスタ110の任意の段に格納されたデータに対応するビット、および当該任意の段に隣接する段に格納されたデータに対応するビット”など、シフトレジスタ110における隣接する任意の2つの段に格納されたデータに対応するビットであってもよい。以下では、比較回路130が比較を行う対象である、隣接する所定の2つのビットが、図2に示すように“シフトレジスタ110の最終ビット、および最終ビットに隣接するビット”である場合を例に挙げる。
連続性検知カウンタ132は、比較回路130の比較結果に基づいて、エントロピーデータにおける各ビットの値の連続数のカウントを行う。連続性検知カウンタ132は、比較回路130の比較結果が“最終ビットの値と、最終ビットに隣接するビットの値とが、同一であること”を示す場合に、カウント数を1ずつ増やす。
連続性検知カウンタ132におけるカウントは、クロック信号に基づいて行われる。よって、連続性検知カウンタ132におけるカウントは、シフトレジスタ110におけるエントロピーデータの更新と同期することとなる。
比較回路134は、連続性検知カウンタ132おけるカウント数と、設定されている連続性検知カウンタ上限閾値(第2閾値)とを比較する。比較回路134は、例えば、ANDゲート、ORゲート、NOTゲートなどの基本論理ゲートを複数組み合わせることによって、実現することが可能である。
ここで、連続性検知カウンタ上限閾値は、例えば、予め設定される固定値であってもよいし、セキュリティに係る処理において求められる乱数の精度などに基づいて適宜変更可能な、可変値であってもよい。
比較回路134は、連続性検知カウンタ132におけるカウント数と、連続性検知カウンタ上限閾値とを比較した結果を示すデータを出力する。比較回路134から出力される比較した結果を示すデータが、連続性に関する試験の試験結果を示すデータに該当する。
例えば、“比較回路134から出力される比較した結果を示すデータが、連続性検知カウンタ上限閾値が連続性検知カウンタ132におけるカウント数よりも大きいことを示している場合(または、連続性検知カウンタ上限閾値が連続性検知カウンタ132におけるカウント数以上であることを示している場合)”は、連続性に関する試験が行われたエントロピーデータが、連続性に関して偏っていない可能性が高いこと(連続性に関して十分にばらついていること)を示している。つまり、上記の場合には、連続性に関する試験が行われたエントロピーデータは、十分な精度の擬似乱数を得ることができる可能性が高いデータであるといえる。
また、“比較回路134から出力される比較した結果を示すデータが、連続性検知カウンタ上限閾値が連続性検知カウンタ132におけるカウント数以下であることを示している場合(または、連続性検知カウンタ上限閾値が連続性検知カウンタ132におけるカウント数より小さいことを示している場合)”は、連続性に関する試験が行われたエントロピーデータが、連続性に関して偏っている可能性が高いこと(連続性に関して十分にばらついていないこと)を示している。つまり、上記の場合には、連続性に関する試験が行われたエントロピーデータは、十分な精度の擬似乱数を得ることができない可能性が高いデータであるといえる。
第2試験回路114では、例えば上記のように、比較回路130、連続性検知カウンタ132、および比較回路134によって、シフトレジスタ110に格納されたエントロピーデータに対して、連続性に関する試験が行われる。
試験部102は、例えば図2に示す構成によって、クロック信号に基づいて、シフトレジスタ110に格納されたエントロピーデータに対して、割合に関する試験、および連続性に関する試験を行う。
なお、本発明の実施形態に係る試験回路100が備える試験部102の構成は、図2に示す例に限られない。
例えば、試験部102は、第1試験回路112と第2試験回路114との一方を備えない構成、すなわち、割合に関する試験と連続性に関する試験とのうちの一方を行う構成をとることも、可能である。
また、試験部102は、判定タイミング検出部104から出力されるタイミング信号(後述する)に基づいて、割合検知カウンタ120および連続性検知カウンタ132それぞれを初期化する機能を有していてもよい。試験部102は、例えば、タイミング信号(後述する)が検出された場合に、割合検知カウンタ120および連続性検知カウンタ132それぞれを初期化する。なお、上記割合検知カウンタ120および連続性検知カウンタ132それぞれを初期化する機能は、本発明の実施形態に係る試験回路を構成する他の構成要素によって行われてもよい。
[1−2]判定タイミング検出部104
判定タイミング検出部104は、入力されたクロック信号に基づいて、エントロピーデータに対する試験の結果を判定するタイミングを検出する。判定タイミング検出部104は、判定するタイミングが検出された場合に、例えば1ショットパルスのタイミング信号を、出力する。
判定タイミング検出部104は、入力されたクロック信号に基づいて、エントロピーデータに対する試験の結果を判定するタイミングを検出する。判定タイミング検出部104は、判定するタイミングが検出された場合に、例えば1ショットパルスのタイミング信号を、出力する。
図3は、本発明の実施形態に係る試験回路100を構成する判定タイミング検出部104の回路構成の一例を示す説明図である。
判定タイミング検出部104は、例えば、カウンタ140(第3カウンタ)と、セレクタ142と、シフトレジスタ144(第2シフトレジスタ)と、比較回路146(第4比較回路)とを備える。
カウンタ140は、クロック信号に基づいてカウントを行う。カウンタ140は、例えばハイレベルのクロック信号が入力されるごとに、カウント数を1ずつ増やす。
セレクタ142は、カウンタ140における複数のビットのデータを入力とし、入力されたデータのうちの選択された所定のビットのデータを出力する。図3では、セレクタ142が、5入力1出力のセレクタ回路で構成される例を示している。セレクタ142において選択される所定のビットは、例えば、予め設定された固定のビットであってもよいし、カウンタ140のカウント数に応じて動的に設定されてもよい。
シフトレジスタ144は、例えばクロック信号に基づいて、セレクタ142から出力されるデータを順次格納する。シフトレジスタ144としては、例えば、2ビットのSISOシフトレジスタなどの2ビットシフトレジスタが挙げられる。また、シフトレジスタ144が格納可能なデータのビット数は、3ビット以上であってもよい。以下では、シフトレジスタ144が、2ビットのSISOシフトレジスタである場合を例に挙げる。
比較回路146は、シフトレジスタ144に格納されているデータのうちの、隣接する所定の2つのビットの値を比較する。そして、比較回路146は、シフトレジスタ144における隣接する所定の2つのビットの値が異なる場合に、1ショットパルスのタイミング信号を出力する。比較回路146は、例えば、ANDゲート、ORゲート、NOTゲートなどの基本論理ゲートを複数組み合わせることによって、実現することが可能である。
ここで、比較回路146が比較を行う対象である、シフトレジスタ144における隣接する所定の2つのビットとしては、例えば図3に示すように、“シフトレジスタ144の最終ビット、および最終ビットに隣接するビット”が挙げられる。
なお、本発明の実施形態に係るシフトレジスタ144における、隣接する所定の2つのビットは、上記に示す例に限られない。例えば、シフトレジスタ144が3ビット以上のシフトレジスタである場合、シフトレジスタ144における隣接する所定の2つのビットは、“シフトレジスタ144の1段目に格納されたデータに対応するビット、およびシフトレジスタ144の2段目に格納されたデータに対応するビット”であってもよい。また、シフトレジスタ144が3ビット以上のシフトレジスタである場合、シフトレジスタ144における隣接する所定の2つのビットは、例えば、“シフトレジスタ144の任意の段に格納されたデータに対応するビット、および当該任意の段に隣接する段に格納されたデータに対応するビット”など、シフトレジスタ144における隣接する任意の2つの段に格納されたデータに対応するビットであってもよい。
具体例を挙げると、比較回路146は、“セレクタ142から出力されるデータが、0から1に変化する場合(Verilog−HDR表記で表すと、「1’b0」から「1’b1」に変化する場合)”、または、“セレクタ142から出力されるデータが、1から0に変化する場合(Verilog−HDR表記で表すと、「1’b1」から「1’b0」に変化する場合)”に、1ショットパルスのタイミング信号を出力する。
判定タイミング検出部104では、例えば上記のように、カウンタ140、セレクタ142、シフトレジスタ144、および比較回路146によって、タイミングの検出結果を示す1ショットパルスのタイミング信号が、出力される。
判定タイミング検出部104は、例えば図3に示す構成によって、クロック信号に基づいて、エントロピーデータに対する試験の結果を判定するタイミングを検出する。
なお、本発明の実施形態に係る試験回路100が備える判定タイミング検出部104の構成は、図3に示す例に限られない。
例えば、判定タイミング検出部104は、シフトレジスタ144および比較回路146の代わりに、セレクタ142から出力されるデータの変化に基づき1ショットパルスのタイミング信号を出力することが可能な、任意の1ショットパルス回路を備える構成をとることが、可能である。
また、判定タイミング検出部104は、タイミング信号に基づいて、カウンタ140を初期化する機能を有していてもよい。判定タイミング検出部104は、例えば、タイミング信号(後述する)が出力された場合に、カウンタ140を初期化する。なお、上記カウンタ140を初期化する機能は、本発明の実施形態に係る試験回路を構成する他の構成要素によって行われてもよい。
試験回路100は、例えば図1に示す構成によって、クロック信号に基づいてエントロピーデータに対する試験を実行し、かつ、クロック信号に基づいてエントロピーデータに対する試験結果を判定するタイミングを検出する。
したがって、例えば図1に示す構成を有する試験回路100によって、エントロピーデータ(元データ)に対して試験を行うことが可能となる。
また、試験回路100は、クロック信号に基づいて、エントロピーデータに対する試験の実行と、エントロピーデータに対する試験結果を判定するタイミングの検出とを、同期して行う。よって、試験回路100により、クロック同期による高速処理を実現することが可能である。
さらに、試験回路100は、図2、図3に示すように、小規模な回路構成によって、エントロピーデータに対する試験の実行と、エントロピーデータに対する試験結果を判定するタイミングの検出とを、行うことができる。
なお、本発明の実施形態に係る試験回路の構成は、図1に示す例に限られない。
例えば、本発明の実施形態に係る試験回路は、試験結果を判定する判定回路(図示せず)を、さらに備えていてもよい。
判定回路(図示せず)は、試験部102における試験結果(エントロピーデータに対する試験結果)と、判定タイミング検出部104における試験結果を判定するタイミングの検出結果とに基づいて、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が得られたか否かを判定する。
より具体的には、判定回路(図示せず)は、例えば、判定タイミング検出部104から出力されるタイミング信号が検出されたときに、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が得られたか否かを判定する。
また、判定回路(図示せず)は、例えば、試験部102における試験結果に基づいて、下記の条件1および条件2の2つの条件を満たしていると判定された場合に、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が得られたと、判定する。
・条件1:“試験回路100から出力される試験結果を示すデータが、割合に関して十分にばらついており、かつ、連続性に関して十分にばらついていること”を、示すこと
・条件2:試験回路100から出力されるタイミング信号が検出されたこと
・条件1:“試験回路100から出力される試験結果を示すデータが、割合に関して十分にばらついており、かつ、連続性に関して十分にばらついていること”を、示すこと
・条件2:試験回路100から出力されるタイミング信号が検出されたこと
なお、上記条件1は、“試験回路100から出力される試験結果を示すデータが、割合に関して十分にばらついていること、または、連続性に関して十分にばらついていること”であってもよい。
また、本発明の実施形態に係る試験回路は、例えば、判定回路(図示せず)に加えて、通知制御回路(図示せず)を、さらに備えることも可能である。通知制御回路(図示せず)は、例えば、試験回路の外部のデバイス(または外部の回路。以下、同様とする。)に対する“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”の取得に係る通知を制御する。なお、本発明の実施形態に係る試験回路において、判定回路(図示せず)と通知制御回路(図示せず)とは、同一の回路であってもよいし、異なる回路であってもよい。
取得に係る通知の対象となる外部のデバイスとしては、例えば、ファームウェアなどのソフトウェアを実行するプロセッサなどの、擬似乱数を生成して、擬似乱数を利用する処理を行うデバイス(または回路)が、挙げられる。
通知制御回路(図示せず)は、例えば、下記の(a)に示す処理、または、下記の(b)に示す処理を行うことによって、取得に係る通知を制御する。
(a)通知制御に係る処理の第1の例
通知制御回路(図示せず)は、上記判定回路(図示せず)における判定結果に基づいて、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”の取得状態を示すデータを、更新する。
通知制御回路(図示せず)は、上記判定回路(図示せず)における判定結果に基づいて、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”の取得状態を示すデータを、更新する。
ここで、本発明の実施形態に係る取得状態を示すデータとしては、例えば、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されているか否かを、0または1の値で表すフラグが、挙げられる。
例えば、上記フラグの値が0の場合、フラグは、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されていないこと(または、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されていること)を、示す。また、例えば、上記フラグの値が1の場合、フラグは、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されていること(または、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されていないこと)を、示す。
上記取得状態を示すデータは、例えば、通知レジスタに格納される。本発明の実施形態に係る通知レジスタとは、例えば、擬似乱数を生成して、擬似乱数を利用する処理を行う外部のデバイスなどの、外部のデバイスによって参照される記録媒体である。
よって、通知制御回路(図示せず)が、上記判定回路(図示せず)における判定結果に基づいて、通知レジスタに格納されるデータを更新することによって、外部のデバイスは、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されているか否かを認識することができる。
また、通知レジスタを参照することによって、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されていることを認識した外部のデバイスは、例えば下記のように、試験済みのエントロピーデータを取得する。
・外部のデバイスは、試験済みのエントロピーデータが記憶されるバッファレジスタなどの記録媒体(図示せず)から、試験済みのエントロピーデータを読み出す。
・外部のデバイスは、試験済みのエントロピーデータが記憶されるバッファレジスタなどの記録媒体(図示せず)から、試験済みのエントロピーデータを読み出す。
上記バッファレジスタなどの記録媒体(図示せず)への試験済みのエントロピーデータの記録は、例えば下記のように行われる。
・バッファレジスタなどの記録媒体(図示せず)が試験部102を構成するシフトレジスタ110の後段に設けられ、シフトレジスタ110から出力されるデータが当該記録媒体(図示せず)に順次記録される。
・判定回路(図示せず)において、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が得られたと判定された場合に、試験部102を構成するシフトレジスタ110に格納されているデータ(または、シフトレジスタ110に格納されているデータの一部)が、バッファレジスタなどの記録媒体(図示せず)に記録される。バッファレジスタなどの記録媒体(図示せず)へのシフトレジスタ110に格納されているデータの記録は、例えば、判定回路(図示せず)または通知制御部(図示せず)によって、行われる。
・バッファレジスタなどの記録媒体(図示せず)が試験部102を構成するシフトレジスタ110の後段に設けられ、シフトレジスタ110から出力されるデータが当該記録媒体(図示せず)に順次記録される。
・判定回路(図示せず)において、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が得られたと判定された場合に、試験部102を構成するシフトレジスタ110に格納されているデータ(または、シフトレジスタ110に格納されているデータの一部)が、バッファレジスタなどの記録媒体(図示せず)に記録される。バッファレジスタなどの記録媒体(図示せず)へのシフトレジスタ110に格納されているデータの記録は、例えば、判定回路(図示せず)または通知制御部(図示せず)によって、行われる。
ここで、バッファレジスタなどの記録媒体(図示せず)が試験部102を構成するシフトレジスタ110の後段に設けられる場合、当該記録媒体(図示せず)に記憶されるデータは、試験部102を構成する第1試験回路112と第2試験回路114とにおいて試験済みのデータに該当する。
また、例えば、判定回路(図示せず)または通知制御部(図示せず)によって、試験部102を構成するシフトレジスタ110に格納されているデータが、バッファレジスタなどの記録媒体(図示せず)に記録される場合には、上記のように、バッファレジスタなどの記録媒体(図示せず)へのシフトレジスタ110に格納されているデータの記録は、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が得られたと判定された場合に、行われる。ここで、例えば図2に示すように、シフトレジスタ110の最終ビットに対して試験が行われる場合、シフトレジスタ110に格納されているデータには、試験が行われていないデータが含まれうる。しかしながら、上記の場合においてバッファレジスタなどの記録媒体(図示せず)に記憶されるデータは、“試験部102を構成する第1試験回路112と第2試験回路114とにおいて試験が行われ場合に、十分な精度の擬似乱数を得ることができる可能性が高いデータ”である可能性が高い。そのため、上記の場合においてバッファレジスタなどの記録媒体(図示せず)に記憶されるデータは、十分な精度の擬似乱数を得ることができる可能性が高いデータとみなすことが可能、すなわち、試験済みのエントロピーデータとみなすことが可能である。
(b)通知制御に係る処理の第2の例
通知制御回路(図示せず)は、上記判定回路(図示せず)における判定結果に基づいて、試験済みのエントロピーデータを、擬似乱数を生成して、擬似乱数を利用する処理を行う外部のデバイスに対して送信する。通知制御回路(図示せず)は、例えば、信号線により有線で接続されている外部のデバイス、または、配線を無線化する任意の技術により無線で接続されている外部のデバイスに対して、試験済みのエントロピーデータを送信する。
通知制御回路(図示せず)は、上記判定回路(図示せず)における判定結果に基づいて、試験済みのエントロピーデータを、擬似乱数を生成して、擬似乱数を利用する処理を行う外部のデバイスに対して送信する。通知制御回路(図示せず)は、例えば、信号線により有線で接続されている外部のデバイス、または、配線を無線化する任意の技術により無線で接続されている外部のデバイスに対して、試験済みのエントロピーデータを送信する。
試験済みのエントロピーデータは、例えば上述したように、バッファレジスタなどの記録媒体(図示せず)に記憶される。
通知制御回路(図示せず)が、上記判定回路(図示せず)における判定結果に基づいて、試験済みのエントロピーデータを送信することによって、外部のデバイスは、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”を取得することができる。
上記のように、本発明の実施形態に係る試験回路が、上記判定回路(図示せず)および上記通知制御回路(図示せず)を備えることによって、擬似乱数を生成して、擬似乱数を利用する処理を行う外部のデバイスに、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”を取得させることが、可能となる。
なお、擬似乱数を生成して、擬似乱数を利用する処理を行う外部のデバイスに“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”を取得させることが可能な、本発明の実施形態に係る試験回路の構成は、上記に示す例に限られない。
例えば、本発明の実施形態に係る試験回路は、“試験部102から出力される試験結果(エントロピーデータに対する試験結果)を示すデータと、判定タイミング検出部104から出力されるタイミング信号(判定タイミング検出部104における試験結果を判定するタイミングの検出結果を示す信号)とを、擬似乱数を生成して、擬似乱数を利用する処理を行う外部のデバイスに対して送信する構成”であってもよい。
本発明の実施形態に係る試験回路が、試験部102から出力される試験結果を示すデータと、判定タイミング検出部104から出力されるタイミング信号とを、外部のデバイスに対して送信する構成である場合、外部のデバイスは、例えば、上記判定回路(図示せず)と同様の判定を行うことによって、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されているか否かを認識する。そして、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されていることを認識した外部のデバイスは、例えば上記(a)において示したように、試験済みのエントロピーデータを取得する。
[2]本発明の実施形態に係る試験回路の適用例
本発明の実施形態に係る試験回路は、例えば、プロセッサなどを含む集積回路(例えばマイクロコンピュータなど)を構成する回路に、適用することができる。また、本発明の実施形態に係る試験回路は、例えば、プロセッサなどを含む集積回路と有線または無線で接続されて用いられる外部の試験回路であってもよい。
本発明の実施形態に係る試験回路は、例えば、プロセッサなどを含む集積回路(例えばマイクロコンピュータなど)を構成する回路に、適用することができる。また、本発明の実施形態に係る試験回路は、例えば、プロセッサなどを含む集積回路と有線または無線で接続されて用いられる外部の試験回路であってもよい。
“本発明の実施形態に係る試験回路を含む集積回路”と、“プロセッサなどを含む集積回路、および当該集積回路に接続される本発明の実施形態に係る試験回路”とは、例えば、車などの車両や、携帯電話やスマートフォンなどの通信装置、タブレット型の装置、テレビ受像機、PC(Personal Computer)などのコンピュータなど、任意の装置またはシステムに用いることが、可能である。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
100 試験回路
102 試験部
104 判定タイミング検出部
110、144 シフトレジスタ
112 第1試験回路
114 第2試験回路
120 割合検知カウンタ
122、130、134、146 比較回路
132 連続性検知カウンタ
140 カウンタ
142 セレクタ
102 試験部
104 判定タイミング検出部
110、144 シフトレジスタ
112 第1試験回路
114 第2試験回路
120 割合検知カウンタ
122、130、134、146 比較回路
132 連続性検知カウンタ
140 カウンタ
142 セレクタ
Claims (11)
- クロック信号に基づいて、擬似乱数を生成するための元となる元データに対して試験を行う試験部と、
前記クロック信号に基づいて、前記元データに対する試験の結果を判定するタイミングを検出する判定タイミング検出部と、
を備え、
前記試験部は、前記元データにおける各ビットに含まれる所定の値の割合に関する試験と、前記元データにおける各ビットの値の連続数に関する試験との、一方または双方を行うことを特徴とする、試験回路。 - 前記試験部は、
前記クロック信号に基づいて、前記元データを順次格納する第1シフトレジスタを備え、
前記第1シフトレジスタに格納された前記元データに対して試験を行うことを特徴とする、請求項1に記載の試験回路。 - 前記割合に関する試験を行う場合、
前記試験部は、前記第1シフトレジスタに格納された前記元データに対して、前記割合に関する試験を行う第1試験回路を備え、
前記第1試験回路は、
前記第1シフトレジスタに格納されている前記元データのうちの所定のビットの値が、前記所定の値である数のカウントを行う第1カウンタと、
前記第1カウンタにおけるカウント数と、設定されている第1閾値とを比較する第1比較回路と、
を備えることを特徴とする、請求項2に記載の試験回路。 - 前記所定のビットは、前記第1シフトレジスタの最終段に格納されたデータに対応する最終ビットであることを特徴とする、請求項3に記載の試験回路。
- 前記第1カウンタは、前記クロック信号に基づいて前記所定のビットの値が前記所定の値である数のカウントを行うことを特徴とする、請求項3、または4に記載の試験回路。
- 前記連続数に関する試験を行う場合、
前記試験部は、前記第1シフトレジスタに格納された前記元データに対して、前記連続数に関する試験を行う第2試験回路を備え、
前記第2試験回路は、
前記第1シフトレジスタに格納されている前記元データのうちの、隣接する所定の2つのビットの値を比較する第2比較回路と、
前記第2比較回路の比較結果に基づいて、前記元データにおける各ビットの値の連続数のカウントを行う第2カウンタと、
前記第2カウンタにおけるカウント数と、設定されている第2閾値とを比較する第3比較回路と、
を備えることを特徴とする、請求項2〜4のいずれか1項に記載の試験回路。 - 前記隣接する所定の2つのビットは、前記第1シフトレジスタの最終段に格納されたデータに対応する最終ビット、および前記最終ビットに隣接するビットであることを特徴とする、請求項6に記載の試験回路。
- 前記第2カウンタは、前記クロック信号に基づいて前記連続数のカウントを行うことを特徴とする、請求項6、または7に記載の試験回路。
- 前記判定タイミング検出部は、
前記クロック信号に基づいてカウントを行う第3カウンタと、
前記第3カウンタにおける所定のビットのデータを選択するセレクタと、
前記セレクタにより選択されたデータを順次格納する第2シフトレジスタと、
前記第2シフトレジスタに格納されているデータのうちの、隣接する所定の2つのビットの値を比較する第4比較回路と、
を備えることを特徴とする、請求項1〜8のいずれか1項に記載の試験回路。 - 前記第2シフトレジスタは、2ビットシフトレジスタであることを特徴とする、請求項9に記載の試験回路。
- 前記元データは、N(Nは、1以上の整数)ビットのデータストリームであることを特徴とする、請求項1〜10のいずれか1項に記載の試験回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016057991A JP2017173068A (ja) | 2016-03-23 | 2016-03-23 | 試験回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016057991A JP2017173068A (ja) | 2016-03-23 | 2016-03-23 | 試験回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017173068A true JP2017173068A (ja) | 2017-09-28 |
Family
ID=59970866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016057991A Pending JP2017173068A (ja) | 2016-03-23 | 2016-03-23 | 試験回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017173068A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111209713A (zh) * | 2020-01-03 | 2020-05-29 | 长江存储科技有限责任公司 | 晶圆数据处理方法和装置 |
-
2016
- 2016-03-23 JP JP2016057991A patent/JP2017173068A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111209713A (zh) * | 2020-01-03 | 2020-05-29 | 长江存储科技有限责任公司 | 晶圆数据处理方法和装置 |
CN111209713B (zh) * | 2020-01-03 | 2023-08-18 | 长江存储科技有限责任公司 | 晶圆数据处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4893895B2 (ja) | 乱数発生のための発振器ジッタの複数ビット・サンプリング | |
US9311051B2 (en) | Hardware random number generator | |
JP4471901B2 (ja) | 乱数発生装置 | |
US20160179472A1 (en) | Random number generation device and method for generating random number | |
US10146507B2 (en) | Randomness test apparatus and method for random number generator | |
US20130002274A1 (en) | Aging degradation diagnosis circuit and aging degradation diagnosis method for semiconductor integrated circuit | |
CN114076883B (zh) | 老化电路、芯片老化测试方法及芯片 | |
US8390313B2 (en) | Semiconductor integrated circuit device | |
US20140250160A1 (en) | Random number generator | |
CN103513955B (zh) | 用于产生随机数的方法和装置 | |
JP2007164434A (ja) | 乱数検定回路 | |
WO2018090596A1 (zh) | 一种检测安全芯片工作状态的方法及检测电路 | |
JP5670849B2 (ja) | 擬似乱数生成装置、および、擬似乱数生成方法 | |
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 | |
US20200278839A1 (en) | True Random Number Generator of a Field Programmable Gate Array | |
US11068589B2 (en) | Interference detecting ring oscillators | |
US10749510B2 (en) | Semiconductor device and control methods thereof | |
JP2017173068A (ja) | 試験回路 | |
US20150199174A1 (en) | Method for Checking an Output | |
Simka et al. | Model of a true random number generator aimed at cryptographic applications | |
Grujić et al. | Design principles for true random number generators for security applications | |
JP6563353B2 (ja) | アレイアンテナ装置、およびアレイアンテナ装置の異常検出装置 | |
US9506983B2 (en) | Chip authentication using scan chains | |
Hesselbarth et al. | Fast and reliable PUF response evaluation from unsettled bistable rings |