(57)【要約】【課題】簡易な構成で、動作時に得られる測定値のゆらぎの大きさに合わせて乱数を生成し、機器全体のコストアップを抑制する。【解決手段】情報処理装置１０では、ゆらぎ見積部１３は、ノイズ源ｎｓからＭ（Ｍ：２のべき乗となる整数値）桁のビットを有する複数の測定値を取得する。ビット抽出部１４は、取得された複数の測定値に基づく、乱数の生成に用いるＮ（Ｎ＜Ｍとなる整数値）桁の有効ビット数に関する情報を取得する。ビット連結部１５は、有効ビット数に関する情報を用いて、Ｌ（Ｌ≧Ｎとなる既定の整数値）桁の有効ビットを有する乱数を生成する。【選択図】図４
2018194917.tif 000002
【特許請求の範囲】
【請求項１】
Ｍ（Ｍ：２のべき乗となる整数値）桁のビットを有する測定値を取得する第１の取得部と、
取得された前記測定値に基づく、乱数の生成に用いるＮ（Ｎ＜Ｍとなる整数値）桁の有効ビット数に関する情報を取得する第２の取得部と、
取得された前記有効ビット数に関する情報を用いて、Ｌ（Ｌ≧Ｎとなる既定の整数値）桁の有効ビットを有する乱数を生成する乱数生成部と、を備える、
乱数生成装置。
【請求項２】
前記第２の取得部は、一定期間における前記測定値のゆらぎの大きさを基に、前記有効ビット数に関する情報を導出する、
請求項１に記載の乱数生成装置。
【請求項３】
前記第２の取得部は、前記測定値のゆらぎの大きさと前記有効ビット数とを対応付けるテーブルを用いて、前記ゆらぎの大きさに対応する前記有効ビット数に関する情報を導出する、
請求項２に記載の乱数生成装置。
【請求項４】
前記有効ビット数に関する情報が導出不可である場合、警報を外部装置に出力する通知部、を更に備える、
請求項２又は３に記載の乱数生成装置。
【請求項５】
前記有効ビット数に関する情報を保持するメモリ、を更に備える、
請求項１に記載の乱数生成装置。
【請求項６】
前記測定値のゆらぎの大きさを評価する評価部、を更に備え、
前記評価部は、前記測定値のゆらぎの大きさの評価タイミングに従って、前記測定値のゆらぎの大きさを評価する、
請求項１に記載の乱数生成装置。
【請求項７】
前記測定値のゆらぎの大きさを評価する評価部、を更に備え、
前記第２の取得部は、前記測定値のゆらぎの大きさが前記評価部により指定された範囲内であると判断された場合に、前記有効ビット数に関する情報を導出する、
請求項１に記載の乱数生成装置。
【請求項８】
前記測定値のゆらぎの大きさが前記評価部により指定された範囲外であると判断された場合に、警報を外部装置に出力する通知部、を更に備える、
請求項７に記載の乱数生成装置。
【請求項９】
Ｍ（Ｍ：２のべき乗となる整数値）桁のビットを有する測定値を取得する第１の取得部と、
取得された前記測定値に基づく、乱数の生成に用いるＮ（Ｎ＜Ｍとなる整数値）桁の有効ビット数に関する情報を取得する第２の取得部と、
取得された前記有効ビット数に関する情報を用いて、Ｌ（Ｌ≧Ｎとなる既定の整数値）桁の有効ビットを有する乱数を生成する乱数生成部と、を備える、
情報処理装置。
【請求項１０】
情報処理装置を用いた乱数生成方法であって、
Ｍ（Ｍ：２のべき乗となる整数値）桁のビットを有する測定値を取得するステップと、
取得された前記測定値に基づく、乱数の生成に用いるＮ（Ｎ＜Ｍとなる整数値）桁の有効ビット数に関する情報を取得するステップと、
取得された前記有効ビット数に関する情報を用いて、Ｌ（Ｌ≧Ｎとなる既定の整数値）桁の有効ビットを有する乱数を生成するステップと、を有する、
乱数生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、乱数生成装置、情報処理装置及び乱数生成方法に関する。
【背景技術】
【０００２】
情報処理装置の一例としてのＩｏＴ（Internet of Things）機器は、「モノのインターネット」とも呼ばれ、例えばセンシングデバイスを有するとともに、インターネット等の通信ネットワークに接続可能な機器である。
【０００３】
ＩｏＴ機器は、センシングデバイスにより検知されたセンシング結果のデータを、通信ネットワークを介して、ネットワーク上のクラウドサーバとの間で通信できる。
【０００４】
ＩｏＴ機器は、クラウドサーバにセンシング結果のデータを送信し、クラウドサーバにより分析された結果のデータ（例えば、ＩｏＴ機器を制御するための制御データ）を受信し、必要に応じて、ＩｏＴ機器が備えるアクチュエータを駆動する。
【０００５】
ＩｏＴ機器はインターネットに接続される機器であり、セキュリティリスクが懸念されるが、ＰＣ（Personal Computer）と比べハードスペックが劣るため、セキュリティ対策が十分とはいえない。しかし、セキュリティ対策が不十分なＩｏＴ機器がサイバー攻撃を受けた場合、別のＩｏＴ機器やＩｏＴサービス全体など、広範囲に波及する可能性がある。例えば、自動車分野や医療分野におけるサイバー攻撃では、ユーザの生命や財産が危険にさらされる場合もある。従って、ＩｏＴ機器でもＰＣと同じ強度のセキュリティ対策が必要である。
【０００６】
セキュリティ対策として、例えば暗号化通信のプロトコルのＳＳＬ（Secure Sockets Layer）による安全なインターネット接続の確保が上げられる。
【０００７】
ＳＳＬ接続には安全な鍵（乱数）が必要であり、乱数は擬似乱数生成器（ＰＲＮＧ）に乱数の種であるシード（ＳＥＥＤ）を与えて得ることもできる。
【０００８】
安全な乱数を得るためには、乱数又はシードは、機器内部で生成し設計者も知り得ない秘密の情報にして、それを使いまわしせず機器内部で定期的に更新することが望まれる。
【０００９】
しかしながら、ローエンド仕様で製造されるＩｏＴ機器は低機能及び低価格のため、セキュリティ対策が施されていないものもあれば、たとえセキュリティ対策が施されたとしても、セキュリティ強度は低く、擬似乱数生成器を用いた乱数の生成において、出荷前に予め組み込んだシードを使いまわしたり、時間とＭＡＣ（Media Access Control）アドレスとを組み合わせた値をシードとして使用したりするケースもある。
【００１０】
ＩｏＴ機器のセキュリティ強度を高めるため、ＩｏＴ機器に特殊なハードウェアで構成される乱数生成回路を組み込んで乱数又はシードを生成する方法があるが、ローエンド仕様で製造されるＩｏＴ機器には適さない。
【００１１】
ここで、上述した乱数生成回路を有する先行技術として、例えば特許文献１の乱数生成装置が提案されている。特許文献１の乱数生成装置は、外部装置からの選択信号をセレクタに入力することにより、発振回路の発振周波数を設定し、発振回路からの出力値を保持し、サンプリングクロックに従ってサンプリング回路から出力される出力値を配列する。これにより、乱数生成装置は、真性度の高い乱数を生成できる。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１６−１２６５１８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、特許文献１の乱数生成装置では、新たなサンプリングクロックに応じて乱数を生成する際、外部装置は、前回のサンプリングクロックに応じて生成された乱数の真性度の評価結果に基づいて、発振回路に選択信号を出力する。このため、乱数を生成する際に、発振回路に選択信号を出力するための外部装置が構成上、必要となる。言い換えると、特許文献１の乱数生成装置は、外部装置からの選択信号が入力されないと、乱数を生成することは困難であり、構成が複雑になるという課題があった。
【００１４】
本開示は、上述した従来の状況に鑑みて案出され、簡易な構成で、動作時に得られる測定値のゆらぎの大きさに合わせて乱数を効率的に生成し、機器全体のコストアップを抑制する乱数生成装置、情報処理装置及び乱数生成方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本開示は、Ｍ（Ｍ：２のべき乗となる整数値）桁のビットを有する測定値を取得する第１の取得部と、取得された前記測定値に基づく、乱数の生成に用いるＮ（Ｎ＜Ｍとなる整数値）桁の有効ビット数に関する情報を取得する第２の取得部と、取得された前記有効ビット数に関する情報を用いて、Ｌ（Ｌ≧Ｎとなる既定の整数値）桁の有効ビットを有する乱数を生成する乱数生成部と、を備える、乱数生成装置を提供する。
【００１６】
また、本開示は、Ｍ（Ｍ：２のべき乗となる整数値）桁のビットを有する測定値を取得する第１の取得部と、取得された前記測定値に基づく、乱数の生成に用いるＮ（Ｎ＜Ｍとなる整数値）桁の有効ビット数に関する情報を取得する第２の取得部と、取得された前記有効ビット数に関する情報を用いて、Ｌ（Ｌ≧Ｎとなる既定の整数値）桁の有効ビットを有する乱数を生成する乱数生成部と、を備える、情報処理装置を提供する。
【００１７】
また、本開示は、情報処理装置を用いた乱数生成方法であって、Ｍ（Ｍ：２のべき乗となる整数値）桁のビットを有する測定値を取得するステップと、取得された前記測定値に基づく、乱数の生成に用いるＮ（Ｎ＜Ｍとなる整数値）桁の有効ビット数に関する情報を取得するステップと、取得された前記有効ビット数に関する情報を用いて、Ｌ（Ｌ≧Ｎとなる既定の整数値）桁の有効ビットを有する乱数を生成するステップと、を有する、乱数生成方法を提供する。
【発明の効果】
【００１８】
本開示によれば、簡易な構成で、動作時に得られる測定値のゆらぎの大きさに合わせて乱数を効率的に生成できるので、機器全体のコストアップを抑制できる。
【図面の簡単な説明】
【００１９】
【図１】実施の形態１の情報処理装置を含む情報処理システムの内部構成の一例を示すブロック図
【図２Ａ】正規分布の一例を示す散布図
【図２Ｂ】１１ビットのデータのうち下位８ビットを抽出した結果のデータの一例を示す散布図
【図２Ｃ】１１ビットのデータのうち下位４ビットを抽出した結果のデータの一例を示す散布図
【図２Ｄ】他の正規分布の一例を示す散布図
【図２Ｅ】１１ビットのデータのうち下位１０ビットを抽出した結果のデータの一例を示す散布図
【図２Ｆ】１１ビットのデータのうち下位８ビットを抽出した結果のデータの一例を示す散布図
【図３Ａ】標準偏差が小さい場合の有効ビットを説明する図
【図３Ｂ】標準偏差が大きい場合の有効ビットを説明する図
【図４】乱数生成モジュールの動作概要の一例を示す図
【図５】標準偏差と有効ビット数との対応表を示すテーブル
【図６】実施の形態１の情報処理装置における乱数生成動作手順の一例を詳細に示すフローチャート
【図７】実施の形態１の変形例の情報処理装置における乱数生成動作手順の一例を詳細に示すフローチャート
【図８】実施の形態２の情報処理装置における乱数生成動作手順の一例を詳細に示すフローチャート
【図９】実施の形態３の情報処理装置における標準偏差と有効ビットと乱数生成可否との対応表の一例を示すテーブル
【図１０】実施の形態３の情報処理装置における乱数生成動作手順の一例を詳細に示すフローチャート
【発明を実施するための形態】
【００２０】
以下、適宜図面を参照しながら、本開示に係る乱数生成装置、情報処理装置及び乱数生成方法を具体的に開示した各実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。なお、添付図面及び以下の説明は、当業者が本開示を十分に理解するために提供されるのであって、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
【００２１】
（実施の形態１）
図１は、実施の形態１の情報処理装置１０を含む情報処理システム５の内部構成の一例を示すブロック図である。
【００２２】
情報処理システム５は、複数の情報処理装置１０，８０と、管理者端末４０と、ＰＣ５０と、スマートフォン６０とを含む構成である。複数の情報処理装置１０，８０と、管理者端末４０と、ＰＣ５０と、スマートフォン６０とは、インターネット７０を介して相互に接続される。なお、情報処理装置１０，８０の内部構成の詳細は同一であるため、その内部構成及び動作の説明では情報処理装置１０を代表的に例示する。
【００２３】
情報処理装置１０は、例えばＩｏＴ（Internet of Things）機器である。ＩｏＴ機器は、上述したように、例えばセンシングデバイスを有するとともに、インターネット等の通信ネットワークに接続可能なローエンド仕様の電子機器である。ＩｏＴ機器は、センシングデバイスにより検知されたセンシング結果のデータを、通信ネットワークを介して、クラウドサーバとの間で通信でき、クラウドサーバから送信された制御データに従って、自身に内蔵されたアクチュエータを駆動する。ＩｏＴ機器としては、例えば、監視カメラ、決済端末、ボディカメラ、ドアホン、複合機、スマートメータ、ＰＬＣ（Programmable Logic Controller）、ゲートウェイボックス等が挙げられる。言い換えると、情報処理装置１０，８０は、例えば上述した監視カメラ、決済端末、ボディカメラ、ドアホン、複合機、スマートメータ、ＰＬＣ、ゲートウェイボックスのうちいずれかである。なお、ここでは、情報処理装置１０は、高度な情報処理機能を有しないローエンド仕様の電子機器を挙げたが、高度な情報処理機能を有するＰＣ（Personal Computer）や携帯電話機、スマートフォン等のハイエンド仕様の電子機器であってもよい。
【００２４】
情報処理装置１０は、ＣＰＵ１１と、ＲＯＭ１６と、ＲＡＭ１７と、フラッシュメモリ１８と、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）１９と、通信インターフェイス（Ｉ／Ｆ：Interface）回路２０と、入力Ｉ／Ｆ回路２１と、出力Ｉ／Ｆ回路２２とを含む構成である。ＣＰＵ１１と、ＲＯＭ１６と、ＲＡＭ１７と、フラッシュメモリ１８と、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）１９と、通信インターフェイス（Ｉ／Ｆ：Interface）回路２０と、入力Ｉ／Ｆ回路２１と、出力Ｉ／Ｆ回路２２とは、バス２８を介して接続される。
【００２５】
通信Ｉ／Ｆ回路２０は、インターネット７０との間の接続を制御する。図１に示す情報処理システム５において、情報処理装置１０，８０と、管理者端末４０と、ＰＣ５０と、スマートフォン６０とを接続する通信用のネットワークは、公衆網を用いたインターネット７０に限定されず、例えば店舗、企業等で利用されるイントラネット等の専用ネットワークであっても構わない。
【００２６】
入力Ｉ／Ｆ回路２１には、例えばマイク、センサ等の入力装置３１が接続される。
【００２７】
出力Ｉ／Ｆ回路２２には、スピーカ、ディスプレイ等の出力装置３２が接続される。
【００２８】
また、情報処理装置１０は、高速オシレータ２３、低速オシレータ２４及びクロックカウンタ２５を含む構成である。
【００２９】
ＣＰＵ１１は、乱数を生成するための乱数生成モジュール１２を、所謂ソフトウェアモジュールとして内蔵する。つまり、ＣＰＵ１１は、ＲＯＭ１６に予め記憶されているプログラム及びデータを読み込んで実行することで、ソフトウェアモジュールとしての乱数生成モジュール１２を具現化できる。
【００３０】
乱数生成装置の一例としての乱数生成モジュール１２は、ソフトウェア機能単位としての、ゆらぎ見積部１３とビット抽出部１４とビット連結部１５とを有する。ゆらぎ見積部１３、ビット抽出部１４及びビット連結部１５の動作の詳細については、図４を用いて後述する。
【００３１】
ＲＯＭ１６は、例えば情報処理装置１０がＩｏＴ機器として動作するために予め必要となるプログラムやデータ、更には、ＣＰＵ１１が乱数生成モジュール１２をソフトウェアモジュールとして具現化可能となるプログラム及びデータ等を予め記憶する。
【００３２】
ＲＡＭ１７は、情報処理装置１０の各部（例えばＣＰＵ１１）のワーキングメモリとして使用され、情報処理装置１０の各部の動作時に参照するデータを一時的に保存する。
【００３３】
フラッシュメモリ１８は、情報処理装置１０により生成されたデータ（例えば、乱数生成モジュール１２により生成された、複数の測定値のゆらぎの大きさを示すデータ（後述参照））等を記憶する。
【００３４】
ＨＤＤ１９は、情報処理装置１０により生成された大容量のデータを記憶可能なストレージである。
【００３５】
高速オシレータ２３は、ＣＰＵ１１の動作に必要な高い周波数のクロック信号を生成してＣＰＵ１１に出力する。
【００３６】
低速オシレータ２４は、高速オシレータ２３と比べて、ＣＰＵ１１の動作に必要な低い周波数のクロック信号を生成してＣＰＵ１１に出力する。
【００３７】
また、高速オシレータ２３及び低速オシレータ２４は、クロックカウンタ２５とともに、情報処理装置１０における複数の測定値の供給源（つまり、ノイズ源）として用いられる。
【００３８】
クロックカウンタ２５は、低速オシレータ２４から出力されるクロック信号の１クロックの期間内に、高速オシレータ２３から出力されるクロック信号を計数し、測定値の一例としてのクロックカウンタ値をＣＰＵ１１に出力する。
【００３９】
情報処理装置８０は、上述したように、情報処理装置１０と同様の構成を有する、ＩｏＴ機器である。本明細書において、情報処理装置８０の構成及び動作は情報処理装置１０の構成及び動作と同じであることを含む。なお、情報処理装置８０は、情報処理装置１０と異なる構成であってもよい。
【００４０】
管理者端末４０は、情報処理システム５の管理者によって操作されるＰＣ（Personal Computer）であり、例えば乱数生成の結果報告等の通知が情報処理装置１０，８０から送信された場合に、その通知を受信して管理者が閲覧するディスプレイ（図示略）に表示する。
【００４１】
ＰＣ５０は、情報処理装置１０，８０との間でデータを送受信する。ＰＣ５０は、例えば情報処理システム５の管理者又はユーザ等によって所持され、管理者端末４０と同様に、例えば乱数生成の結果報告等の通知が情報処理装置１０，８０から送信された場合に、その通知を受信してＰＣ５０のディスプレイ（図示略）に表示する。
【００４２】
スマートフォン６０は、例えば情報処理システム５の管理者又はユーザ等によって所持され、管理者端末４０と同様に、例えば乱数生成の結果報告等の通知が情報処理装置１０，８０から送信された場合に、その通知を受信してスマートフォン６０のディスプレイ（図示略）に表示する。
【００４３】
次に、上述した情報処理装置１０における乱数生成の動作の詳細について説明する。
【００４４】
先ず始めに、本実施の形態の情報処理装置１０における乱数生成動作の概要を説明する。本実施の形態では、情報処理装置１０は、乱数を生成するために、情報処理装置１０の動作時に取得可能な測定値の特性の一例として、正規分布のゆらぎ部分のデータを用いる。
【００４５】
図２Ａは、正規分布の一例を示す散布図である。
【００４６】
図２Ａに示す正規分布は、測定値のゆらぎの大きさの一例としての標準偏差が比較的小さくなるように、シミュレーションによって得られた散布図である。図２Ａ〜図２Ｆの横軸はそれぞれ測定値を示し、図２Ａ〜図２Ｆの縦軸はそれぞれ出現回数を示す。測定値の範囲は０〜２０００の値である。平均値は１０００である。ここで、測定値のゆらぎの大きさの一例としての標準偏差は１００である。測定値の範囲である０〜２０００の値は、例えば１１ビット（つまり、２のべき乗である２の１１乗）によって表現される。つまり、情報処理装置１０により取得される各測定値は、１１ビットのデータで表される。
【００４７】
図２Ｂは、１１ビットのデータのうち下位８ビットを抽出した結果のデータの一例を示す散布図である。
【００４８】
図２Ｂの散布図では、１１ビットのデータのうち下位８ビット以外のビットがマスク（つまり、除去）される処理が実行された結果、下位８ビットのデータだけの出現回数が示されている。図２Ｂに示すように、下位８ビットのデータの出現回数は１００〜１５０の値の範囲でやや下がり、その両側の範囲で上がっている。つまり、下位８ビットだけを抽出した場合でも、下位８ビットの測定値の出現回数が一様でないことが分かる。言い換えると、出現回数が一様でないために、特定の値に偏って出現することがあり、乱数としての適格性には欠けるということが分かる。
【００４９】
図２Ｃは、１１ビットのデータのうち下位４ビットを抽出した結果のデータの一例を示す散布図である。
【００５０】
図２Ｃの散布図では、１１ビットのデータのうち下位４ビット以外のビットがマスク（つまり、除去）される処理が実行された結果、下位４ビットのデータだけの出現回数が示されている。図２Ｃに示すように、下位４ビットのデータの出現回数は０〜１５の値の範囲で同じ（つまり、均等）である。つまり、下位４ビットだけを抽出した場合には、下位４ビットの測定値の出現回数は一様となることが分かる。従って、特定の値に偏って出現することが無いため、下位４ビットのデータは、乱数の生成への適格性を有するデータと判断できる。
【００５１】
図２Ｄは、他の正規分布の一例を示す散布図である。
【００５２】
図２Ｄの正規分布は、図２Ａに示す正規分布と比べ、測定値のゆらぎの大きさの一例としての標準偏差が比較的大きくなるように、シミュレーションによって得られた散布図である。測定値の範囲は０〜２０００の値である。平均値は１０００である。ここで、測定値のゆらぎの大きさの一例としての標準偏差は２００である。図２Ａと同様、測定値の範囲である０〜２０００の値は、例えば１１ビット（つまり、２のべき乗である２の１１乗）によって表現される。
【００５３】
図２Ｅは、１１ビットのデータのうち下位１０ビットを抽出した結果のデータを表す散布図である。
【００５４】
図２Ｅの散布図では、１１ビットのデータのうち下位１０ビット以外のビットがマスク（つまり、除去）される処理が実行された結果、下位１０ビットのデータだけの出現回数が示されている。図２Ｅに示すように、下位１０ビットのデータの出現回数は４００〜６００の値の範囲で大きく下がり、その両側で徐々に上がっている。つまり、下位１０ビットだけを抽出した場合でも、下位１０ビットの測定値の出現回数が明らかに一様でないことが分かる。言い換えると、出現回数が明らかに一様でないために、特定の値に偏って出現することがあり、乱数としての適格性には欠けるということが分かる。
【００５５】
図２Ｆは、１１ビットのデータのうち下位８ビットを抽出した結果のデータを表す散布図である。
【００５６】
図２Ｆの散布図では、１１ビットのデータのうち下位８ビット以外のビットがマスク（つまり、除去）される処理が実行された結果、下位８ビットのデータだけの出現回数が示されている。図２Ｆに示すように、下位８ビットのデータの出現回数は０〜２５５の値の範囲で同じ（つまり、均等）である。つまり、下位８ビットだけを抽出した場合には、下位８ビットの測定値の出現回数は一様となることが分かる。従って、特定の値に偏って出現することが無いため、下位８ビットのデータは、乱数の生成への適格性を有するデータと判断できる。
【００５７】
このように、図２Ｄに示す正規分布では、図２Ａに示す正規分布と比べ、４ビット分多く、乱数の生成に用いることが可能なデータが得られる。つまり、正規分布のゆらぎ部分のデータを用いて乱数を生成する場合、測定値のゆらぎの大きさの一例としての標準偏差によって、乱数の生成に使用可能なビット（有効ビット）の数が異なる。言い換えると、情報処理装置１０，８０は、測定値の標準偏差を求めることで、乱数の生成に使用可能な有効ビットを決定することが可能となる。
【００５８】
続いて、情報処理装置１０，８０により生成される乱数を構成する有効ビットのビット数（以下、「有効ビット数」とも称する）の決定について説明する。
【００５９】
本実施の形態を含む各実施の形態の情報処理装置１０，８０において、サンプリングによって、ノイズ源（つまり、情報処理装置１０，８０が取得する測定値を生成するソース（供給源））から収集された測定値のデータは、測定値の上位側の桁の理論ビットと測定値の下位側の桁の有効ビットとで構成され、Ｍ（Ｍ：２進数で表した場合に２のべき乗となる整数値）桁のビットを有する。理論ビットは、測定値の理論値付近の値であり、ビットの出現パターンが一定に近く、乱数の生成への適格性に欠け、乱数の生成に使用できないビット列又はビットである。有効ビットは、Ｎ（Ｎ＜Ｍとなる整数値）桁の値であり、ノイズ源のゆらぎから生じる測定値の誤差付近の値であり、ビットの出現パターンがランダムで、乱数の生成への適格性を有し、乱数の生成に使用できるビット列又はビットである。例えば、測定値が１０進数表記で「２４６」、２進数表記では「１１１１０１１０」の８桁のビット列で表される場合、上位６桁のビット列（つまり、「１１１１０１」）を理論ビット、下位２桁のビット列（つまり、「１０」）を有効ビットにそれぞれ決めることが可能である。
【００６０】
本実施の形態では、情報処理装置１０，８０は、ノイズ源から取得された測定値のゆらぎの大きさ（例えば測定値の標準偏差）を見積り（言い換えると、導出し）、このゆらぎの大きさに基づいて有効ビット数を決定する。情報処理装置１０，８０は、ゆらぎの大きさとして、上述した正規分布の標準偏差を用いて見積もることが可能である。また、情報処理装置１０，８０により決定された有効ビットの値が連結（連接）された値は、均等でかつ一様な出現回数を持つ値として、乱数として使用可能となる。
【００６１】
図３Ａは、標準偏差が小さい場合の有効ビットの一例を説明する図である。
【００６２】
図３Ａ，図３Ｂでも、図２Ａ〜図２Ｆと同様に、測定値とその出現回数との関係が示されている。図３Ａにおいて、標準偏差σが小さい場合（例えばσ＝３０）、８ビット幅で表される測定値のうち、上位７ビットが理論ビット、下位１ビットが有効ビットである。つまり、情報処理装置１０，８０が乱数を生成する際に、乱数を構成する有効ビットは、測定値の下位１ビットしか使用できないことになる。
【００６３】
図３Ｂは、標準偏差が大きい場合の有効ビットの一例を説明する図である。
【００６４】
図３Ｂにおいて、標準偏差σが大きい場合（例えばσ＝９０）、８ビット幅で表される測定値のうち、上位５ビットが理論ビット、下位３ビットが有効ビットである。つまり、情報処理装置１０，８０が乱数を生成する際に、乱数を構成する有効ビットは、測定値の下位３ビットを使用することができる。このように、情報処理装置１０，８０は、測定値のゆらぎの大きさ（例えば標準偏差）に応じて、乱数を構成するための有効ビットのビット数（有効ビット数）を可変的に決定でき、標準偏差が大きくなるに従って測定値から抽出する有効ビット数が多くなり、少ないサンプリング回数で乱数そのもの又は乱数の元となる値（シード値）を生成することができる。
【００６５】
図４は、乱数生成モジュール１２の動作概要の一例を示す図である。
【００６６】
乱数生成モジュール１２は、前述したように、ＣＰＵ１１によって実行されるソフトウェアモジュールである。具体的には、ゆらぎ見積部１３と、ビット抽出部１４と、ビット連結部１５とが、ＣＰＵ１１が実行するソフトウェア機能として実現される。
【００６７】
第１の取得部の一例としてのゆらぎ見積部１３は、ビット抽出部１４からゆらぎの見積もりを依頼されると（図中、（１）参照）、ノイズ源ｎｓのサンプリング（つまり、複数の測定値を収集して取得すること）を開始し（図中、（２）参照）、サンプリングによって測定値を取得してメモリ（例えばＲＡＭ１７又はフラッシュメモリ１８）に記憶する。ゆらぎ見積部１３は、測定値のゆらぎの大きさ（例えば標準偏差）を見積もる（言い換えると、導出する）ために必要なサンプル数分の測定値がメモリに記憶されたタイミングで、測定値の平均値、分散及び標準偏差をそれぞれ算出し、見積もり結果として測定値の標準偏差と平均値とをビット抽出部１４に通知する（図中、（３）参照）。
【００６８】
ここで、ゆらぎ見積部１３が、サンプリングによって取得したサンプル数分の測定値の標準偏差を算出する手順を説明する。
【００６９】
手順１：ゆらぎ見積部１３は、標準偏差を算出するために必要なサンプル数分の測定値をノイズ源ｎｓから取得し、それぞれの測定値を格納するための配列を用意する。サンプル数は、例えば公知の方法により、ゆらぎ見積部１３によって算出可能である。例えば、標準偏差を算出するために必要なサンプル数は、測定値の母集団の区間推定により、誤差、信頼度、想定する標準偏差の指定により、算出可能となる。
【００７０】
手順２：ゆらぎ見積部１３は、手順１において用意された配列に、ノイズ源ｎｓから取得されたサンプル数分の測定値を格納する。
【００７１】
手順３：ゆらぎ見積部１３は、手順２においてそれぞれの配列に格納されたサンプル数分の測定値を加算することにより、それぞれの測定値の合計値を算出する。
【００７２】
手順４：ゆらぎ見積部１３は、手順３で算出された合計値をサンプル数で除算することにより、測定値の平均値を算出する。
【００７３】
手順５：ゆらぎ見積部１３は、手順３で算出された合計値と手順４で算出された平均値とを用いて、手順１において取得されたサンプル数分の測定値における分散を算出する。
【００７４】
手順６：ゆらぎ見積部１３は、手順５で算出された分散の平方根を算出することにより、測定値の標準偏差を算出する。
【００７５】
ノイズ源ｎｓは、例えば低速オシレータ２４であり、低速オシレータ２４の１クロック期間内に、高速オシレータ２３から出力されるクロックを計数するクロックカウンタ２５の計数値を測定値として用いることができる。なお、サンプリング対象であるノイズ源ｎｓは、１つでも複数でもよい。複数のノイズ源ｎｓがある場合、ゆらぎ見積部１３は、それぞれのノイズ源ｎｓから取得した測定値のゆらぎの大きさ（例えば標準偏差）を見積もり、測定値の標準偏差と平均値とをビット抽出部１４に通知する。
【００７６】
また、ノイズ源ｎｓからの測定値は、情報処理装置１０，８０の内部で生成されてもよいし、外部装置から入力されてもよい。ノイズ源ｎｓからの測定値として、上述したクロックカウンタ２５の計数値の他、ネットワークを介して通信機器と送受信されるパケットの到達時間（デルタ時間）や、ＵＤＰ（User Datagram Protocol）或いはＴＣＰ／ＩＰ（Transmission Control Protocol／Internet Protocol）を用いて伝送されるパケットの遅延時間が挙げられる。また、ノイズ源ｎｓからの測定値として、ＣＰＵ１１がフラッシュメモリ１７やＨＤＤ１８等の記憶媒体に対して行う書込みの時間や読込みの時間が挙げられる。また、情報処理装置１０，８０のＣＰＵ１１に内蔵されるＡＤ変換器（図示略）によるＡ／Ｄ変換値の誤差や、ＣＰＵ１１に内蔵されるＤＡ変換器（図示略）によるＤ／Ａ変換値の誤差が挙げられる。
【００７７】
ゆらぎ見積部１３は、ビット抽出部１４からのゆらぎ見積もり依頼のタイミングで、ノイズ源ｎｓをサンプリングして、ノイズ源ｎｓから得られた測定値のゆらぎの大きさ（例えば標準偏差）を見積もる（言い換えると、導出する）。なお、ゆらぎ見積部１３は、常にノイズ源ｎｓをサンプリングし、メモリ（例えばフラッシュメモリ１８）に記憶される測定値の標準偏差と平均値のデータを更新しておき、ビット抽出部１４からゆらぎ見積もりを依頼された場合、メモリ（例えばフラッシュメモリ１８）に記憶された測定値の標準偏差と平均値のデータをビット抽出部１４に通知してもよい。
【００７８】
ビット抽出部１４は、ゆらぎ見積部１３にゆらぎ見積もりを依頼し、ノイズ源ｎｓのゆらぎの大きさである標準偏差と測定値の平均値とを受け取る。第２の取得部の一例としてのビット抽出部１４は、受け取った標準偏差から、予め登録された標準偏差と有効ビット数との対応表（テーブル）を用いて、有効ビット数を決定し、乱数の生成に用いるＮ桁の有効ビット数に関する情報を取得する。
【００７９】
図５は、標準偏差と有効ビット数との対応表Ｔｂ１を示すテーブルである。
【００８０】
図５では、説明を分かり易くするために、模式的かつ意図的に標準偏差を小さい数字として並べてあり、以下の図９においても同様である。この対応表Ｔｂ１には、標準偏差に対応する有効ビット数の一例が示される。具体的に、対応表Ｔｂ１には、標準偏差が１〜５である場合、情報処理装置１０，８０は、有効ビット数を０と決定するための情報が登録されている。この場合には、情報処理装置１０，８０は、有効ビットを抽出することができない（つまり、乱数又はシードを生成することができない）。また、この対応表Ｔｂ１には、標準偏差が６や７である場合には、情報処理装置１０，８０は有効ビット数を１と決定し、標準偏差が８〜１０である場合には有効ビット数を２と決定し、標準偏差が１１〜１３である場合には有効ビット数を３と決定するための情報がそれぞれ登録されている。
【００８１】
ビット抽出部１４は、乱数を生成する度に、ゆらぎ見積もり依頼をゆらぎ見積部１３に行ってもよい。また、ビット抽出部１４は、予めゆらぎの大きさを見積もって決定した有効ビット数をメモリ（例えばフラッシュメモリ１８）に記憶しておき、乱数を生成する時、ゆらぎ見積部１３にゆらぎ見積もりを依頼せず、メモリ（例えばフラッシュメモリ１８）に記憶されている有効ビット数を使用してもよい。なお、このときに使用されるメモリは、揮発性メモリ、不揮発性メモリのいずれでもよい。
【００８２】
ビット抽出部１４は、有効ビット数を決定すると、ノイズ源のサンプリングを開始し（図中、（４）参照）、サンプリングによって得られた測定値毎に、決定された有効ビット数分の値に対応する有効ビットを抽出し、ビット連結部１５に渡す（図中、（５）参照）。ノイズ源ｎｓのサンプリングは、測定値から抽出した有効ビットの総和が、Ｌ（Ｌ≧Ｎとなる既定の整数値）桁の指定ビットの桁数になるまで繰り返される。なお、指定ビットの桁数を示す値Ｌは、測定値の桁数を示す値Ｍと同じでもよいし、測定値の桁数を示す値Ｍより大きくてもよい。
【００８３】
乱数生成部の一例としてのビット連結部１５は、ビット抽出部１４から受け取った有効ビットをビット列の最下位から順に指定ビット数になるまで連結（連接）する。ビット連結部１５は、ビット列の合計が指定ビット数（つまり、乱数の桁数）に達すると、指定ビット列からなる乱数を出力する（図中、（６）参照）。なお、有効ビットの連結は、最下位から順に行われる以外にも、最上位から順に行われてもよいし、ビット列を構成する任意のビット位置に当てはめることで行われてもよい。
【００８４】
図６は、実施の形態１の情報処理装置１０，８０における乱数生成動作手順の一例を詳細に示すフローチャートである。
【００８５】
図６を参照して、情報処理装置１０を例示して乱数生成動作手順を説明するが、情報処理装置８０においても同様であり、以下の実施の形態においても同様である。
【００８６】
図６において、情報処理装置１０のＣＰＵ１１或いは乱数生成モジュール１２は、所定のタイミングで乱数生成動作を開始する。所定のタイミングは、例えばＣＰＵ１１が計時する時刻が所定の時刻になった場合、又はＳＳＬ通信を開始する際のＳＳＬネゴシエーションにおいて鍵生成するために乱数が必要になった場合、又は、情報処理装置１０が備えるセンシングデバイス（図示略）により対象物（例えば人物）が検知された場合が挙げられるが、これらの場合に限定されず、以下の実施の形態においても同様である。
【００８７】
乱数生成動作が開始されると、ビット抽出部１４は、ゆらぎ見積部１３にゆらぎ見積もりの依頼を行う。ゆらぎ見積部１３は、ビット抽出部１４からゆらぎ見積もりの依頼を受けると、ノイズ源ｎｓをサンプリングして複数の測定値を取得し、取得された複数の測定値を用いて、上述した手順１〜手順６の方法に従って平均値及び標準偏差を導出する（Ｓ１）。ゆらぎ見積部１３は、ゆらぎ見積もりの結果として平均値及び標準偏差をビット抽出部１４に渡す。ビット抽出部１４は、標準偏差に対応する有効ビット数の値が１以上であるか否かを判別する（Ｓ２）。ビット抽出部１４は、有効ビット数の値が１以上である場合（Ｓ２、ＹＥＳ）、標準偏差に対応する有効ビット数を決定する（Ｓ３）。ビット抽出部１４は、決定した有効ビット数に関する情報をメモリ（例えばＲＡＭ１７、フラッシュメモリ１８）に記憶する（Ｓ４）。
【００８８】
ビット抽出部１４は、ノイズ源ｎｓをサンプリングして測定値を取得する（Ｓ５）。ビット抽出部１４は、取得された測定値から、ステップＳ３において決定された有効ビット数に関する情報に基づいて、有効ビット数分の有効ビットを抽出する。ビット抽出部１４は、抽出された有効ビット数分の有効ビットのデータをビット連結部１５に渡す（Ｓ６）。ビット連結部１５は、ビット抽出部１４から受け取った有効ビットのデータをビット列の最下位から順に連結する（Ｓ７）。
【００８９】
ビット連結部１５は、有効ビットからなるビット列が乱数又はシード値の桁数に対応する指定ビット数に達したか否かを判別する（Ｓ８）。有効ビットからなるビット列が指定ビット数に達しない場合（Ｓ８、ＮＯ）、ＣＰＵ１１或いは乱数生成モジュール１２の処理はステップＳ５に戻る。一方、有効ビットからなるビット列が指定ビット数に達した場合（Ｓ８、ＹＥＳ）、図６に示すＣＰＵ１１或いは乱数生成モジュール１２の処理は終了する。
【００９０】
また一方、ステップＳ２で標準偏差に対応する有効ビット数の値が０、つまり測定値から有効ビットを抽出できない場合（Ｓ２、ＮＯ）、ビット抽出部１４は、外部装置である管理者端末４０及びスマートフォン６０の少なくとも一方に、警告又は異常の通知を行うように通信Ｉ／Ｆ回路２０に指示する（Ｓ９）。これに伴い、情報処理装置１０は、外部装置である管理者端末４０及びスマートフォン６０の少なくとも一方に、警告又は異常の通知を行う。この後、図６に示すＣＰＵ１１或いは乱数生成モジュール１２の処理は終了する。
【００９１】
以上により、実施の形態１の情報処理装置１０或いは乱数生成モジュール１２では、ゆらぎ見積部１３は、ノイズ源ｎｓからＭ（Ｍ：２のべき乗となる整数値）桁のビットを有する複数の測定値を取得する。ビット抽出部１４は、取得された複数の測定値に基づく、乱数の生成に用いるＮ（Ｎ≦Ｍとなる整数値）桁の有効ビット数に関する情報を取得する。ビット連結部１５は、有効ビット数に関する情報を用いて、Ｌ（Ｌ≧Ｎとなる既定の整数値）桁の有効ビットからなるデータを有する乱数を生成する。
【００９２】
これにより、乱数生成装置の一例としての乱数生成モジュール１２或いは情報処理装置１０は、簡易な構成で、動作時に得られる測定値のゆらぎの大きさに合わせて、出現頻度が一様となる有効ビット数分の測定値を用いて乱数を効率的に生成できる。また、乱数生成装置の一例としての乱数生成モジュール１２或いは情報処理装置１０は、乱数生成モジュールのような特殊なハードウェアが組み込まれないローエンド仕様の電子機器（例えばＩｏＴ機器）を用いて構成可能となるので、機器全体のコストアップを効果的に抑制することができる。
【００９３】
また、ビット抽出部１４は、一定数の測定値の標準偏差（つまり、測定値の出現頻度のゆらぎの大きさ）を基に、有効ビット数（有効ビットに関する情報）を導出する。このように、乱数生成モジュール１２或いは情報処理装置１０は、一定期間のサンプリングによって取得された複数の測定値から得られた標準偏差を基に、乱数の生成に用いる有効ビット数を決定するので、正規分布の態様で出現する測定値の出現頻度の適正なゆらぎを用いて、一様な出現頻度で得られる有効ビット数分の有効ビットからなる適正な乱数を生成できる。
【００９４】
また、ビット抽出部１４は、測定値のゆらぎの大きさ（例えば標準偏差）と有効ビット数とを対応付ける対応表Ｔｂ１（テーブル）を用いて、測定値のゆらぎの大きさ（例えば標準偏差）に対応する有効ビット数に関する情報を導出する。このように、乱数生成モジュール１２或いは情報処理装置１０は、対応表Ｔｂ１を用いることで、情報処理装置１０に大きな負荷をかけることなく、標準偏差に対応する有効ビット数を簡単に導出できる。
【００９５】
また、有効ビット数に関する情報が導出不可である場合、通知部の一例としてのビット抽出部１４或いは情報処理装置１０は、管理者端末４０やスマートフォン６０に警告又は異常の旨を通知する（つまり、警報又は異常の旨を外部装置に出力する）。これにより、管理者又はユーザは、有効ビット数が導出できないことと、乱数生成モジュール１２の機能を有する情報処理装置１０において何かしらの異常があることを即座に知ることができる。
【００９６】
（実施の形態１の変形例）
実施の形態１では、乱数生成動作が開始される度に、測定値のゆらぎの大きさ（例えば標準偏差）の見積もりが行われた。実施の形態１の変形例では、既に、乱数生成モジュール１２のビット抽出部１４によって、標準偏差に対応する有効ビット数が決定され、有効ビット数が予めメモリ（例えばＲＡＭ１７、フラッシュメモリ１８）に登録されている場合を示す。
【００９７】
ここでは、予め有効ビット数を決定する装置は、有効ビット数が登録される情報処理装置１０である。なお、有効ビット数が登録される情報処理装置１０は、外部装置（例えば情報処理装置８０、又は図１に示す管理者端末４０）によって有効ビット数が決定され、その外部装置から入力される有効ビット数の情報を受け取ってメモリ（例えばＲＡＭ１７、フラッシュメモリ１８）に登録してもよい。また、情報処理装置１０は、ユーザの入力操作によって有効ビット数の情報を受け取り、メモリ（例えばＲＡＭ１７、フラッシュメモリ１８）に登録してもよい。
【００９８】
本変形例の情報処理装置１０のハードウェア構成は、実施の形態１の情報処理装置１０と同じハードウェア構成であるので、実施の形態１と同一の構成要素については同一の符号を用いることで、その説明を簡略化又は省略する。なお、情報処理装置１０が、外部装置からの入力或いはユーザの入力操作によって、有効ビット数の情報を受け取る場合、乱数生成モジュール１２内のゆらぎ見積部１３の構成を省くことができる。
【００９９】
図７は、実施の形態１の変形例の情報処理装置１０における乱数生成動作手順の一例を詳細に示すフローチャートである。
【０１００】
図７において、情報処理装置１０のＣＰＵ１１或いは乱数生成モジュール１２は、所定のタイミングで乱数生成動作を開始する。所定のタイミングの具体例については、実施の形態１において説明したので、ここでは説明を省略する。
【０１０１】
ビット抽出部１４は、予めメモリ（例えばＲＡＭ１７、フラッシュメモリ１８）に記憶されている、値が１以上の有効ビット数に関する情報を読み出して取得する（Ｓ１１）。なお、メモリは、電源オフでも消去されない、不揮発性メモリが望ましいが、揮発性メモリであってもよい。
【０１０２】
ビット抽出部１４は、ノイズ源ｎｓをサンプリングして測定値を取得する（Ｓ１２）。ビット抽出部１４は、取得された測定値から、ステップＳ１１において取得された有効ビット数に関する情報に基づいて、有効ビット数の桁数に対応した有効ビットを抽出する。ビット抽出部１４は、抽出された有効ビット数分の有効ビットのデータをビット連結部１５に渡す（Ｓ１３）。ビット連結部１５は、ビット抽出部１４から受け取った有効ビットのデータを有効ビットからなるビット列の最下位から順に連結する（Ｓ１４）。なお、有効ビットの連結は、最下位から順に行われる以外にも、最上位から順に行われてもよいし、ビット列を構成する任意のビット位置に当てはめることで行われてもよい。
【０１０３】
ビット連結部１５は、有効ビットからなるビット列が乱数又はシード値の桁数に対応する指定ビット数に達したか否かを判別する（Ｓ１５）。有効ビットからなるビット列が指定ビット数に達しない場合（Ｓ１５、ＮＯ）、ＣＰＵ１１或いは乱数生成モジュール１２の処理はステップＳ１２に戻る。一方、有効ビットからなるビット列が指定ビット数に達した場合（Ｓ１５、ＹＥＳ）、図７に示すＣＰＵ１１或いは乱数生成モジュール１２の処理は終了する。
【０１０４】
以上により、本変形例の情報処理装置１０では、有効ビット数に関する情報はメモリ（例えばＲＡＭ１７、フラッシュメモリ１８）に保持される。つまり、情報処理装置１０は、予め外部装置（例えば情報処理装置８０）等の乱数生成モジュールのビット抽出部１４によって決定された、標準偏差に対応する有効ビット数をメモリ（例えばＲＡＭ１７、フラッシュメモリ１８）に記憶しておく。これにより、情報処理装置１０は、乱数を生成する際、有効ビット数を決定する処理を省くことができ、情報処理装置１０の処理速度を向上できる。また、乱数生成モジュールを省くことで、情報処理装置をより一層簡単な構成にできる。
【０１０５】
（実施の形態２）
実施の形態１では、乱数生成動作が開始された後、有効ビット数を決定する処理が原則行われる。実施の形態２では、後述する所定の見積もりタイミングに該当した場合に限って、有効ビット数が決定される場合を示す。
【０１０６】
また、実施の形態２の情報処理装置１０のハードウェア構成は、実施の形態１の情報処理装置１０と同一であるので、実施の形態１と同一の構成要素については同一の符号を用いることで、その説明を簡略化又は省略する。
【０１０７】
図８は、実施の形態２の情報処理装置１０における乱数生成動作手順の一例を詳細に示すフローチャートである。
【０１０８】
図８に示す乱数生成動作手順において、実施の形態１の乱数生成動作手順におけるそれぞれの処理と同一の処理については、同一のステップ番号を付すことで、その説明を簡略化又は省略する。
【０１０９】
評価部の一例としてのビット抽出部１４は、ゆらぎの大きさを見積もるか否かを判別する（Ｓ１Ａ）。ゆらぎの大きさを見積もるか否かの判断は、例えば現時点が所定の見積もりタイミングであるか否かによって決まる。例えば、予め設定された時間（秒、分、時間、日、月、年等の単位）が経過した場合、見積もりタイミングであると判断される。これは、長い期間、ゆらぎの大きさを見積もらないままにしておくと、測定値の特性（つまり、測定値のゆらぎの大きさ）が変動することによって、ゆらぎの大きさの変動に連動して、有効ビット数が変動している可能性が高いためである。
【０１１０】
また、上記時間の経過以外にも、例えば、生成される測定値のビット数が変化した場合、見積もりタイミングであると判断される。これは、測定値のビット数の変化とともに有効ビット数も変化している可能性が高いためである。また、温度が変化した場合、見積もりタイミングであると判断される。これは、温度変化によって有効ビット数が変化している可能性が高いためである。また、情報処理装置１０や外部装置に供給される電圧が変動した場合、見積もりタイミングであると判断される。これは、電圧変動によって有効ビット数が変化している可能性が高いためである。また、外部装置からの指示や、管理者からネットワークを介した指示があった場合、見積もりタイミングであると判断される。これは、定期的に有効ビット数をチェックする必要等があるためである。
【０１１１】
ステップＳ１Ａでゆらぎの大きさを見積もると判別した場合（Ｓ１Ａ、ＹＥＳ）、ビット抽出部１４は、ゆらぎ見積部１３にゆらぎ見積もりの依頼を行う。ゆらぎ見積部１３は、ビット抽出部１４からゆらぎ見積もりの依頼を受けると、実施の形態１と同様にして、ステップＳ１の処理を行う。
【０１１２】
一方、ステップＳ１Ａでゆらぎの大きさを見積もらないと判別した場合（Ｓ１Ａ、ＮＯ）、ゆらぎ見積部１３は、メモリ（例えばＲＡＭ１７、フラッシュメモリ１８）に記憶された有効ビット数の情報を取り出す（Ｓ１０）。この後、ビット抽出部１４は、実施の形態１と同様、ステップ５以降の処理を行う。
【０１１３】
また、ステップＳ８で有効ビットからなるビット列が指定ビット数に達していない場合（Ｓ８、ＮＯ）、ＣＰＵ１１或いは乱数生成モジュール１２の処理はステップＳ１Ａの処理に戻り、同様の処理が繰り返される。
【０１１４】
このように、実施の形態２の情報処理装置１０では、評価部の一例としてのゆらぎ見積部１３は、測定値のゆらぎの大きさ（例えば標準偏差）を導出して評価する。また、ゆらぎ見積部１３は、見積もりタイミング（言い換えると、ゆらぎの大きさの評価タイミング）に該当する場合、実施の形態１と同様の方法で、測定値のゆらぎの大きさ（例えば標準偏差）を導出する。これにより、情報処理装置１０或いは乱数生成モジュール１２は、ノイズ源の測定値が正規分布となるような適正なゆらぎでゆらいでいる場合に有効ビット数を決定でき、乱数の一様性を担保できる。また、見積もりタイミングが適正でない場合には、有効ビット数の決定処理を省くことができ、情報処理装置１０にかかる負荷を低減できる。
【０１１５】
（実施の形態３）
実施の形態１，２では、有効ビット数を決定する際に用いられる対応表Ｔｂ１には、標準偏差に対応する有効ビット数が示される。この対応表Ｔｂ１では、測定値のゆらぎが小さく、乱数を生成するには適格性に欠けると判断する例として、標準偏差が１〜５の値である場合、有効ビット数の値を０とし、有効ビットを生成できない（つまり、有効ビットを抽出できない）。実施の形態３では、測定値のゆらぎが大きく、標準偏差に対応する有効ビット数が１以上であって、乱数を生成することが可能な場合でも、乱数を生成する標準偏差の範囲を管理者又はユーザが指定できるようにする。
【０１１６】
また、実施の形態３の情報処理装置１０のハードウェア構成は、実施の形態１の情報処理装置１０とほぼ同一の構成を有する。実施の形態１と同一の構成要素については同一の符号を用いることで、その説明を簡略化又は省略する。
【０１１７】
図９は、実施の形態３における標準偏差と有効ビット数と乱数生成可否との対応表Ｔｂ２を示すテーブルである。
【０１１８】
この対応表Ｔｂ２は、情報処理装置１０のユーザによって予め作成され、メモリ（ＲＡＭ１７、フラッシュメモリ１８）に記憶される。対応表Ｔｂ２には、標準偏差に対応する有効ビット数と、その有効ビット数に対応して情報処理装置１０によって乱数が生成されるかどうかを示す乱数生成可否との一例が示される。具体的に、対応表Ｔｂ２には、標準偏差が１〜５である場合、有効ビット数は０であり、標準偏差が６〜７である場合、有効ビット数は１であり、標準偏差が８である場合、有効ビット数は２であり、標準偏差が１〜８の場合には、情報処理装置１０，８０の正常時の動作から外れ、異常の可能性があるとして、乱数又はシードを生成させないことが登録されている。ここで、異常とは、例えば情報処理装置１０，８０の既定の動作保証年数を担保するための動作保証範囲から外れる動作（言い換えると、故障中か間もなく故障する故障寸前の状況時の動作）を行う状態を指す。動作保障範囲とは、ノイズ源のスペックで想定される標準偏差、平均値の範囲である。動作保障範囲を外れる理由は、例えば故障（故障寸前）、経年劣化である。また、標準偏差が９〜１０である場合に、有効ビット数は２、標準偏差が１１〜１３である場合に有効ビット数は３であること等が登録されている。また、標準偏差が１３以上である場合には、情報処理装置１０，８０の正常時の動作から外れ、異常の可能性があるとして、乱数又はシードを生成させないことが登録されている。このように、対応表Ｔｂ２では、たとえ標準偏差に対応する有効ビット数がある場合でも、ユーザによって指定された範囲（指定範囲）の標準偏差が９〜１２を正常であるとして、有効ビット数が求められる。
【０１１９】
本実施の形態では、通知部の一例としてのビット抽出部１４は、ヘルスチェック機能を有しており、ゆらぎ見積部１３から受け取った標準偏差と平均値とが指定範囲（上述参照）外である場合、ノイズ源ｎｓが異常（例えば、ノイズ源としての役割を有する情報処理装置１０，８０内の電子部品（例えば低速オシレータ２４）が物理的に損傷又は故障している可能性がある状態）であると判断し、警告又は異常の旨のメッセージを外部装置等に通知するように通信Ｉ／Ｆ回路２０に指示し、乱数生成動作を終了する。ビット抽出部１４は、警告又は異常の旨のメッセージを通知する場合、標準偏差と平均値とを併せて通知するように通信Ｉ／Ｆ回路２０に指示する。なお、警告又は異常の旨のメッセージの通知を指示する際、乱数生成動作を終了させることなく、ビット抽出部１４は、ノイズ源ｎｓから直接に測定値をサンプリングし、測定値から有効ビットを抽出し、抽出した有効ビットをビット連結部１５に渡すようにしてもよい。
【０１２０】
図１０は、実施の形態３の情報処理装置１０における乱数生成動作手順の一例を詳細に示すフローチャートである。
【０１２１】
図１０に示す乱数生成動作手順において、実施の形態１の乱数生成動作手順におけるそれぞれの処理と同一の処理については、同一のステップ番号を付すことで、その説明を簡略化又は省略する。
【０１２２】
図１０において、評価部の一例としてのゆらぎ見積部１３は、ノイズ源ｎｓをサンプリングして複数の測定値を取得し、取得された複数の測定値を用いて、平均値及び標準偏差をそれぞれ導出（算出）する（Ｓ１Ｂ）。ビット抽出部１４は、測定値の平均値が、ユーザにより想定される、指定範囲内にあるか否かを判別する（Ｓ２Ａ）。ここでは、測定値の平均値が適正な値であると想定される範囲（指定範囲）が、ユーザによって予め設定され、情報処理装置のメモリに登録されている。更に、ステップＳ２Ａにおいて、ビット抽出部１４は、標準偏差が対応表Ｔｂ２で示される指定範囲内であるか否かを判別する。
【０１２３】
平均値及び標準偏差がいずれも指定範囲内である場合（Ｓ２Ａ、ＹＥＳ）、ビット抽出部１４は、実施の形態１と同様に、ステップＳ３で標準偏差に対応するビット数を決定する。これ以降の処理は、実施の形態１と同様であるため説明を省略する。
【０１２４】
一方、平均値及び標準偏差の少なくとも一方が指定範囲内でない場合（Ｓ２Ａ、ＮＯ）、ビット抽出部１４は、ステップＳ９で外部装置である管理者端末４０及びスマートフォン６０の少なくとも一方に、警告又は異常の通知を行うように通信Ｉ／Ｆ回路２０に指示する（Ｓ９）。これに伴い、情報処理装置１０は、外部装置である管理者端末４０及びスマートフォン６０の少なくとも一方に、警告又は異常の通知を行う。この後、図１０に示すＣＰＵ１１或いは乱数生成モジュール１２の処理は終了する。
【０１２５】
以上により、実施の形態３の情報処理装置１０では、評価部の一例としてのゆらぎ見積部１３は、測定値のゆらぎの大きさ（例えば標準偏差）を導出して評価する。第２の取得部の一例としてのビット抽出部１４は、ゆらぎ見積部１３により標準偏差が指定範囲内であると判断された場合に、有効ビット数に関する情報を導出する。また、ビット抽出部１４は、ゆらぎ見積部１３により標準偏差が指定範囲外であると判断された場合に、管理者端末４０及びスマートフォン６０の少なくとも一方（外部装置）に、警告又は異常の通知（警報の通知）を行うように通信Ｉ／Ｆ回路２０に指示する。これにより、情報処理装置１０或いは乱数生成モジュール１２は、平均値及び標準偏差が指定範囲内である場合に有効ビット数を決定できるので、ユーザが乱数生成に有効であると考える標準偏差に対応する有効ビット数を用いて乱数を生成できる。従って、乱数の生成にユーザの意図を反映できる。
【０１２６】
また、情報処理装置１０或いは乱数生成モジュール１２は、平均値及び標準偏差の少なくとも一方が指定範囲から外れる場合には、有効ビット数の決定処理を省くことができ、情報処理装置１０にかかる負荷を低減できる。また、管理者端末４０やスマートフォン６０に警告（警報）が通知されるので、ユーザは、測定値の平均値及び標準偏差の少なくとも一方が指定範囲から外れたことを知ることができる。
【０１２７】
なお、指定範囲内か否かの判断において、ここでは、平均値と標準偏差の両方を用いたが、平均値を用いることなく、標準偏差だけを用いてもよい。つまり、標準偏差がユーザの指定範囲内である場合、有効ビット数を決定してもよい。これにより、有効ビット数を決定する処理を簡単化できる。
【０１２８】
以上、図面を参照しながら各種の実施の形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。また、発明の趣旨を逸脱しない範囲において、上述実施の形態における各構成要素を任意に組み合わせてもよい。
【産業上の利用可能性】
【０１２９】
本開示は、簡易な構成で、動作時に得られる測定値のゆらぎの大きさに合わせて乱数を効率的に生成し、機器全体のコストアップを抑制する乱数生成装置、情報処理装置及び乱数生成方法として有用である。
【符号の説明】
【０１３０】
５…情報処理システム
１０…情報処理装置
１１…ＣＰＵ
１２…乱数生成モジュール
１３…ゆらぎ見積部
１４…ビット抽出部
１５…ビット連結部
４０…管理者端末
６０…スマートフォン
ｎｓ…ノイズ源
【図１】
2018194917.tif 000003
【図２Ａ】
2018194917.tif 000004
【図２Ｂ】
2018194917.tif 000005
【図２Ｃ】
2018194917.tif 000006
【図２Ｄ】
2018194917.tif 000007
【図２Ｅ】
2018194917.tif 000008
【図２Ｆ】
2018194917.tif 000009
【図３Ａ】
2018194917.tif 000010
【図３Ｂ】
2018194917.tif 000011
【図４】
2018194917.tif 000012
【図５】
2018194917.tif 000013
【図６】
2018194917.tif 000014
【図７】
2018194917.tif 000015
【図８】
2018194917.tif 000016
【図９】
2018194917.tif 000017
【図１０】
2018194917.tif 000018