(57)【要約】【課題】擬似乱数を生成するための元データに対して試験を行うことが可能な、試験回路を提供する。【解決手段】クロック信号に基づいて、擬似乱数を生成するための元となる元データに対して試験を行う試験部と、クロック信号に基づいて、元データに対する試験の結果を判定するタイミングを検出する判定タイミング検出部と、を備え、試験部は、元データにおける各ビットに含まれる所定の値の割合に関する試験と、元データにおける各ビットの値の連続数に関する試験との、一方または双方を行う、試験回路が、提供される。【選択図】図１
2017173068.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号に基づいて、擬似乱数を生成するための元となる元データに対して試験を行う試験部と、
前記クロック信号に基づいて、前記元データに対する試験の結果を判定するタイミングを検出する判定タイミング検出部と、
を備え、
前記試験部は、前記元データにおける各ビットに含まれる所定の値の割合に関する試験と、前記元データにおける各ビットの値の連続数に関する試験との、一方または双方を行うことを特徴とする、試験回路。
【請求項２】
前記試験部は、
前記クロック信号に基づいて、前記元データを順次格納する第１シフトレジスタを備え、
前記第１シフトレジスタに格納された前記元データに対して試験を行うことを特徴とする、請求項１に記載の試験回路。
【請求項３】
前記割合に関する試験を行う場合、
前記試験部は、前記第１シフトレジスタに格納された前記元データに対して、前記割合に関する試験を行う第１試験回路を備え、
前記第１試験回路は、
前記第１シフトレジスタに格納されている前記元データのうちの所定のビットの値が、前記所定の値である数のカウントを行う第１カウンタと、
前記第１カウンタにおけるカウント数と、設定されている第１閾値とを比較する第１比較回路と、
を備えることを特徴とする、請求項２に記載の試験回路。
【請求項４】
前記所定のビットは、前記第１シフトレジスタの最終段に格納されたデータに対応する最終ビットであることを特徴とする、請求項３に記載の試験回路。
【請求項５】
前記第１カウンタは、前記クロック信号に基づいて前記所定のビットの値が前記所定の値である数のカウントを行うことを特徴とする、請求項３、または４に記載の試験回路。
【請求項６】
前記連続数に関する試験を行う場合、
前記試験部は、前記第１シフトレジスタに格納された前記元データに対して、前記連続数に関する試験を行う第２試験回路を備え、
前記第２試験回路は、
前記第１シフトレジスタに格納されている前記元データのうちの、隣接する所定の２つのビットの値を比較する第２比較回路と、
前記第２比較回路の比較結果に基づいて、前記元データにおける各ビットの値の連続数のカウントを行う第２カウンタと、
前記第２カウンタにおけるカウント数と、設定されている第２閾値とを比較する第３比較回路と、
を備えることを特徴とする、請求項２〜４のいずれか１項に記載の試験回路。
【請求項７】
前記隣接する所定の２つのビットは、前記第１シフトレジスタの最終段に格納されたデータに対応する最終ビット、および前記最終ビットに隣接するビットであることを特徴とする、請求項６に記載の試験回路。
【請求項８】
前記第２カウンタは、前記クロック信号に基づいて前記連続数のカウントを行うことを特徴とする、請求項６、または７に記載の試験回路。
【請求項９】
前記判定タイミング検出部は、
前記クロック信号に基づいてカウントを行う第３カウンタと、
前記第３カウンタにおける所定のビットのデータを選択するセレクタと、
前記セレクタにより選択されたデータを順次格納する第２シフトレジスタと、
前記第２シフトレジスタに格納されているデータのうちの、隣接する所定の２つのビットの値を比較する第４比較回路と、
を備えることを特徴とする、請求項１〜８のいずれか１項に記載の試験回路。
【請求項１０】
前記第２シフトレジスタは、２ビットシフトレジスタであることを特徴とする、請求項９に記載の試験回路。
【請求項１１】
前記元データは、Ｎ（Ｎは、１以上の整数）ビットのデータストリームであることを特徴とする、請求項１〜１０のいずれか１項に記載の試験回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、試験回路に関する。
【背景技術】
【０００２】
生成された物理乱数の乱数性を試験する技術が開発されている。生成された物理乱数の乱数性を試験する回路を備える物理乱数生成装置に係る技術としては、例えば特許文献１に記載の技術が挙げられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１０２９８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば暗号化などのセキュリティに係る処理では、乱数が用いられる。ここで、セキュリティに係る処理に用いられる乱数は、よりセキュリティ性を高めるために、理想的な乱数である真性乱数とみなせる乱数であることが望ましい。そのため、例えば、セキュリティに係る処理を行う、マイクロコンピュータなどを構成するプロセッサでは、ファームウェアなどのソフトウェアを実行することによって、定期的に、擬似乱数を生成するための元となるデータを試験し、試験済みの当該データから擬似乱数を生成することによって、真性乱数とみなせる乱数を取得している。ここで、擬似乱数の生成は、例えば、ＤＲＢＧ（Deterministic  Random  Bit  Generator）などの擬似乱数演算により行われる。以下では、上記擬似乱数を生成するための元となるデータを、「元データ」、または「エントロピーデータ」と示す場合がある。
【０００５】
しかしながら、ソフトウェアを実行することにより真性乱数とみなせる乱数を取得する場合には、元データを、ソフトウェアによる処理によって試験しなければならない。よって、ソフトウェアを実行することにより真性乱数とみなせる乱数を取得する場合、例えばマイクロコンピュータなどの回路規模が小さいときには、上記プロセッサにおける処理負荷が大きくなる恐れがある。
【０００６】
本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、擬似乱数を生成するための元データに対して試験を行うことが可能な、新規かつ改良された試験回路を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の一の観点によれば、クロック信号に基づいて、擬似乱数を生成するための元となる元データに対して試験を行う試験部と、上記クロック信号に基づいて、上記元データに対する試験の結果を判定するタイミングを検出する判定タイミング検出部と、を備え、上記試験部は、上記元データにおける各ビットに含まれる所定の値の割合に関する試験と、上記元データにおける各ビットの値の連続数に関する試験との、一方または双方を行う、試験回路が、提供される。
【０００８】
かかる構成によって、擬似乱数を生成するための元データに対して試験を行うことができる。また、かかる構成によって、一定の時間間隔で取得される元データに対する試験を、試験回路にて行うことができるので、マイクロコンピュータなどを構成するプロセッサに負荷を与えることなく、擬似乱数を生成するための元データに対して試験を行うことが、可能となる。
【０００９】
また、上記試験部は、上記クロック信号に基づいて、上記元データを順次格納する第１シフトレジスタを備え、上記第１シフトレジスタに格納された上記元データに対して試験を行ってもよい。
【００１０】
また、上記割合に関する試験を行う場合、上記試験部は、上記第１シフトレジスタに格納された上記元データに対して、上記割合に関する試験を行う第１試験回路を備え、上記第１試験回路は、上記第１シフトレジスタに格納されている上記元データのうちの所定のビットの値が、上記所定の値である数のカウントを行う第１カウンタと、上記第１カウンタにおけるカウント数と、設定されている第１閾値とを比較する第１比較回路と、を備えていてもよい。
【００１１】
また、上記所定のビットは、上記第１シフトレジスタの最終段に格納されたデータに対応する最終ビットであってもよい。
【００１２】
また、上記第１カウンタは、上記クロック信号に基づいて上記所定のビットの値が上記所定の値である数のカウントを行ってもよい。
【００１３】
また、上記連続数に関する試験を行う場合、上記試験部は、上記第１シフトレジスタに格納された上記元データに対して、上記連続数に関する試験を行う第２試験回路を備え、上記第２試験回路は、上記第１シフトレジスタに格納されている上記元データのうちの、隣接する所定の２つのビットの値を比較する第２比較回路と、上記第２比較回路の比較結果に基づいて、上記元データにおける各ビットの値の連続数のカウントを行う第２カウンタと、上記第２カウンタにおけるカウント数と、設定されている第２閾値とを比較する第３比較回路と、を備えていてもよい。
【００１４】
また、上記隣接する所定の２つのビットは、上記第１シフトレジスタの最終段に格納されたデータに対応する最終ビット、および上記最終ビットに隣接するビットであってもよい。
【００１５】
また、上記第２カウンタは、上記クロック信号に基づいて上記連続数のカウントを行ってもよい。
【００１６】
また、上記判定タイミング検出部は、上記クロック信号に基づいてカウントを行う第３カウンタと、上記第３カウンタにおける所定のビットのデータを選択するセレクタと、上記セレクタにより選択されたデータを順次格納する第２シフトレジスタと、上記第２シフトレジスタに格納されているデータのうちの、隣接する所定の２つのビットの値を比較する第４比較回路と、を備えていてもよい。
【００１７】
また、上記第２シフトレジスタは、２ビットシフトレジスタであってもよい。
【００１８】
また、上記元データは、Ｎ（Ｎは、１以上の整数）ビットのデータストリームであってもよい。
【発明の効果】
【００１９】
本発明によれば、擬似乱数を生成するための元データに対して試験を行うことができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態に係る試験回路の構成の一例を示すブロック図である。
【図２】本発明の実施形態に係る試験回路を構成する試験部の回路構成の一例を示す説明図である。
【図３】本発明の実施形態に係る試験回路を構成する判定タイミング検出部の回路構成の一例を示す説明図である。
【発明を実施するための形態】
【００２１】
以下、添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２２】
（本発明の実施形態に係る試験回路）
以下、本発明の実施形態に係る試験回路について、説明する。
【００２３】
［１］本発明の実施形態に係る試験回路の構成の一例
図１は、本発明の実施形態に係る試験回路１００の構成の一例を示すブロック図である。試験回路１００は、例えば、試験部１０２と、判定タイミング検出部１０４とを備える。
【００２４】
試験部１０２には、エントロピーデータ（元データ）とクロック信号とが入力され、判定タイミング検出部１０４には、クロック信号が入力される。試験部１０２と判定タイミング検出部１０４とは、例えばハイレベルのクロック信号に基づき動作することによって、同期して動作する。また、例えばハイレベルのクロック信号に基づき動作することによって、試験部１０２では、エントロピーデータが一定の時間間隔で取得される。
【００２５】
ここで、本発明の実施形態に係るエントロピーデータとしては、例えば、“相異なるクロックを生成する、複数のクロックジェネレータ（後述する）により生成されたクロックを組み合わせることによって生成されたデータ”や、“ツェナダイオードやトランジスタなどの半導体素子（または、任意の半導体回路）により生じるノイズを示すノイズデータ”が、挙げられる。なお、本発明の実施形態に係るエントロピーデータは、上記に示す例に限られず、任意の乱数源から得られるデータであってもよい。
【００２６】
エントロピーデータとしては、例えば、Ｎ（Ｎは、１以上の整数）ビットのデータストリームが、挙げられる。以下では、説明の簡単化のために、エントロピーデータが、１ビットのデータストリームである場合を例に挙げる。
【００２７】
また、本発明の実施形態に係るクロック信号としては、例えば、水晶発振子などの源振から任意の周波数のクロック信号を生成するクロックジェネレータから出力される、クロック信号が挙げられる。エントロピーデータに係る複数のクロックジェネレータのうちの１つと、クロック信号に係るクロックジェネレータは、同一のクロックジェネレータであってもよいし、異なっていてもよい。なお、本発明の実施形態に係るクロック信号の発生源が、上記に示す例に限られないことは、言うまでもない。
【００２８】
［１−１］試験部１０２
試験部１０２は、入力されたクロック信号に基づいて、入力されたエントロピーデータに対して試験を行う。ここで、本発明の実施形態に係る試験とは、例えば、エントロピーデータが偏っているか否かを判定するための試験に該当する。
【００２９】
より具体的には、試験部１０２は、本発明の実施形態に係る試験として、例えば、エントロピーデータにおける各ビットに含まれる所定の値の割合に関する試験（以下、「割合に関する試験」と示す場合がある。）と、エントロピーデータにおける各ビットの値の連続数に関する試験（以下、「連続数に関する試験」と示す場合がある。）との、一方または双方を、行う。
【００３０】
以下、試験部１０２が、割合に関する試験と、連続数に関する試験との双方を行う場合を例に挙げて、試験部１０２の構成の一例を説明する。
【００３１】
図２は、本発明の実施形態に係る試験回路１００を構成する試験部１０２の回路構成の一例を示す説明図である。
【００３２】
試験部１０２は、例えば、シフトレジスタ１１０（第１シフトレジスタ）と、第１試験回路１１２と、第２試験回路１１４とを備える。試験部１０２では、シフトレジスタ１１０に格納されたエントロピーデータに対して試験が行われる。
【００３３】
［１−１−１］シフトレジスタ１１０
シフトレジスタ１１０は、クロック信号に基づいて、エントロピーデータを順次格納する。シフトレジスタ１１０としては、例えば、複数段のフリップフロップで構成される、ＳＩＳＯ（Serial  Input  Serial  Output）シフトレジスタが挙げられる。シフトレジスタ１１０が格納可能なデータのビット数としては、例えば、Ｍビット（Ｍは、２以上の整数。）が挙げられる。
【００３４】
なお、シフトレジスタ１１０は、ＳＩＳＯシフトレジスタに限られない。例えば、シフトレジスタ１１０は、ＰＩＰＯ（Parallel  Input  Parallel  Output）シフトレジスタや、ＳＩＰＯ（Serial  Input  Parallel  Output）シフトレジスタなどの他の種類のシフトレジスタであってもよい。ここで、例えばシフトレジスタ１１０がＳＩＰＯシフトレジスタである場合には、シフトレジスタ１１０がＳＩＳＯシフトレジスタである場合と比較して、シフトレジスタの並列数倍、早いクロック信号で処理が行われる必要がある。シフトレジスタ１１０がＳＩＰＯシフトレジスタである場合、例えば、シフトレジスタ１１０の前段に逓倍回路が設けられ、シフトレジスタ１１０には、例えば、逓倍回路によりシフトレジスタの並列数倍逓倍されたクロック信号が、入力される。以下では、シフトレジスタ１１０が、ＳＩＳＯシフトレジスタである場合を例に挙げる。
【００３５】
また、図示していないが、シフトレジスタ１１０から出力されるデータ（すなわち、エントロピーデータのうちの、第１試験回路１１２と第２試験回路１１４とにおいて試験済みのデータ。以下、同様とする。）は、例えば、シフトレジスタ１１０の後段に設けられるバッファレジスタなどの記録媒体（図示せず）に記憶される。なお、本発明の実施形態に係る試験回路は、シフトレジスタ１１０の後段に記録媒体が設けられず、“シフトレジスタ１１０から出力されるデータが、バッファレジスタなどに記録されずに失われる構成”をとることも可能である。
【００３６】
［１−１−２］第１試験回路１１２
第１試験回路１１２は、例えば、割合検知カウンタ１２０（第１カウンタ）と、比較回路１２２（第１比較回路）とを備え、シフトレジスタ１１０に格納されたエントロピーデータに対して、割合に関する試験を行う。
【００３７】
割合検知カウンタ１２０は、シフトレジスタ１１０に格納されているエントロピーデータのうちの所定のビットの値が、所定の値である数のカウントを行う。割合検知カウンタ１２０がカウントを行う所定の値としては、例えば“１”が挙げられる。
【００３８】
ここで、割合検知カウンタ１２０がカウントを行う対象である、シフトレジスタ１１０における所定のビットとしては、例えば図２に示すように、シフトレジスタ１１０の最終段に格納されたデータに対応する最終ビットが挙げられる。以下では、シフトレジスタ１１０の最終段に格納されたデータに対応する最終ビットを、「シフトレジスタ１１０の最終ビット」と示す場合がある。
【００３９】
なお、本発明の実施形態に係るシフトレジスタ１１０における所定のビットは、上記に示す例に限られない。例えば、シフトレジスタ１１０における所定のビットは、シフトレジスタ１１０の１段目に格納されたデータに対応するビットであってもよく、また、シフトレジスタ１１０の任意の段に格納されたデータに対応するビットであってもよい。以下では、割合検知カウンタ１２０がカウントを行う対象である、シフトレジスタ１１０における所定のビットが、図２に示すようにシフトレジスタ１１０の最終ビットである場合を例に挙げる。
【００４０】
カウントを行う所定の値が“１”である場合、割合検知カウンタ１２０は、シフトレジスタ１１０における所定のビットの値が“１”であるときに、カウント数を１ずつ増やす。例えば割合検知カウンタ１２０は、シフトレジスタ１１０の最終ビット（所定のビット一例）の値が“１”であるときに、カウント数を１ずつ増やす。
【００４１】
割合検知カウンタ１２０におけるカウントは、クロック信号に基づいて行われる。よって、割合検知カウンタ１２０におけるカウントは、シフトレジスタ１１０におけるエントロピーデータの更新と同期することとなる。
【００４２】
比較回路１２２は、割合検知カウンタ１２０におけるカウント数と、設定されている割合検知カウンタ上限閾値（第１閾値）とを比較する。比較回路１２２は、例えば、ＡＮＤゲート、ＯＲゲート、ＮＯＴゲートなどの基本論理ゲートを複数組み合わせることによって、実現することが可能である。
【００４３】
ここで、割合検知カウンタ上限閾値は、例えば、予め設定される固定値であってもよいし、セキュリティに係る処理において求められる乱数の精度などに基づいて適宜変更可能な、可変値であってもよい。
【００４４】
比較回路１２２は、割合検知カウンタ１２０におけるカウント数と、割合検知カウンタ上限閾値とを比較した結果を示すデータを出力する。比較回路１２２から出力される比較した結果を示すデータが、割合に関する試験の試験結果を示すデータに該当する。
【００４５】
例えば、“比較回路１２２から出力される比較した結果を示すデータが、割合検知カウンタ上限閾値が割合検知カウンタ１２０におけるカウント数よりも大きいことを示している場合（または、割合検知カウンタ上限閾値が割合検知カウンタ１２０におけるカウント数以上であることを示している場合）”は、割合に関する試験が行われたエントロピーデータが、割合に関して偏っていない可能性が高いこと（割合に関して十分にばらついていること）を示している。つまり、上記の場合には、割合に関する試験が行われたエントロピーデータは、十分な精度の擬似乱数を得ることができる可能性が高いデータであるといえる。
【００４６】
また、“比較回路１２２から出力される比較した結果を示すデータが、割合検知カウンタ上限閾値が割合検知カウンタ１２０におけるカウント数以下であることを示している場合（または、割合検知カウンタ上限閾値が割合検知カウンタ１２０におけるカウント数より小さいことを示している場合）”は、割合に関する試験が行われたエントロピーデータが、割合に関して偏っている可能性が高いこと（割合に関して十分にばらついていないこと）を示している。つまり、上記の場合には、割合に関する試験が行われたエントロピーデータは、十分な精度の擬似乱数を得ることができない可能性が高いデータであるといえる。
【００４７】
第１試験回路１１２では、例えば上記のように、割合検知カウンタ１２０および比較回路１２２によって、シフトレジスタ１１０に格納されたエントロピーデータに対して、割合に関する試験が行われる。
【００４８】
［１−１−３］第２試験回路１１４
第２試験回路１１４は、例えば、比較回路１３０（第２比較回路）と、連続性検知カウンタ１３２（第２カウンタ）と、比較回路１３４（第３比較回路）とを備え、シフトレジスタ１１０に格納されたエントロピーデータに対して、連続数に関する試験を行う。
【００４９】
比較回路１３０は、シフトレジスタ１１０に格納されているエントロピーデータのうちの、隣接する所定の２つのビットの値を比較する。比較回路１３０は、例えば、ＡＮＤゲート、ＯＲゲート、ＮＯＴゲートなどの基本論理ゲートを複数組み合わせることによって、実現することが可能である。
【００５０】
ここで、比較回路１３０が比較を行う対象である、シフトレジスタ１１０における隣接する所定の２つのビットとしては、例えば図２に示すように、“シフトレジスタ１１０の最終ビット、および最終ビットに隣接するビット”が挙げられる。
【００５１】
なお、本発明の実施形態に係るシフトレジスタ１１０における、隣接する所定の２つのビットは、上記に示す例に限られない。例えば、シフトレジスタ１１０における隣接する所定の２つのビットは、“シフトレジスタ１１０の１段目に格納されたデータに対応するビット、およびシフトレジスタ１１０の２段目に格納されたデータに対応するビット”であってもよい。また、シフトレジスタ１１０における隣接する所定の２つのビットは、例えば、“シフトレジスタ１１０の任意の段に格納されたデータに対応するビット、および当該任意の段に隣接する段に格納されたデータに対応するビット”など、シフトレジスタ１１０における隣接する任意の２つの段に格納されたデータに対応するビットであってもよい。以下では、比較回路１３０が比較を行う対象である、隣接する所定の２つのビットが、図２に示すように“シフトレジスタ１１０の最終ビット、および最終ビットに隣接するビット”である場合を例に挙げる。
【００５２】
連続性検知カウンタ１３２は、比較回路１３０の比較結果に基づいて、エントロピーデータにおける各ビットの値の連続数のカウントを行う。連続性検知カウンタ１３２は、比較回路１３０の比較結果が“最終ビットの値と、最終ビットに隣接するビットの値とが、同一であること”を示す場合に、カウント数を１ずつ増やす。
【００５３】
連続性検知カウンタ１３２におけるカウントは、クロック信号に基づいて行われる。よって、連続性検知カウンタ１３２におけるカウントは、シフトレジスタ１１０におけるエントロピーデータの更新と同期することとなる。
【００５４】
比較回路１３４は、連続性検知カウンタ１３２おけるカウント数と、設定されている連続性検知カウンタ上限閾値（第２閾値）とを比較する。比較回路１３４は、例えば、ＡＮＤゲート、ＯＲゲート、ＮＯＴゲートなどの基本論理ゲートを複数組み合わせることによって、実現することが可能である。
【００５５】
ここで、連続性検知カウンタ上限閾値は、例えば、予め設定される固定値であってもよいし、セキュリティに係る処理において求められる乱数の精度などに基づいて適宜変更可能な、可変値であってもよい。
【００５６】
比較回路１３４は、連続性検知カウンタ１３２におけるカウント数と、連続性検知カウンタ上限閾値とを比較した結果を示すデータを出力する。比較回路１３４から出力される比較した結果を示すデータが、連続性に関する試験の試験結果を示すデータに該当する。
【００５７】
例えば、“比較回路１３４から出力される比較した結果を示すデータが、連続性検知カウンタ上限閾値が連続性検知カウンタ１３２におけるカウント数よりも大きいことを示している場合（または、連続性検知カウンタ上限閾値が連続性検知カウンタ１３２におけるカウント数以上であることを示している場合）”は、連続性に関する試験が行われたエントロピーデータが、連続性に関して偏っていない可能性が高いこと（連続性に関して十分にばらついていること）を示している。つまり、上記の場合には、連続性に関する試験が行われたエントロピーデータは、十分な精度の擬似乱数を得ることができる可能性が高いデータであるといえる。
【００５８】
また、“比較回路１３４から出力される比較した結果を示すデータが、連続性検知カウンタ上限閾値が連続性検知カウンタ１３２におけるカウント数以下であることを示している場合（または、連続性検知カウンタ上限閾値が連続性検知カウンタ１３２におけるカウント数より小さいことを示している場合）”は、連続性に関する試験が行われたエントロピーデータが、連続性に関して偏っている可能性が高いこと（連続性に関して十分にばらついていないこと）を示している。つまり、上記の場合には、連続性に関する試験が行われたエントロピーデータは、十分な精度の擬似乱数を得ることができない可能性が高いデータであるといえる。
【００５９】
第２試験回路１１４では、例えば上記のように、比較回路１３０、連続性検知カウンタ１３２、および比較回路１３４によって、シフトレジスタ１１０に格納されたエントロピーデータに対して、連続性に関する試験が行われる。
【００６０】
試験部１０２は、例えば図２に示す構成によって、クロック信号に基づいて、シフトレジスタ１１０に格納されたエントロピーデータに対して、割合に関する試験、および連続性に関する試験を行う。
【００６１】
なお、本発明の実施形態に係る試験回路１００が備える試験部１０２の構成は、図２に示す例に限られない。
【００６２】
例えば、試験部１０２は、第１試験回路１１２と第２試験回路１１４との一方を備えない構成、すなわち、割合に関する試験と連続性に関する試験とのうちの一方を行う構成をとることも、可能である。
【００６３】
また、試験部１０２は、判定タイミング検出部１０４から出力されるタイミング信号（後述する）に基づいて、割合検知カウンタ１２０および連続性検知カウンタ１３２それぞれを初期化する機能を有していてもよい。試験部１０２は、例えば、タイミング信号（後述する）が検出された場合に、割合検知カウンタ１２０および連続性検知カウンタ１３２それぞれを初期化する。なお、上記割合検知カウンタ１２０および連続性検知カウンタ１３２それぞれを初期化する機能は、本発明の実施形態に係る試験回路を構成する他の構成要素によって行われてもよい。
【００６４】
［１−２］判定タイミング検出部１０４
判定タイミング検出部１０４は、入力されたクロック信号に基づいて、エントロピーデータに対する試験の結果を判定するタイミングを検出する。判定タイミング検出部１０４は、判定するタイミングが検出された場合に、例えば１ショットパルスのタイミング信号を、出力する。
【００６５】
図３は、本発明の実施形態に係る試験回路１００を構成する判定タイミング検出部１０４の回路構成の一例を示す説明図である。
【００６６】
判定タイミング検出部１０４は、例えば、カウンタ１４０（第３カウンタ）と、セレクタ１４２と、シフトレジスタ１４４（第２シフトレジスタ）と、比較回路１４６（第４比較回路）とを備える。
【００６７】
カウンタ１４０は、クロック信号に基づいてカウントを行う。カウンタ１４０は、例えばハイレベルのクロック信号が入力されるごとに、カウント数を１ずつ増やす。
【００６８】
セレクタ１４２は、カウンタ１４０における複数のビットのデータを入力とし、入力されたデータのうちの選択された所定のビットのデータを出力する。図３では、セレクタ１４２が、５入力１出力のセレクタ回路で構成される例を示している。セレクタ１４２において選択される所定のビットは、例えば、予め設定された固定のビットであってもよいし、カウンタ１４０のカウント数に応じて動的に設定されてもよい。
【００６９】
シフトレジスタ１４４は、例えばクロック信号に基づいて、セレクタ１４２から出力されるデータを順次格納する。シフトレジスタ１４４としては、例えば、２ビットのＳＩＳＯシフトレジスタなどの２ビットシフトレジスタが挙げられる。また、シフトレジスタ１４４が格納可能なデータのビット数は、３ビット以上であってもよい。以下では、シフトレジスタ１４４が、２ビットのＳＩＳＯシフトレジスタである場合を例に挙げる。
【００７０】
比較回路１４６は、シフトレジスタ１４４に格納されているデータのうちの、隣接する所定の２つのビットの値を比較する。そして、比較回路１４６は、シフトレジスタ１４４における隣接する所定の２つのビットの値が異なる場合に、１ショットパルスのタイミング信号を出力する。比較回路１４６は、例えば、ＡＮＤゲート、ＯＲゲート、ＮＯＴゲートなどの基本論理ゲートを複数組み合わせることによって、実現することが可能である。
【００７１】
ここで、比較回路１４６が比較を行う対象である、シフトレジスタ１４４における隣接する所定の２つのビットとしては、例えば図３に示すように、“シフトレジスタ１４４の最終ビット、および最終ビットに隣接するビット”が挙げられる。
【００７２】
なお、本発明の実施形態に係るシフトレジスタ１４４における、隣接する所定の２つのビットは、上記に示す例に限られない。例えば、シフトレジスタ１４４が３ビット以上のシフトレジスタである場合、シフトレジスタ１４４における隣接する所定の２つのビットは、“シフトレジスタ１４４の１段目に格納されたデータに対応するビット、およびシフトレジスタ１４４の２段目に格納されたデータに対応するビット”であってもよい。また、シフトレジスタ１４４が３ビット以上のシフトレジスタである場合、シフトレジスタ１４４における隣接する所定の２つのビットは、例えば、“シフトレジスタ１４４の任意の段に格納されたデータに対応するビット、および当該任意の段に隣接する段に格納されたデータに対応するビット”など、シフトレジスタ１４４における隣接する任意の２つの段に格納されたデータに対応するビットであってもよい。
【００７３】
具体例を挙げると、比較回路１４６は、“セレクタ１４２から出力されるデータが、０から１に変化する場合（Ｖｅｒｉｌｏｇ−ＨＤＲ表記で表すと、「１’ｂ０」から「１’ｂ１」に変化する場合）”、または、“セレクタ１４２から出力されるデータが、１から０に変化する場合（Ｖｅｒｉｌｏｇ−ＨＤＲ表記で表すと、「１’ｂ１」から「１’ｂ０」に変化する場合）”に、１ショットパルスのタイミング信号を出力する。
【００７４】
判定タイミング検出部１０４では、例えば上記のように、カウンタ１４０、セレクタ１４２、シフトレジスタ１４４、および比較回路１４６によって、タイミングの検出結果を示す１ショットパルスのタイミング信号が、出力される。
【００７５】
判定タイミング検出部１０４は、例えば図３に示す構成によって、クロック信号に基づいて、エントロピーデータに対する試験の結果を判定するタイミングを検出する。
【００７６】
なお、本発明の実施形態に係る試験回路１００が備える判定タイミング検出部１０４の構成は、図３に示す例に限られない。
【００７７】
例えば、判定タイミング検出部１０４は、シフトレジスタ１４４および比較回路１４６の代わりに、セレクタ１４２から出力されるデータの変化に基づき１ショットパルスのタイミング信号を出力することが可能な、任意の１ショットパルス回路を備える構成をとることが、可能である。
【００７８】
また、判定タイミング検出部１０４は、タイミング信号に基づいて、カウンタ１４０を初期化する機能を有していてもよい。判定タイミング検出部１０４は、例えば、タイミング信号（後述する）が出力された場合に、カウンタ１４０を初期化する。なお、上記カウンタ１４０を初期化する機能は、本発明の実施形態に係る試験回路を構成する他の構成要素によって行われてもよい。
【００７９】
試験回路１００は、例えば図１に示す構成によって、クロック信号に基づいてエントロピーデータに対する試験を実行し、かつ、クロック信号に基づいてエントロピーデータに対する試験結果を判定するタイミングを検出する。
【００８０】
したがって、例えば図１に示す構成を有する試験回路１００によって、エントロピーデータ（元データ）に対して試験を行うことが可能となる。
【００８１】
また、試験回路１００は、クロック信号に基づいて、エントロピーデータに対する試験の実行と、エントロピーデータに対する試験結果を判定するタイミングの検出とを、同期して行う。よって、試験回路１００により、クロック同期による高速処理を実現することが可能である。
【００８２】
さらに、試験回路１００は、図２、図３に示すように、小規模な回路構成によって、エントロピーデータに対する試験の実行と、エントロピーデータに対する試験結果を判定するタイミングの検出とを、行うことができる。
【００８３】
なお、本発明の実施形態に係る試験回路の構成は、図１に示す例に限られない。
【００８４】
例えば、本発明の実施形態に係る試験回路は、試験結果を判定する判定回路（図示せず）を、さらに備えていてもよい。
【００８５】
判定回路（図示せず）は、試験部１０２における試験結果（エントロピーデータに対する試験結果）と、判定タイミング検出部１０４における試験結果を判定するタイミングの検出結果とに基づいて、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が得られたか否かを判定する。
【００８６】
より具体的には、判定回路（図示せず）は、例えば、判定タイミング検出部１０４から出力されるタイミング信号が検出されたときに、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が得られたか否かを判定する。
【００８７】
また、判定回路（図示せず）は、例えば、試験部１０２における試験結果に基づいて、下記の条件１および条件２の２つの条件を満たしていると判定された場合に、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が得られたと、判定する。
・条件１：“試験回路１００から出力される試験結果を示すデータが、割合に関して十分にばらついており、かつ、連続性に関して十分にばらついていること”を、示すこと
・条件２：試験回路１００から出力されるタイミング信号が検出されたこと
【００８８】
なお、上記条件１は、“試験回路１００から出力される試験結果を示すデータが、割合に関して十分にばらついていること、または、連続性に関して十分にばらついていること”であってもよい。
【００８９】
また、本発明の実施形態に係る試験回路は、例えば、判定回路（図示せず）に加えて、通知制御回路（図示せず）を、さらに備えることも可能である。通知制御回路（図示せず）は、例えば、試験回路の外部のデバイス（または外部の回路。以下、同様とする。）に対する“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”の取得に係る通知を制御する。なお、本発明の実施形態に係る試験回路において、判定回路（図示せず）と通知制御回路（図示せず）とは、同一の回路であってもよいし、異なる回路であってもよい。
【００９０】
取得に係る通知の対象となる外部のデバイスとしては、例えば、ファームウェアなどのソフトウェアを実行するプロセッサなどの、擬似乱数を生成して、擬似乱数を利用する処理を行うデバイス（または回路）が、挙げられる。
【００９１】
通知制御回路（図示せず）は、例えば、下記の（ａ）に示す処理、または、下記の（ｂ）に示す処理を行うことによって、取得に係る通知を制御する。
【００９２】
（ａ）通知制御に係る処理の第１の例
通知制御回路（図示せず）は、上記判定回路（図示せず）における判定結果に基づいて、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”の取得状態を示すデータを、更新する。
【００９３】
ここで、本発明の実施形態に係る取得状態を示すデータとしては、例えば、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されているか否かを、０または１の値で表すフラグが、挙げられる。
【００９４】
例えば、上記フラグの値が０の場合、フラグは、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されていないこと（または、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されていること）を、示す。また、例えば、上記フラグの値が１の場合、フラグは、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されていること（または、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されていないこと）を、示す。
【００９５】
上記取得状態を示すデータは、例えば、通知レジスタに格納される。本発明の実施形態に係る通知レジスタとは、例えば、擬似乱数を生成して、擬似乱数を利用する処理を行う外部のデバイスなどの、外部のデバイスによって参照される記録媒体である。
【００９６】
よって、通知制御回路（図示せず）が、上記判定回路（図示せず）における判定結果に基づいて、通知レジスタに格納されるデータを更新することによって、外部のデバイスは、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されているか否かを認識することができる。
【００９７】
また、通知レジスタを参照することによって、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されていることを認識した外部のデバイスは、例えば下記のように、試験済みのエントロピーデータを取得する。
・外部のデバイスは、試験済みのエントロピーデータが記憶されるバッファレジスタなどの記録媒体（図示せず）から、試験済みのエントロピーデータを読み出す。
【００９８】
上記バッファレジスタなどの記録媒体（図示せず）への試験済みのエントロピーデータの記録は、例えば下記のように行われる。
・バッファレジスタなどの記録媒体（図示せず）が試験部１０２を構成するシフトレジスタ１１０の後段に設けられ、シフトレジスタ１１０から出力されるデータが当該記録媒体（図示せず）に順次記録される。
・判定回路（図示せず）において、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が得られたと判定された場合に、試験部１０２を構成するシフトレジスタ１１０に格納されているデータ（または、シフトレジスタ１１０に格納されているデータの一部）が、バッファレジスタなどの記録媒体（図示せず）に記録される。バッファレジスタなどの記録媒体（図示せず）へのシフトレジスタ１１０に格納されているデータの記録は、例えば、判定回路（図示せず）または通知制御部（図示せず）によって、行われる。
【００９９】
ここで、バッファレジスタなどの記録媒体（図示せず）が試験部１０２を構成するシフトレジスタ１１０の後段に設けられる場合、当該記録媒体（図示せず）に記憶されるデータは、試験部１０２を構成する第１試験回路１１２と第２試験回路１１４とにおいて試験済みのデータに該当する。
【０１００】
また、例えば、判定回路（図示せず）または通知制御部（図示せず）によって、試験部１０２を構成するシフトレジスタ１１０に格納されているデータが、バッファレジスタなどの記録媒体（図示せず）に記録される場合には、上記のように、バッファレジスタなどの記録媒体（図示せず）へのシフトレジスタ１１０に格納されているデータの記録は、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が得られたと判定された場合に、行われる。ここで、例えば図２に示すように、シフトレジスタ１１０の最終ビットに対して試験が行われる場合、シフトレジスタ１１０に格納されているデータには、試験が行われていないデータが含まれうる。しかしながら、上記の場合においてバッファレジスタなどの記録媒体（図示せず）に記憶されるデータは、“試験部１０２を構成する第１試験回路１１２と第２試験回路１１４とにおいて試験が行われ場合に、十分な精度の擬似乱数を得ることができる可能性が高いデータ”である可能性が高い。そのため、上記の場合においてバッファレジスタなどの記録媒体（図示せず）に記憶されるデータは、十分な精度の擬似乱数を得ることができる可能性が高いデータとみなすことが可能、すなわち、試験済みのエントロピーデータとみなすことが可能である。
【０１０１】
（ｂ）通知制御に係る処理の第２の例
通知制御回路（図示せず）は、上記判定回路（図示せず）における判定結果に基づいて、試験済みのエントロピーデータを、擬似乱数を生成して、擬似乱数を利用する処理を行う外部のデバイスに対して送信する。通知制御回路（図示せず）は、例えば、信号線により有線で接続されている外部のデバイス、または、配線を無線化する任意の技術により無線で接続されている外部のデバイスに対して、試験済みのエントロピーデータを送信する。
【０１０２】
試験済みのエントロピーデータは、例えば上述したように、バッファレジスタなどの記録媒体（図示せず）に記憶される。
【０１０３】
通知制御回路（図示せず）が、上記判定回路（図示せず）における判定結果に基づいて、試験済みのエントロピーデータを送信することによって、外部のデバイスは、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”を取得することができる。
【０１０４】
上記のように、本発明の実施形態に係る試験回路が、上記判定回路（図示せず）および上記通知制御回路（図示せず）を備えることによって、擬似乱数を生成して、擬似乱数を利用する処理を行う外部のデバイスに、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”を取得させることが、可能となる。
【０１０５】
なお、擬似乱数を生成して、擬似乱数を利用する処理を行う外部のデバイスに“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”を取得させることが可能な、本発明の実施形態に係る試験回路の構成は、上記に示す例に限られない。
【０１０６】
例えば、本発明の実施形態に係る試験回路は、“試験部１０２から出力される試験結果（エントロピーデータに対する試験結果）を示すデータと、判定タイミング検出部１０４から出力されるタイミング信号（判定タイミング検出部１０４における試験結果を判定するタイミングの検出結果を示す信号）とを、擬似乱数を生成して、擬似乱数を利用する処理を行う外部のデバイスに対して送信する構成”であってもよい。
【０１０７】
本発明の実施形態に係る試験回路が、試験部１０２から出力される試験結果を示すデータと、判定タイミング検出部１０４から出力されるタイミング信号とを、外部のデバイスに対して送信する構成である場合、外部のデバイスは、例えば、上記判定回路（図示せず）と同様の判定を行うことによって、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されているか否かを認識する。そして、“十分な精度の擬似乱数を得ることができる可能性が高い試験済みのエントロピーデータ”が取得されていることを認識した外部のデバイスは、例えば上記（ａ）において示したように、試験済みのエントロピーデータを取得する。
【０１０８】
［２］本発明の実施形態に係る試験回路の適用例
本発明の実施形態に係る試験回路は、例えば、プロセッサなどを含む集積回路（例えばマイクロコンピュータなど）を構成する回路に、適用することができる。また、本発明の実施形態に係る試験回路は、例えば、プロセッサなどを含む集積回路と有線または無線で接続されて用いられる外部の試験回路であってもよい。
【０１０９】
“本発明の実施形態に係る試験回路を含む集積回路”と、“プロセッサなどを含む集積回路、および当該集積回路に接続される本発明の実施形態に係る試験回路”とは、例えば、車などの車両や、携帯電話やスマートフォンなどの通信装置、タブレット型の装置、テレビ受像機、ＰＣ（Personal  Computer）などのコンピュータなど、任意の装置またはシステムに用いることが、可能である。
【０１１０】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１１１】
１００    試験回路
１０２    試験部
１０４    判定タイミング検出部
１１０、１４４    シフトレジスタ
１１２    第１試験回路
１１４    第２試験回路
１２０    割合検知カウンタ
１２２、１３０、１３４、１４６    比較回路
１３２    連続性検知カウンタ
１４０    カウンタ
１４２    セレクタ
【図１】
2017173068.tif 000003
【図２】
2017173068.tif 000004
【図３】
2017173068.tif 000005