(57)【要約】【課題】  ＩＰｖ６のアドレスの生成時までに品質の良い乱数を低コストで迅速に得られるようにすること。【解決手段】  ルータ要請を送信する送信手段と、前記ルータ要請に応じて、ランダム時間が経過した後に送信されるルータ広告を受信する受信手段と、前記ルータ要請の送信から前記ルータ広告の受信までの経過時間を計測する計測手段と、前記経過時間をシードソース値とし、前記計測手段による計測を繰り返すことにより得られる複数のシードソース値を記憶する記憶手段と、前記複数のシードソース値を組み合わせることにより、要求される乱数の品質に依存する一定以上のビット長を有する複数のシード値を生成するシード値生成手段とを具備し、前記複数のシード値が擬似乱数の生成に用いられる。【選択図】    図１
2009237911.tif 000002
【特許請求の範囲】
【請求項１】
ルータ要請を送信する送信手段と、
前記ルータ要請に応じて、ランダム時間が経過した後に送信されるルータ広告を受信する受信手段と、
前記ルータ要請の送信から前記ルータ広告の受信までの経過時間を計測する計測手段と、
前記経過時間をシードソース値とし、前記計測手段による計測を繰り返すことにより得られる複数のシードソース値を記憶する記憶手段と、
前記複数のシードソース値を組み合わせることにより、要求される乱数の品質に依存する一定以上のビット長を有する複数のシード値を生成するシード値生成手段とを具備し、前記複数のシード値が擬似乱数の生成に用いられることを特徴とする擬似乱数生成装置。
【請求項２】
前記ルータ広告が乱数応答を含んでいるか否かを判定する判定手段をさらに具備し、
前記ルータ広告が乱数応答を含んでいると判定され、かつ前記乱数応答が前記一定以上のビット長に満たないならば、前記乱数応答を前記複数のシードソース値に含め、
前記ルータ広告が乱数応答を含んでいると判定され、かつ前記乱数応答が前記一定以上のビット長を有するならば、前記乱数応答を前記複数のシード値に含める請求項１記載の擬似乱数生成装置。
【請求項３】
前記ルータ要請が、前記ルータ広告に前記乱数応答が付与されることを要求する乱数要求を含む請求項２記載の擬似乱数生成装置。
【請求項４】
ルータ要請を送信する送信ステップと、
前記ルータ要請に応じて、ランダム時間が経過した後に送信されるルータ広告を受信する受信ステップと、
前記ルータ要請の送信から前記ルータ広告の受信までの経過時間を計測する計測ステップと、
前記経過時間をシードソース値とし、前記計測手段による計測を繰り返すことにより得られる複数のシードソース値を記憶する記憶ステップと、
前記複数のシードソース値を組み合わせることにより、要求される乱数の品質に依存する一定以上のビット長を有する複数のシード値を生成するシード値生成ステップとを含み、前記複数のシード値が擬似乱数の生成に用いられることを特徴とする擬似乱数生成方法。
【請求項５】
コンピュータを、
ルータ要請を送信する送信手段、
前記ルータ要請に応じて、ランダム時間が経過した後に送信されるルータ広告を受信する受信手段、
前記ルータ要請の送信から前記ルータ広告の受信までの経過時間を計測する計測手段、
前記経過時間をシードソース値とし、前記計測手段による計測を繰り返すことにより得られる複数のシードソース値を記憶する記憶手段、
前記複数のシードソース値を組み合わせることにより、要求される乱数の品質に依存する一定以上のビット長を有する複数のシード値を生成するシード値生成手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰｖ６ネットワークに接続する特に低コストのノードに好適な、疑似乱数生成に関する。
【背景技術】
【０００２】
近年、インターネットが普及するようになり、インターネット上に公開された情報やサービスを誰もが容易に利用できるようになった。インターネットを通じてアクセスしたユーザに情報やサービスを提供する新たなコンピュータビジネスの市場も次々に開拓されている。インターネット利用に関する新たな技術開発はとどまるところを知らず、様々な領域に展開している。
【０００３】
ビルや工場の施設に設置されるセンサやアクチュエータなどを接続する制御ネットワークの技術分野においてもインターネットプロトコルを使用したネットワーク化（ＩＰ化）が進んでいる。センサなどに代表される低コストの組み込み機器をネットワークへ接続し、様々な情報をネットワークを介して取得し活用する動きが高まっている。ネットワークに接続された組み込み機器は「ノード」とも呼ばれる。
【０００４】
一方で、ネットワークに接続する場合には暗号化やプライバシー保護などのセキュリティが重要になる。暗号通信など多くの場合にも乱数が使用される。これらの安全性には乱数の品質が大きな影響を与えることが分かっている。高いセキュリティを得るには品質の良い乱数を得る必要がある。さらに、ＩＰｖ６アドレスでは、Ｅｔｈｅｒｎｅｔ（登録商標）などリンク層アドレスがＩＰｖ６アドレスで使用されるため、トラッキング（追跡）などのプライバシーの懸念がある。この問題を解決するためにＩＰｖ６では、乱数を元にＩＰｖ６アドレスを生成する技術が提供されている（例えば非特許文献１参照。）。
【非特許文献１】ＲＦＣ３０４１：Ｐｒｉｖａｃｙ  Ｅｘｔｅｎｓｉｏｎｓ  ｆｏｒ  Ｓｔａｔｅｌｅｓｓ  Ａｄｄｒｅｓｓ  Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  ｉｎ  ＩＰｖ６
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ＩＰｖ６においては、アドレスの生成時までに品質の良い乱数を得る必要がある。しかしながら、組み込み機器では品質の高い乱数生成装置を持つことはコストの関係上、困難であることが多い。そのため、ソフトウェアによる疑似乱数生成がしばしば使用される。ソフトウェアによる疑似乱数生成には「シード値」と呼ばれるものが必要である。シード値が同一であれば同一の疑似乱数列を得ることができることから、シード値をどのように選ぶかが重要となる。
【０００６】
例えば、組み込み機器の起動後の経過時間をシード値として使用することが考えられる。しかし、同種で多数の組み込み機器をネットワークに接続する構成においては、これら組み込み機器を一斉に立ち上げることになる。そうすると、複数の組み込み機器において起動後の経過時間が同一となる場合が起こり得る。したがって、起動後の経過時間をシード値として使用する場合には、複数の組み込み機器においてシード値が同一の値となってしまう可能性がある。この場合、シード値が推測されやすいという問題点がある。
【０００７】
一方、ＲＦＣ４０８６では、乱数の元となる値の集合（エントロピープール）の生成方法について記載されている。しかしながら、エントロピープールの生成には比較的時間がかかるという問題がある。
【０００８】
このように、ＩＰｖ６においては、アドレスの生成時までに品質の良い乱数を低コストで迅速に得ることが困難であるという問題点がある。
【０００９】
本発明は上記事情を考慮してなされたものであり、ＩＰｖ６のアドレスの生成時までに品質の良い乱数を低コストで迅速に得られるようにする。
【課題を解決するための手段】
【００１０】
本発明の一観点に係る擬似乱数生成装置は、ルータ要請を送信する送信手段と、前記ルータ要請に応じて、ランダム時間が経過した後に送信されるルータ広告を受信する受信手段と、前記ルータ要請の送信から前記ルータ広告の受信までの経過時間を計測する計測手段と、前記経過時間をシードソース値とし、前記計測手段による計測を繰り返すことにより得られる複数のシードソース値を記憶する記憶手段と、前記複数のシードソース値を組み合わせることにより、要求される乱数の品質に依存する一定以上のビット長を有する複数のシード値を生成するシード値生成手段とを具備し、前記複数のシード値が擬似乱数の生成に用いられることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ＩＰｖ６のアドレスの生成時までに品質の良い乱数を低コストで迅速に得ることのできる擬似乱数生成装置及び方法が提供される。このような本発明は、特に低コストの組み込み機器（ノード）に好適である。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しながら本発明の実施形態を説明する。なお以下の説明において、略語「ＲＳ」とは、「ルータ要請（Ｒｏｕｔｅｒ  Ｓｏｌｉｃｉｔａｔｉｏｎ）」のことをいう。また、略語「ＲＡ」とは「ルータ広告（Ｒｏｕｔｅｒ  Ａｄｖｅｒｔｉｓｅｍｅｎｔ）」のことをいう。また、略語「ＲＳ−ＲＡ」とは、組み込み機器（ノード）からルータ要請を送信し、該ルータ要請に対するルータ広告を受信する一続きの処理のことをいう。
【００１３】
本発明の基本的な実施形態として、ＲＳ−ＲＡのインターバルを計測し、該インターバルの計測を所定回数以上繰り返して複数のシードソース値を求め、該複数のシードソース値からシード値を得るとともに該シード値に基づく擬似乱数を生成する構成を第１の実施形態において述べる。
【００１４】
また、本発明の応用的な実施形態として、受信したＲＡに乱数応答が含まれる場合の構成と、該ＲＡに乱数応答が付加されることを要求する乱数要求を含んだＲＳを送信する構成を第２の実施形態において述べる。
【００１５】
（第１の実施形態）
図１は、本発明の実施形態を示すブロック図である。ＩＰｖ６ネットワーク１に対して組み込み機器（以下「ノード」という）３が接続される。図１にはノード３が１つだけ示されているが、同種で多数のノード３がＩＰｖ６ネットワーク１に接続されてもよい。ＩＰｖ６ネットワーク１には、ルータ２が接続される。なお、同一セグメントに複数のルータ２が接続される場合がある。
【００１６】
ノード３は、ＩＰｖ６スタック４と擬似乱数シード値生成装置１０とを具備する。擬似乱数シード値生成装置１０は、ＩＰｖ６スタック４と連携して動作するものであって、ＲＳ送信要求部５と、ＲＡ情報取得部６と、ＲＳ−ＲＡ間隔計測部７と、記憶部８と、シード値生成部９とを具備する。ＲＳ送信要求部５は、ＲＳをＩＰｖ６ネットワーク１に送信するようＩＰｖ６スタック４に対して要求を行う。ＲＡ情報取得部６は、ＩＰｖ６スタック４がＩＰｖ６ネットワーク１から受信したＲＡに含まれている情報を取得する。ＲＳ−ＲＡ間隔計測部７は、ＲＳ送信要求部５からの要求に基づくＩＰｖ６スタック４によるＲＳ（ルータ要請）の送信から、同ＩＰｖ６スタック４によるＲＡ（ルータ広告）の受信までの経過時間（ＲＳ−ＲＡの間隔）を計測する。
【００１７】
記憶部８は、ＲＳ−ＲＡ間隔計測部７により計測された経過時間の値を「シードソース値」として記憶する。なお、同一のＲＳに対し異なるルータ２から複数のＲＡを受信し、これによりＲＳ−ＲＡ間隔計測部７による計測が繰り返される場合がある。また、ＲＳ送信要求部５がＲＳの送信を何度か繰り返すことによっても、ＲＳ−ＲＡ間隔計測部７による計測が繰り返される場合がある。記憶部８は、このような複数の計測によって複数のシードソース値が得られた場合、これらの値を記憶する。
【００１８】
シード値生成部９は、記憶部８に記憶されている複数のシードソース値を組み合わせることにより、要求される乱数の品質に依存する一定以上のビット長を有する複数のシード値を生成する。
【００１９】
ＩＰｖ６において、グローバルなネットワークに接続されるノード３は、一般的に、グローバルアドレスを必要とする。現在、ＩＰｖ６のグローバルアドレスを決定するのに最も普及している方法はＳｔａｔｅｌｅｓｓ  Ａｄｄｒｅｓｓ  Ｃｏｎｆｉｇｕｒａｔｉｏｎである。Ｓｔａｔｅｌｅｓｓ  Ａｄｄｒｅｓｓ  Ｃｏｎｆｉｇｕｒａｔｉｏｎを行なうために、ノード３は、ＲＳを送信し、同一セグメントに接続されているルータ２に対してＲＡを要求する。ルータ２は、ランダムな待ち時間ののちにＲＡを送信する。
【００２０】
図２は、ＩＰｖ６におけるＲＳ（ルータ要請）のフォーマットを示す図である。ＩＰｖ６ヘッダ２０にＩＣＭＰフィールド２１が続いており、同ＩＣＭＰフィールド２１は、「Ｔｙｐｅ（タイプ）」フィールド２２、「Ｃｏｄｅ（コード）」フィールド２３、「Ｃｈｅｃｋｓｕｍ（チェックサム）」フィールド２４、「Ｒｅｓｅｒｖｅｄ（リザーブ）」フィールド２５、「Ｏｐｔｉｏｎｓ（オプション）」フィールド２６等を有する。
【００２１】
一方、図３は、ＩＰｖ６におけるＲＡ（ルータ広告）のフォーマットを示す図である。ＩＰｖ６ヘッダ３０にＩＣＭＰフィールド３１が続いており、同ＩＣＭＰフィールド３１は、「Ｔｙｐｅ（タイプ）」フィールド３２、「Ｃｏｄｅ（コード）」フィールド３３、「Ｃｈｅｃｋｓｕｍ（チェックサム）」フィールド３４、「Ｃｕｒ  Ｈｏｐ  Ｌｉｍｉｔ」フィールド３８、「Ｒｅａｃｈａｂｌｅ  Ｔｉｍｅ」フィールド３９、「Ｒｅｔｒａｎｓ  Ｔｉｍｅｒ」フィールド４０、「Ｏｐｔｉｏｎｓ（オプション）」フィールド４１等を有する。
【００２２】
図４は、実施形態に係るノード３の動作手順を示すフローチャートである。
【００２３】
先ずステップＳ１において、ＲＳ送信要求部５がＩＰｖ６スタック４に対してＲＳの送信要求を出す。これに応じてＩＰｖ６スタック４はＲＳの送信処理を行い、ＩＰｖ６ネットワーク１上にＲＳ（ルータ要請）が送出される。
【００２４】
次にステップＳ２において、ＲＳ−ＲＡ間隔計測部７は、ステップＳ１において自ノード３がＲＳを送出してから、ルータ２から送られてくるＲＡを受信するまでの時間間隔を計測する。ルータ２がＲＳを受信してＲＡを送出する場合には、必ず、ランダムな待ち時間（最大は「ＭＡＸ  ＲＡ  ＤＥＬＡＹ  ＴＩＭＥ」：デフォルトは０．５［秒］）が経過してからＲＡを送出することがＲＦＣ２４６１において規定されている。よって、ＲＳ−ＲＡの間隔にはランダムな要素が含まれており、またデフォルトが０．５［秒］であることから、性能の低いノードであってもＲＳを送信してからＲＡを受信するまでの時間を計測することは十分可能である。
【００２５】
次にステップＳ３において、ＲＳ−ＲＡ間隔計測部７により計測された経過時間の値を「シードソース値」として記憶部８に記憶する。
【００２６】
次にステップＳ４において、シード値生成部９は、自ノード３によるＲＳの送出から、ＲＡを待てる限界時間（ＭＡＸ  ＲＡ  ＤＥＬＡＹ  ＴＩＭＥより大きい値：例えば１［秒］）が経過したか否かを判定する。
【００２７】
ＲＡを待てる限界時間が経過していないならば、ステップＳ２に戻る。限界時間が経過しているならば、シード値生成部９は、ステップＳ５において記憶部８の内容を確認する。記憶部８に十分な数のシードソース値が格納されているならば、シード値生成部９はそれらの値を組み合わせることによって乱数のシード値を生成する（ステップＳ５）。
【００２８】
ここで、「十分な数のシードソース値」とは、ノード３が求める乱数の品質に依存する。ノード３が許容できる乱数の品質が低い場合、例えばＲＦＣ３０４１において定義されたＩＰｖ６アドレスを決める場合であって当該ＩＰｖ６アドレスがある程度推測されても構わないような場合（運用等による）には、一回の計測で得られた１つの（比較的ビット長が短い）シードソース値をシード値に決定してもよい。一方、鍵長が１２８ｂｉｔＡＥＳの暗号化通信を行なうためのセッション鍵を生成するような場合には１２８ｂｉｔ以上の長さになるような乱数シード値を求めることになる。さらに、鍵長が２５６ｂｉｔのＡＥＳの暗号化通信を行なうのであれば、２５６ｂｉｔ以上の乱数シード値を求めることになる。
【００２９】
このように、乱数のシード値は、要求される乱数の品質に依存する一定以上のビット長を有する。したがって、所定数以上のシードソース値が必要となる場合があり、この場合にはステップＳ１に戻り、十分な数のシードソース値が得られるまで、ステップＳ１〜Ｓ５を繰り返す。そして本実施形態では、各々が一定以上のビット長を有する複数のシード値が生成されるものとする。なお、最終的に所要の品質の擬似乱数が得られるのであれば、シード値は１つでもよい。
【００３０】
次にステップＳ７において、ＩＰｖ６スタック４はシード値生成部９から複数のシード値を受け取り、これらの値を組み合わせて擬似乱数を生成するステップＳ７。複数のシード値の組み合わせ方としては、例えば「ＲＦＣ４０８６  Ｒａｎｄｏｍｎｅｓｓ  Ｒｅｑｕｉｒｅｍｅｎｔｓ  ｆｏｒ  Ｓｅｃｕｒｉｔｙ．  Ｄ．Ｅａｓｔｌａｋｅ，３ｒｄ，Ｊ．Ｓｃｈｉｌｌｅｒ  ａｎｄ  Ｓ．Ｃｒｏｃｋｅｒ．  Ｊｕｎｅ  ２００５．」に記載された方法を用いることができる。
【００３１】
具体的には、例えば任意の良質なハッシュ関数Ｈ（例えばＳＨＡ−１）を繰返しかけることによって得ることができる。今、シードソース値がＲ１，Ｒ２，Ｒ３，Ｒ４，Ｒ５というそれぞれの５つの値であるとすると、これらを組合せた値ＲＳは、ＲＳ＝Ｈ（Ｈ（Ｈ（Ｈ（Ｈ（Ｒ１）＋Ｒ２）＋Ｒ３）＋Ｒ４）＋Ｒ５）のように求めることができる。なお、ＲＦＣ４０８６などには、他の値の組合せ方についても幾つか記述されている。
【００３２】
なお、シード値生成部９から複数のシード値を受け取り、これらの値を組み合わせてＩＰｖ６スタック４が擬似乱数を生成するものとして説明したが、かかる機能を擬似乱数シード値生成装置１０側に設け、擬似乱数生成装置を構成してもよい。
【００３３】
（第２の実施形態）
第２の実施形態は、上述したように、受信したＲＡに乱数応答が含まれる場合の構成と、該ＲＡに乱数応答が付加されることを要求する乱数要求を含んだＲＳを送信する構成である。その他の構成については第１の実施形態に示したものと同様である。
【００３４】
先ず、受信したＲＡに乱数応答が含まれる場合の構成について説明する。
【００３５】
本実施形態において、ＲＡ情報取得装置６は、受信したＲＡ（ルータ広告）において拡張された乱数応答のフィールドを参照し、シードのソース値又はシード値のいずれかに相当する乱数応答の値が含まれているかどうかを判定する。
【００３６】
そして、受信したＲＡが乱数応答を含んでおり、この乱数応答の値が一定以上のビット長に満たないならば、この乱数応答を複数のシードソース値に含めるようにする。一方。乱数応答の値が一定以上のビット長を有するならば、乱数応答を複数のシード値に含めるようにする。
【００３７】
こうしてＲＡから取り出された乱数応答の値は、シードソース値またはシード値として記憶部８に格納され、第１の実施形態において説明したＲＳ−ＲＡの経過時間計測に基づくシードソース値と組み合わせて用いることができる。
【００３８】
このような乱数応答については、ＩＰｖ６スタック４がＲＳ（ルータ要請）を送信する際に、ルータ２に対して明示的に要求してもよい。すなわち、ノード３は、ＲＡに乱数応答が付加されることを要求する乱数要求を含んだ、ＲＳを送信してもよい。
【００３９】
図５は、ＩＰｖ６における拡張されたＲＳ（ルータ要請）のフォーマットを示す図である。この例では、「Ｏｐｔｉｏｎ（オプション）」フィールドの一部に、乱数要求のためのオプションフィールド５０が設けられている。乱数要求のためのオプションフィールド５０において、「ＯｐｔＴｙｐｅ」フィールド５１には「乱数要求」タイプの番号（これはＩＥＴＦから割り当てられる番号である）が記載される。「Ｌｅｎｇｔｈ」フィールド５２には、例えは値「４」が記載される。該「Ｌｅｎｇｔｈ」フィールド５２には、所定の「Ｒｅｓｅｒｖｅｄ」フィールド５３が続く。
【００４０】
一方、図６は、ＩＰｖ６における拡張されたＲＡ（ルータ広告）のフォーマットを示す図である。この例では、「Ｏｐｔｉｏｎ（オプション）」フィールドの一部に、乱数応答のためのオプションフィールド６０が設けられている。乱数応答のためのオプションフィールド６０において、「ＯｐｔＴｙｐｅ」フィールド６１には「乱数応答」タイプの番号（これはＩＥＴＦから割り当てられる番号である）が記載される。「Ｌｅｎｇｔｈ」フィールド６２には、例えは値「１＋１＋付与した乱数応答の長さ（オクテット長）」が記載される。該「Ｌｅｎｇｔｈ」フィールド６２には、「Ｒａｎｄｏｍ  Ｎｕｍｂｅｒ（乱数応答）」フィールド６３が続く。
【００４１】
ルータ２は、例えば図５のようなフォーマットによりノード３がＲＡに乱数を含めることを要求してきた場合、ＲＡに乱数を含めてもよい。この場合、「Ｒａｎｄｏｍ  Ｎｕｍｂｅｒ（乱数応答）」フィールド６３に乱数のシードソース値又はシード値を記載する。
【００４２】
以上説明した実施形態によれば、ＩＰｖ６ネットワークに接続される機器において、低コストのノードであっても、より品質の良い疑似乱数を早く得られるようになる。
【００４３】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施形態を示すブロック図
【図２】ＩＰｖ６におけるＲＳ（ルータ要請）のフォーマットを示す図
【図３】ＩＰｖ６におけるＲＡ（ルータ広告）のフォーマットを示す図
【図４】実施形態に係るノードの動作手順を示すフローチャート
【図５】ＩＰｖ６における拡張されたＲＳ（ルータ要請）のフォーマットを示す図
【図６】ＩＰｖ６における拡張されたＲＡ（ルータ広告）のフォーマットを示す図
【符号の説明】
【００４５】
１…ＩＰｖ６ネットワーク；
２…ルータ；
３…組み込み機器（ノード）；
４…ＩＰｖ６スタック；
５…ＲＳ送信要求部；
６…ＲＡ情報取得部；
７…ＲＳ−ＲＡ間隔計測部；
８…記憶部；
９…シード値生成部；
１０…擬似乱数シード値生成装置；
【図１】
2009237911.tif 000003
【図２】
2009237911.tif 000004
【図３】
2009237911.tif 000005
【図４】
2009237911.tif 000006
【図５】
2009237911.tif 000007
【図６】
2009237911.tif 000008