(57)【要約】１つまたは複数の環境量の測定値に基づいて、乱数を生成する乱数生成器。この乱数生成器は、連続する各時刻で、第１の環境量の測定値を表す第１のディジタル値シーケンスを生成する第１のセンサを含む。内部相関関係が、この第１のディジタル値シーケンスの値よりも低い第１の圧縮値シーケンスを提供する第１の圧縮手段は、このディジタル値シーケンスを圧縮する。この乱数生成器は、入力ディジタル値シーケンスから乱数を生成する回路を介して、出力乱数を生成する。ただし、この入力ディジタル値シーケンスは、この第１の圧縮値シーケンスの１つの関数である。この回路は、ハッシュ関数を利用して、さらなるセキュリティを提供することがある。更に、この回路は、これらの入力ディジタル値シーケンスが所定のテストに失敗する場合に、乱数生成器に乱数を出力させないようにするブロック回路も含む。
2005526299.tif 000002
【特許請求の範囲】
【請求項１】
連続する各時刻における第１の環境量の測定値を表す第１のディジタル値シーケンスを生成する第１のセンサ(21)と、
前記第１のディジタル値シーケンスを圧縮して、前記第１のディジタル値シーケンスよりも低い内部的な相関関係を有する第１の圧縮値シーケンスを提供する、第１の圧縮手段(31)と、
前記第１の圧縮値シーケンスの１つの関数である入力ディジタル値シーケンスから乱数を生成する回路(15)と、
を含む、乱数生成器(10)。
【請求項２】
連続する各時刻における第２の環境量の測定値を表す第２のディジタル値シーケンスを生成する第２のセンサ(22)と、
前記第２のディジタル値シーケンスを圧縮して、前記第２のディジタル値シーケンスよりも低い内部的な相関関係を有する第２の圧縮値シーケンスを提供する、第２の圧縮手段(32)と、
前記第１のディジタル値シーケンスと前記第２のディジタル値シーケンスとを組み合わせてマージシーケンスを提供するマージ回路(13)とを更に含み、
該乱数生成器(10)が、前記マージシーケンスにより決定されたディジタル値を利用する、請求項１に記載の乱数生成器(10)。
【請求項３】
前記マージ回路(13)が、マージシーケンスを圧縮して、該マージシーケンスよりも低い内部的な相関関係を有する圧縮マージシーケンスを形成する、第３の圧縮手段(14)を含み、前記回路(15)が、前記圧縮マージシーケンスを利用して乱数を生成する、請求項２に記載の乱数生成器(10)。
【請求項４】
前記第１の環境量が温度を含む、請求項１に記載の乱数生成器(10)。
【請求項５】
前記第１の環境量が光レベルを含む、請求項１に記載の乱数生成器(10)。
【請求項６】
前記第１の環境量が音響レベルを含む、請求項１に記載の乱数生成器(10)。
【請求項７】
前記第１の環境量が、該乱数生成器(10)に関する動きの測定値を含む、請求項１に記載の乱数生成器(10)。
【請求項８】
前記乱数を生成する回路(15)が、前記第１の圧縮値シーケンスに依存するディジタル値シーケンスにハッシュ関数を適用する回路(15)を含む、請求項１に記載の乱数生成器(10)。
【請求項９】
前記入力ディジタル値シーケンスが所定のテストに失敗した場合に前記乱数を生成する回路(15)による乱数の出力を阻止する出力ブロック回路(17)を更に含む、請求項１に記載の乱数生成器(10)。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乱数生成器に関し、特に、乱数生成器により生成される一連の乱数の予測可能性を環境センサ（environmental sensor）を利用して低下させる乱数生成器に関する。
【背景技術】
【０００２】
多くのシステムは、セキュアな通信チャネルを利用して、該通信チャネル上での二人のユーザ間のやり取りに含まれる情報を盗聴者が得られないようにしている。このような通信チャネルをセキュアにするために用いられる通信プロトコルは、各当事者が長い乱数を生成できることに依存するものであることが多い。例えば、暗号プロトコルは、その１ステップで、参加する装置に、ｎ個（ｎは予め指定された正の整数）のランダムビットからなるストリングSを生成するよう命じる可能性がある。該ストリングSは、外部からのアクセスに対して秘密にしておくことになる。暗号強度を最大限にするために、一般に、かかるステップで生成されたｎビットは、該暗号プロトコルによるSへの正当なアクセスが与えられないあらゆる第三者には実質的に予測できないことが必要とされる。すなわち、かかる第三者は、Sを正確に「推測する」前に、平均で約２n−1個の２進数列をしらみつぶしに探索しなければならないことになる。
【０００３】
見掛け上の乱数のストリングを生成するためにコンピュータ上で実行することができる擬似乱数生成アルゴリズムが存在するが、かかるアルゴリズムは、「シード」数によって決定される所定の数列を生成する。該シードを観察している関係者は、生成されることになる数を予測することが可能となる。実際に、この数列自体の一部は、その次の数を予測するのに充分なものとなり、これが実際のシステムで起こらないようにするものは、計算上の困難性だけである。
【０００４】
また、何らかの環境測定値を利用して乱数の数列の予測可能性を低下させる乱数生成器が当業界で知られている。例えば、大形抵抗器から発生するノイズ信号中のパルスをカウンタでカウントして乱数生成器を提供することができる。しかし、かかるシステムは、探索リストを減らすために利用することができる相関関係（correlation）を有している。加えて、かかるシステムは、該相関関係を増大させる物理的条件にさらされることもある。例えば、抵抗素子が冷却される可能性があり、これにより、各時間間隔中に生成されるランダムなパルスの数が減ることになる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
概して、本発明の目的は、改良された乱数生成器を提供することにある。
【０００６】
本発明の上述その他の目的は、本発明の以下の詳細な説明および図面から、当業者には明らかとなろう。
【課題を解決するための手段】
【０００７】
本発明は、１つまたは複数の環境量（environmental quantities）の測定値に基づいて乱数を生成する乱数生成器である。一実施形態では、該乱数生成器は第１のセンサを含み、該第１のセンサは、連続する各時刻で、第１の環境量の測定値を表す第１のディジタル値シーケンスを生成する。該ディジタル値シーケンスを第１の圧縮手段（compressor）が圧縮する。該第１の圧縮手段は、該第１のディジタル値シーケンスの値よりも低い冗長性または内部的な相関関係を有することが多い第１の圧縮値シーケンスを提供するものである。この乱数生成器は、入力ディジタル値シーケンスから乱数を生成する回路を介して出力乱数を生成する。ここで、該入力ディジタル値シーケンスは、前記第１の圧縮値シーケンスのうちの１つの関数である。
【０００８】
第２の実施形態では、乱数生成器はまた、連続する各時刻で、第２の環境量の測定値を表す第２のディジタル値シーケンスを生成する第２のセンサと、該シーケンスを圧縮する圧縮手段とを含む。この実施形態では、第１のディジタル値シーケンスと第２のディジタル値シーケンスとを組み合わせてマージ(merged：併合された)シーケンスを提供するマージ回路も含まれる。この乱数生成回路は、該マージシーケンスによって決定されるディジタル値を利用する。このマージ回路は、マージシーケンスを圧縮して、該マージシーケンスよりも低い内部的な相関関係を有する圧縮マージシーケンスを形成する第３の圧縮手段を含むことが可能であり、この場合には、乱数を生成する回路は、該圧縮マージシーケンスを利用することになる。
【０００９】
本発明の別の実施形態では、乱数を生成する回路は、前記第１の圧縮値シーケンスによって決まる１つのディジタル値シーケンスにハッシュ関数を適用する回路を含む。本発明の更に別の実施形態では、出力ブロック回路が、前記入力ディジタル値シーケンスが所定のテストに失敗した場合に乱数生成器が乱数を出力するのを阻止する。
【発明を実施するための最良の形態】
【００１０】
本発明がその利点を提供する態様は、本発明による乱数生成器10のブロック図である図１を参照すれば、一層容易に理解することが可能である。乱数生成器10は、データ圧縮手段、マージブロック、及びハッシュブロックと共に、個々のセンサの組み合わせを利用して、指定された長さのランダムなビットストリングを生成する。
【００１１】
乱数生成器10は、21〜23で示すＫ個のセンサを利用してＫ個のビットストリームを生成する。各センサは、何らかの環境パラメータの変動を測定する。この環境パラメータは、センサによって測定された装置の環境条件の変動が第三者によって予測することが極めて困難なものとなるように選択される。それゆえ、かかる測定値のシーケンスは、基本的にランダムデータとして使用することが可能なものとなる。しかし、充分なランダムデータが生成されることを保証するために、測定値における実際の不確定性の大きさを制御することが重要である。かかるセンサは、温度、音、動き、光強度、周囲電磁放射などの測定値に基づくものとすることができる。
【００１２】
温度を測定して二進ストリングとしてシフトアウトされた値を生成するセンサについて考察する。該センサにより温度を次々にサンプリングすると、通常は各サンプル間で上位ビットが繰り返されるデータワードが得られることになり、それら上位ビットは、かかる測定値の１つを利用することにより、高い予測可能性を有するものとなる。更に、悪意のある第三者は、環境パラメータ（例えば、光、温度、音響レベルなど）の一部を制御して、センサ測定値における不確定性を更に低下させ、これにより秘密のストリングSを推測する可能性を高めようとする可能性がある。
【００１３】
よって、本発明は、所与のセンサのサンプルシーケンスにおける冗長性（ひいては予測可能性）を低下させるプロセッサを含む。本発明の好ましい実施形態では、このプロセッサは、データ圧縮を利用して該冗長性を低下させる。理想的なデータ圧縮手段によって生成されるビットの数は、その入力ソースのエントロピーレート(entropy rate)に近くなる。該エントロピーレートは、ある意味では該ソースの不確定性の真の測定値である。それゆえ、各センサは、該センサにより生成されたデータストリームをデータ圧縮手段へ送り、該データ圧縮手段が、該センサにより生成されるデータストリームよりも低い内部的な相関関係を有する圧縮データストリームを生成する。センサ21〜23に対応するデータ圧縮手段は、それぞれ31〜33で示されている。
【００１４】
例えば、サーミスタの両端の電圧を測定する働きをするセンサについて考察する。このセンサにより測定された電圧は、温度と相関関係にある値と、予測不能な態様で測定値毎に変動するノイズ値との合計であると見なすことが可能である。該電圧が16ビットの精度で測定され、該ノイズ値が下位６ビットを変動させるものと仮定する。上位１０ビットは温度を表すため、かかるビットは温度に追従するものとなり、それゆえ予測可能となる。一連の連続する測定値を格納し、該格納した測定値を多項式に当てはめるデータ圧縮手段について考察する。新たな各測定値が到来する度に、格納されている最も古い測定値を破棄し、その代りに新たな測定値を格納する。次いで、該格納された値を多項式に当てはめ、次いで、最後の測定時における予測値を表す多項式の値を最後の測定値から減算して、センサからシフトアウトされたビットストリームと見なすことのできる出力測定値ワードを提供する。
【００１５】
出力された乱数がセキュアであることを更に保証するために、複数のセンサからの圧縮された測定値がマージ回路13によって組み合わされる。該マージ回路13はまた、該組み合わされた出力ビットストリームを監視して、当該プロトコルの不確定性要件を満たすのに充分なビットが圧縮ストリーム中に生成されることを確実にする。
【００１６】
該圧縮ビットストリームは、複数の異なる態様で組み合わせることが可能なものである。圧縮ビットストリームを組み合せる最も単純な方法は、各圧縮ソースからの出力ワードを連結することである。圧縮ビットストリームは、一般に異なる個数のビットを生成するものとなるため、異なるソースに異なる重み付けをして組み合わせ出力が生成される可能性がある。マージチェック回路13は、各ソースがビットを生成するレートに反比例して該ソースに重み付けを行うことにより、この一様でない重み付けを回避することができる。このため、ソース1がソース2のビットの半分を生成する場合には、マージ回路13は、ソース1からの２つのワードを、ソース2からの１つのワードと組み合せることになり、よって、出力は、各ソースから等しいビット数を有するものとなる。該出力は、複数のワードを連結すること又は各ソースから次々とビットを取得することにより連結することができる。本発明の好ましい実施形態は、各ソースから概ね等しいビット数を取得しようとするものであるが、他の組み合わせアルゴリズムを用いる実施形態もまた実施することが可能である。例えば、各センサから該センサに応じて異なるビット数を取得する実施形態もまた実施することが可能である。同様に、次のソースに移る前に各ソースから最小限のビット数を取得する実施形態もまた利用することができる。
【００１７】
マージ回路13はまた、符号14で示すように、組み合わせビットストリームにデータ圧縮を行って、センサ出力間の考え得る相関関係を除去することが可能である。
【００１８】
乱数生成器10により生成される乱数のセキュリティを更に保証するために、乱数生成器は、符号15で示すようにセキュアなハッシュ関数も利用する。この暗号プロトコルは、正の整数ｎについてｎ個のランダムなビットを必要とするものと仮定する（例えば、一好適実施形態ではｎ＝160が用いられる）。マージ回路は、ｍビット（整数ｍ＞ｎ）のストリングを生成するようプログラムされている。整数ｍは、典型的には、データ圧縮アルゴリズムの欠点を考慮して、ｎの適度に大きい倍数（例えばｍ＝20ｎ）と見なされることになる。次いで、標準的なセキュアハッシュ関数（例えばＳＨＡ−１またはＭＤ５）への入力としてｍビットのブロックを使用して、サイズｎの出力ブロックを生成する。この後者のブロックは、ランダムビットストリングとして用いられる。セキュアハッシュ関数は、特定の所望の性質を満たす多対一のマッピングである。例えば、あらゆる入力ビットはあらゆる出力ビットに影響を及ぼし、ｎビットの出力ブロックが与えられた場合、該出力ブロックを生成することになる入力ブロックを復元することが計算上実行不可能となる。かかるハッシュ関数は、当業者にはよく知られたものであるため、ここでは詳しく説明しない。かかる機能の更に詳しい説明については、Menezes、Van Oorschot、及びVanstoneによる「Handbook of Applied Cryptography」（CRC Press、1977年）、若しくはその類の参考文献を参照されたい。
【００１９】
本発明の好ましい実施形態では、マージ回路13はまた、データ圧縮手段の出力を監視して、ハッシュ関数への入力としてｍビットのブロックを生成するのに充分なランダムデータがデータ圧縮手段により生成されていることを判定する。充分なデータが生成されていない場合には、マージ回路13は、乱数生成器が乱数を出力するのを阻止するためにブロックスイッチ17により利用される制御信号を生成する。このため、充分なデータが生成されるまで、乱数を必要とするあらゆる暗号システムが停止されることになる。
【００２０】
マージ回路13は、圧縮ストリームの長さを調べることに加えて、他の判定基準も適用してセンサデータのランダム性について判定を下し、ひいてはハッシュ回路15により生成された乱数の出力を可能とするだけの充分なランダムデータが生成されているか否かを判定することができる。かかる判定基準として、更なる統計的なテスト（例えば連邦規格FIPS140で指定されているもの）、相関関係、以前に生成されたランダムストリングとの比較が挙げられる。例えば、マージ回路13は、１つのセンサが出力を支配しないことを保証するために、各センサが最小限のランダムビット数を生成することを要求することが可能である。
【００２１】
欠陥があり又は悪意をもって使用不能にされたセンサによる悪影響を回避するために、データ圧縮とブロック機能とを組み合わせたものが如何なる働きをし得るのかを例示するために、１つのセンサが一定の読み取り値に「留まる（stuck）」事例を考察する。入念に設計された効率的な圧縮手段は、同一値をＮ回反復したストリングをlogＮに比例した長さのストリングへと圧縮するものとなる。このため、当該センサに関する圧縮されたストリングが特定の長さＬを達成することを要求することにより、該Ｌの指数関数である待ち時間が課された後に装置を「ブロック解除」することが可能となる。Ｌを慎重に選択することにより、この待ち時間は、欠陥のあるセンサについては実施不可能なものとなるが、期待通りに変動するセンサについては特別なものとはならない。このため、欠陥のあるセンサは、装置を使用不能にし、及び該装置に関連する暗号アルゴリズムの進行を阻止するものとなる。乱数生成器に取り付けられた装置を使用不能にするのに役立つように、このブロックスイッチへの制御信号はまた、有効なデータが欠如していることを知らせるための外部回路への「有効データ」信号として提供することが可能である。
【００２２】
上記説明および図面から本発明の様々な変更が当業者には明らかとなろう。したがって、本発明は、特許請求の範囲によってのみ限定されるものとなる。
【図面の簡単な説明】
【００２３】
【図１】本発明による乱数生成器10のブロック図である。
【符号の説明】
【００２４】
10    乱数生成器
13    マージ回路
14    第３の圧縮手段
15    ハッシュ回路
17    出力ブロック回路
21    第１のセンサ
22    第２のセンサ
31    第１の圧縮手段
32    第２の圧縮手段
【図１】
2005526299.tif 000003
【国際調査報告】
2005526299.tif 000004
2005526299.tif 000005
2005526299.tif 000006
2005526299.tif 000007
2005526299.tif 000008