(57)【要約】【課題】乱数性の高い乱数を生成することができる情報処理装置を提供する。【解決手段】実施形態によれば、情報処理装置は、インターフェースと、センサと、プロセッサと、を備える。インターフェースは、外部装置とデータを送受信する。センサは、環境パラメータを測定する。プロセッサは、前記センサを用いて前記環境パラメータを測定し、前記環境パラメータに基づいて乱数を生成するための第１のシードを生成し、前記インターフェースを通じて、前記外部装置から第２のシードを取得し、前記第１のシードと前記第２のシードとを用いて乱数を生成する。【選択図】      図２
2019139681.tif 000002
【特許請求の範囲】
【請求項１】
外部装置とデータを送受信するインターフェースと、
環境パラメータを測定するセンサと、
前記センサを用いて前記環境パラメータを測定し、前記環境パラメータに基づいて乱数を生成するための第１のシードを生成し、
前記インターフェースを通じて、前記外部装置から第２のシードを取得し、
前記第１のシードと前記第２のシードとを用いて乱数を生成する、
プロセッサと、
を備える情報処理装置。
【請求項２】
前記プロセッサは、
前記インターフェースを通じて、乱数を生成させる乱数生成命令を受信し、
前記乱数生成命令に従って前記乱数を生成する、
前記請求項１に記載の情報処理装置。
【請求項３】
前記プロセッサは、
前記第１のシードの個数が前記乱数を生成するために必要なシードの個数よりも少ない場合に、前記インターフェースを通じて前記外部装置から前記第２のシードを取得する、
前記請求項１又は２に記載の情報処理装置。
【請求項４】
前記第１のシード及び前記第２のシードを格納するメモリを備え、
前記プロセッサは、所定の間隔で前記第１のシードを生成し、前記第１のシードを前記メモリに格納する、
前記請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記プロセッサは、
前記インターフェースを通じて、前記外部装置から前記第１のシードを要求するリクエストを受信し、
前記インターフェースを通じて、前記リクエストに従って前記第１のシードを前記外部装置に送信する、
前記請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記外部装置は、前記情報処理装置と同一のネットワークに接続する、
前記請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記環境パラメータは、温度である、
前記請求項１乃至６の何れか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置に関する。
【背景技術】
【０００２】
近年、ネットワークに接続するカメラ、照明又はエアコンなどのＩｏＴ機器が提供されている。ＩｏＴ機器は、他の装置とのデータの送受信などのため、温度などの環境パラメータに基づいて乱数を生成するものがある。
【０００３】
従来、ＩｏＴ機器は、センサなどのハードウエアの特性などによって環境パラメータの測定に偏りがあることがある。そのため、ＩｏＴ機器は、生成する乱数の乱数性が低下するおそれがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−５３８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の課題を解決するため、乱数性の高い乱数を生成することができる情報処理装置を提供する。
【課題を解決するための手段】
【０００６】
実施形態によれば、情報処理装置は、インターフェースと、センサと、プロセッサと、を備える。インターフェースは、外部装置とデータを送受信する。センサは、環境パラメータを測定する。プロセッサは、前記センサを用いて前記環境パラメータを測定し、前記環境パラメータに基づいて乱数を生成するための第１のシードを生成し、前記インターフェースを通じて、前記外部装置から第２のシードを取得し、前記第１のシードと前記第２のシードとを用いて乱数を生成する。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施形態に係る通信システムの構成例を示すブロック図である。
【図２】図２は、実施形態に係る機器の構成例を示すブロック図である。
【図３】図３は、実施形態に係る情報処理システムの動作例を示すシーケンス図である。
【発明を実施するための形態】
【０００８】
以下、実施形態について、図面を参照して説明する。  
実施形態に係る通信システムは、サーバと機器（ＩｏＴ機器）とを通信可能に接続する。機器は、種々の動作を行う。たとえば、機器は、カメラ、センサ又は家電などである。サーバは、機器を管理する。
【０００９】
図１は、通信システム１の構成例を示すブロック図である。図１が示すように、通信システム１は、サーバ１０、ルータ２０、第１の機器３１、第２の機器３２、第３の機器３３及びネットワーク４０などから構成される。
【００１０】
サーバ１０は、ネットワーク４０に接続する。ルータ２０は、ネットワーク４０に接続する。ルータ２０と第１の機器３１、第２の機器３２及び第３の機器３３とは、ＬＡＮなどの内部ネットワークを介して互いに接続する。
【００１１】
なお、通信システム１は、図１が示すような構成の他に必要に応じた構成を具備したり、通信システム１から特定の構成が除外されたりしてもよい。
【００１２】
サーバ１０は、第１の機器３１、第２の機器３２及び第３の機器３３を管理する。サーバ１０は、ネットワーク４０を介して第１の機器３１、第２の機器３２及び第３の機器３３とデータを送受信する。たとえば、サーバ１０は、ネットワーク４０を介して第１の機器３１、第２の機器３２及び第３の機器３３に対してコマンドを送信する。また、サーバ１０は、第１の機器３１、第２の機器３２及び第３の機器３３からデータを受信する。
【００１３】
サーバ１０は、第１の機器３１、第２の機器３２及び第３の機器３３に対して乱数を生成させる乱数生成命令を送信する。たとえば、乱数生成命令は、データを暗号化するための鍵を生成させる命令である。たとえば、乱数生成命令は、ＤＥＳ（Data Encryption Standard）、ＡＥＳ（Advanced Encryption Standard）又はＲＳＡなどの鍵を生成させる命令である。なお、乱数生成命令の構成は、特定の構成に限定されるものではない。
【００１４】
ルータ２０は、第１の機器３１、第２の機器３２及び第３の機器３３とネットワーク４０との間の通信を制御する。ルータ２０は、ネットワーク４０を介して第１の機器３１、第２の機器３２及び第３の機器３３とサーバ１０との間でデータを中継する。
【００１５】
また、ルータ２０は、第１の機器３１、第２の機器３２及び第３の機器３３の間の通信を制御する。  
ルータ２０は、第１の機器３１、第２の機器３２及び第３の機器３３とデータを送受信するためのネットワーク（ローカルエリアネットワーク（ＬＡＮ））を形成する。
【００１６】
第１の機器３１（情報処理装置）は、サーバ１０とデータを送受信する端末である。第１の機器３１は、家庭又はオフィスなどに設置される。たとえば、第１の機器３１は、カメラ、センサ、車両又は家電（照明、掃除機、エアコン又は空気清浄機など）などのＩｏＴ機器である。
【００１７】
第２の機器３２及び第３の機器３３は、第１の機器３１を同様である。なお、第２の機器３２及び第３の機器３３は、第１の機器３１と同一の機器でなくともよい。
【００１８】
ネットワーク４０は、サーバ１０とルータ２０と間などでデータを送受信するための通信網である。たとえば、ネットワーク４０は、インターネットである。また、ネットワーク４０は、独自の通信網であってもよい。  
なお、サーバ１０は、ルータ２０が形成するネットワークに接続するものであってもよい。
【００１９】
次に、第１の機器３１、第２の機器３２及び第３の機器３３について説明する。  
まず、第１の機器３１について説明する。
【００２０】
図２は、第１の機器３１の構成例を示すブロック図である。図２が示すように、第１の機器３１は、基本的な構成として、プロセッサ３１１、ＲＯＭ３１２、ＲＡＭ３１３、ＮＶＭ３１４、通信部３１５及び環境センサ３１６などを備える。
【００２１】
これらの各部は、データバスを介して互いに接続される。なお、第１の機器３１は、図２が示すような構成の他に必要に応じた構成を具備したり、特定の構成を除外したりしてもよい。
【００２２】
プロセッサ３１１は、第１の機器３１全体の動作を制御する機能を有する。プロセッサ３１１は、内部メモリ及び各種のインターフェースなどを備えてもよい。プロセッサ３１１は、内部メモリ、ＲＯＭ３１２又はＮＶＭ３１４が予め記憶するプログラムを実行することにより種々の処理を実現する。
【００２３】
なお、プロセッサ３１１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、プロセッサ３１１は、ハードウエア回路により実行される機能を制御する。
【００２４】
ＲＯＭ３１２は、予め制御用のプログラム及び制御データなどが記憶された不揮発性のメモリである。ＲＯＭ３１２に記憶される制御プログラム及び制御データは、予め第１の機器３１の仕様に応じて組み込まれる。ＲＯＭ３１２は、たとえば、第１の機器３１の回路基板を制御するプログラムなどを格納する。
【００２５】
ＲＡＭ３１３は、揮発性のメモリである。ＲＡＭ３１３は、プロセッサ３１１の処理中のデータなどを一時的に格納する。ＲＡＭ３１３は、プロセッサ３１１からの命令に基づき種々のアプリケーションプログラムを格納する。また、ＲＡＭ３１３は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【００２６】
ＮＶＭ３１４は、データの書き込み及び書き換えが可能な不揮発性のメモリである。ＮＶＭ３１４は、例えば、ハードディスク、ＳＳＤ、ＥＥＰＲＯＭ（登録商標）又はフラッシュメモリなどにより構成される。ＮＶＭ３１４は、第１の機器３１の運用用途に応じてプログラム、アプリケーション及び種々のデータを格納する。
【００２７】
ＮＶＭ３１４は、シードを格納する記憶領域３１４ａなどを備える。  
シードは、乱数を生成するための数値である。たとえば、プロセッサ３１１は、シードを所定の関数に代入して乱数を生成する。ここでは、シードは、２桁の整数である。なお、シードの構成は、特定の構成に限定されるものではない。  
記憶領域３１４ａは、複数のシードを格納する。
【００２８】
通信部３１５は、外部装置とデータを送受信するためのインターフェースである。ここでは、通信部３１５は、有線又は無線でルータ２０とデータを送受信するためのインターフェースである。通信部３１５は、プロセッサ３１１からの信号に従って所定のデータをルータ２０へ送信する。また、通信部３１５は、ルータ２０から受信したデータをプロセッサ３１１へ送信する。  
たとえば、通信部３１５は、ＬＡＮ接続、Ｂｌｕｅｔｏｏｔｈ（登録商標）接続又はＵＳＢ接続をサポートするものであってもよい。
【００２９】
環境センサ３１６は、環境パラメータ（たとえば、環境ノイズ）を測定するセンサである。環境センサ３１６は、第１の機器３１の内部又は外部の環境パラメータを測定する。環境パラメータは、環境の状態を示す値である。たとえば、環境パラメータは、温度、湿度、圧力又は加速度などである。なお、環境パラメータの内容は、特定の構成に限定されるものではない。
【００３０】
次に、第２の機器３２及び第３の機器３３について説明する。  
第２の機器３２は、基本的な構成として、プロセッサ３２１、ＲＯＭ３２２、ＲＡＭ３２３、ＮＶＭ３２４、通信部３２５及び環境センサ３２６などを備える。ＮＶＭ３２４は、記憶領域３２４ａなどを備える。プロセッサ３２１、ＲＯＭ３２２、ＲＡＭ３２３、ＮＶＭ３２４、記憶領域３２４ａ、通信部３２５及び環境センサ３２６は、第１の機器３１が備えるそれらと同様であるため説明を省略する。
【００３１】
また、第３の機器３３は、基本的な構成として、プロセッサ３３１、ＲＯＭ３３２、ＲＡＭ３３３、ＮＶＭ３３４、通信部３３５及び環境センサ３３６などを備える。ＮＶＭ３３４は、記憶領域３３４ａなどを備える。プロセッサ３３１、ＲＯＭ３３２、ＲＡＭ３３３、ＮＶＭ３３４、記憶領域３３４ａ、通信部３３５及び環境センサ３３６は、第１の機器３１が備えるそれらと同様であるため説明を省略する。
【００３２】
なお、環境センサ３２６及び３３６は、環境センサ３１６と異なる環境パラメータを測定してもよいし、同一の環境パラメータを測定してもよい。
【００３３】
次に、第１の機器３１、第２の機器３２及び第３の機器３３が実現する機能について説明する。第１の機器３１、第２の機器３２及び第３の機器３３が実現する機能は、同様であるため、ここでは、第１の機器３１が実現する機能について説明する。
【００３４】
まず、プロセッサ３１１は、環境パラメータに基づいてシード（第１のシード）を生成する機能を有する。  
プロセッサ３１１は、環境センサ３１６を用いて環境パラメータを測定する。環境パラメータを測定すると、プロセッサ３１１は、環境パラメータに基づいてシードを生成する。たとえば、プロセッサ３１１は、環境パラメータの値の所定の２桁（たとえば、小数点以下２桁）を整数化する。プロセッサ３１１は、整数化した値をシードとして取得する。
【００３５】
たとえば、環境パラメータが温度である場合、プロセッサ３１１は、測定された温度の小数点以下２桁を整数化した値をシードとして取得する。
【００３６】
プロセッサ３１１は、所定の間隔でシードを生成する。たとえば、プロセッサ３１１は、１秒間隔でシードを生成する。  
また、プロセッサ３１１は、生成したシードを記憶領域３１４ａに格納する。
【００３７】
また、プロセッサ３１１は、外部装置からシード（第２のシード）を取得する機能を有する。ここでは、プロセッサ３１１は、外部装置として第２の機器３２又は第３の機器３３からシードを取得する。
【００３８】
プロセッサ３１１は、ネットワーク４０を通じてサーバ１０から乱数生成命令を受信する。乱数生成命令を受信すると、プロセッサ３１１は、乱数生成命令に従って乱数を生成するために必要なシードの個数を特定する。必要なシードの個数を特定すると、プロセッサ３１１は、記憶領域３１４ａに格納されるシードの個数が必要なシードの個数以上であるか判定する。
【００３９】
記憶領域３１４ａに格納されるシードの個数が必要なシードの個数より少ないと判定すると、プロセッサ３１１は、通信部３１５を通じて外部装置にシードを要求するリクエストを送信する。
【００４０】
たとえば、プロセッサ３１１は、記憶領域３１４ａに格納されるシードの個数と必要なシードの個数との差分（不足数）を算出する。プロセッサ３１１は、要求するシードの個数として不足数を指定するリクエストを送信する。
【００４１】
また、プロセッサ３１１は、不足数を外部装置の個数（自身を除く機器の個数）で割った値に基づいてリクエストを生成してもよい。プロセッサ３１１は、要求するシードの個数として当該値を指定するリクエストを送信する。
【００４２】
また、プロセッサ３１１は、記憶領域３１４ａに格納可能な個数と現在格納される個数の差分（空き数）に基づいてリクエストを生成してもよい。プロセッサ３１１は、空き数を外部装置の個数（自身を除く機器の個数）で割った値を算出する。プロセッサ３１１は、要求するシードの個数として当該値を指定するリクエストを送信する。
【００４３】
プロセッサ３１１は、通信部３１５を通じて、リクエストに対するレスポンスとして外部装置からシードを受信する。シードを受信すると、プロセッサ３１１は、受信したシードを記憶領域３１４ａに格納する。
【００４４】
また、プロセッサ３１１は、記憶領域３１４ａが格納するシードに基づいて乱数を生成する機能を有する。即ち、プロセッサ３１１は、必要な個数のシードが記憶領域３１４ａにない場合、自身が生成したシードと外部装置から取得されたシードとに基づいて乱数を生成する。
【００４５】
プロセッサ３１１は、乱数生成命令に従って乱数を生成するために必要な個数のシードを記憶領域３１４ａから取得する。シードを取得すると、プロセッサ３１１は、取得したシードに基づいて乱数を生成する。たとえば、プロセッサ３１１は、シードを所定の関数に代入して乱数を生成する。
【００４６】
プロセッサ３１１は、生成した乱数を所定の処理に用いる。たとえば、プロセッサ３１１は、データを暗号化するための鍵として乱数を用いる。また、プロセッサ３１１は、サーバ１０とのデータ通信などのために乱数又は乱数に基づいて得られた数値をサーバ１０へ送信してもよい。また、プロセッサ３１１は、チャレンジレスポンス認証のチャレンジ生成のために乱数を用いてもよい。プロセッサ３１１が乱数を用いて行う処理は、特定の構成に限定されるものではない。
【００４７】
また、プロセッサ３１１は、外部装置からのリクエストに従ってシードを外部装置に送信する機能を有する。  
プロセッサ３１１は、通信部３１５を通じて外部装置（ここでは、第２の機器３２又は第３の機器３３）から所定の個数のシードを要求するリクエストを受信する。リクエストを受信すると、プロセッサ３１１は、リクエストによって指定される個数のシードを記憶領域３１４ａから取得する。シードを取得すると、プロセッサ３１１は、通信部３１５を通じて、取得したシードを含むレスポンスを外部装置に送信する。
【００４８】
なお、プロセッサ３１１は、リクエストによって指定される個数のシードが記憶領域３１４ａにない場合、エラーを示すレスポンスを送信してよい。また、この場合、プロセッサ３１１は、記憶領域３１４ａからシードを取得して、取得したシードを含むレスポンスを外部装置に送信してもよい。  
また、プロセッサ３１１は、外部装置に送信したシードを記憶領域３１４ａから削除する。
【００４９】
次に、通信システム１の動作例について説明する。  
図３は、通信システム１の動作例について説明するためのシーケンス図である。
【００５０】
第１の機器３１のプロセッサ３１１は、環境パラメータを測定してシードを生成し記憶領域３１４ａに格納する（Ｓ１１）。プロセッサ３１１は、所定の間隔でシードを生成する。また、第２の機器３２のプロセッサ３２１は、環境パラメータを測定してシードを生成し記憶領域３２４ａに格納する（Ｓ１２）。同様にプロセッサ３２１は、所定の間隔でシードを生成する。
【００５１】
また、第３の機器３３のプロセッサ３３１は、環境パラメータを測定してシードを生成し記憶領域３３４ａに格納する。（Ｓ１３）。同様にプロセッサ３３１は、所定の間隔でシードを生成する。
【００５２】
サーバ１０は、所定のタイミングで乱数生成命令を第１の機器３１に送信する（Ｓ１４）。  
第１の機器３１のプロセッサ３１１は、通信部３１５を通じて当該乱数生成命令を受信する。乱数生成命令を受信すると、プロセッサ３１１は、記憶領域３１４ａに格納されるシードの個数が乱数生成命令に必要なシードの個数以上であるか判定する（Ｓ１５）。
【００５３】
格納されるシードの個数が必要なシードの個数より少ないと判定すると（Ｓ１５、ＮＯ）、プロセッサ３１１は、通信部３１５を通じて第２の機器３２にシードを要求するリクエストを送信する（Ｓ１６）。
【００５４】
第２の機器３２にシードを要求するリクエストを送信すると、プロセッサ３１１は、通信部３１５を通じて第３の機器３３にシードを要求するリクエストを送信する（Ｓ１７）。  
なお、プロセッサ３１１は、Ｓ１６及びＳ１７を同時に行ってもよい。
【００５５】
第２の機器３２のプロセッサ３２１は、通信部３２５を通じてリクエストを受信する。リクエストを受信すると、プロセッサ３２１は、通信部３２５を通じてシードを第１の機器３１に送信する（Ｓ１８）。
【００５６】
第３の機器３３のプロセッサ３３１は、通信部３３５を通じてリクエストを受信する。リクエストを受信すると、プロセッサ３３１は、通信部３３５を通じてシードを第１の機器３１に送信する（Ｓ１９）。
【００５７】
第１の機器３１のプロセッサ３３１は、通信部３１５を通じて第２の機器３２及び第３の機器３３からそれぞれシードを受信する。シードを受信すると、プロセッサ３３１は、受信したシードを記憶領域３１４ａに格納する（Ｓ２０）。
【００５８】
格納されるシードの個数が必要なシードの個数以上であると判定した場合（Ｓ１５、ＹＥＳ）、又は、受信したシードを記憶領域３１４ａに格納した場合（Ｓ２０）、プロセッサ３１１は、乱数生成命令に従って乱数を生成する（Ｓ２１）。
【００５９】
なお、プロセッサ３１１は、乱数を生成した後、所定の処理を行ってもよい。また、通信システム１は、プロセッサ３１１が所定の処理を行った後に、Ｓ１１に戻ってもよい。
【００６０】
また、プロセッサ３１１は、記憶領域３１４ａに格納されるシードの個数に関わらず、外部装置からシードを取得してもよい。即ち、プロセッサ３１１は、Ｓ１５を行わず、Ｓ１６乃至Ｓ２０を実行してもよい。
【００６１】
また、プロセッサ３１１は、予め外部装置からシードを取得してもよい。たとえば、プロセッサ３１１は、乱数生成命令の受信を予期できた場合又は所定のタイミングで外部装置からシードを取得する。
【００６２】
また、プロセッサ３１１は、各外部装置からそれぞれ異なる個数のシードを取得してもよい。たとえば、プロセッサ３１１は、外部装置のシード生成能力に応じて取得するシードの個数を決定してもよい。また、プロセッサ３１１は、各外部装置からランダムに異なる個数のシードを取得してもよい。
【００６３】
また、通信システム１は、ルータ２０に接続する機器として２つの機器を備えてもよい。また、通信システム１は、ルータ２０に接続する機器として４つ以上の機器を備えてもよい。通信システム１がルータ２０に接続する機器として備える機器の個数は、特定の個数に限定されるものではない。
【００６４】
以上のように構成された通信システムは、所定の機器に他の機器からシードを送信する。当該所定の機器は、自身で生成したシードと他の機器からのシードとを格納する。その結果、当該所定の機器は、偏りの少ないシードの偏りを取得することができる。そのため、通信システムは、当該所定の機器に乱数性の高い乱数を生成させることができる。
【００６５】
また、通信システムは、所定の機器のシードが足りない場合に所定の機器に他の機器からシードを送信する。その結果、通信システムは、当該所定の機器に不足分のシードを生成させるよりも高速に当該所定の機器で乱数を生成することができる。
【００６６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６７】
１…通信システム、１０…サーバ、２０…ルータ、３１…第１の機器、３２…第２の機器、３３…第３の機器、４０…ネットワーク、３１１…プロセッサ、３１４…ＮＶＭ、３１４ａ…記憶領域、３１５…通信部、３１６…環境センサ、３２１…プロセッサ、３２４…ＮＶＭ、３２４ａ…記憶領域、３２５…通信部、３２６…環境センサ、３３１…プロセッサ、３３４…ＮＶＭ、３３４ａ…記憶領域、３３５…通信部、３３６…環境センサ。
【図１】
2019139681.tif 000003
【図２】
2019139681.tif 000004
【図３】
2019139681.tif 000005