(57)【特許請求の範囲】
【請求項１】
スレッシュホールド検出器と、少なくとも２つのチャンネルを有する電気的ノイズジェネレータとを備え、電気的ノイズジェネレータの各チャンネルは、電気的ノイズ信号を発生するように構成され、スレッシュホールド検出器は、各チャンネルによって発生された電気的ノイズ信号をスレッシュホールドと周期的に比較して、そのスレッシュホールドを越えたかどうか指示するバイナリーデータ出力を与えるように構成されたランダム数発生装置において、前記電気的ノイズジェネレータの各チャンネルが、電気的に直列に接続された少なくとも２つの増幅器を備え、
データ処理モジュールを更に備え、該データ処理モジュールは、前記スレッシュホールド検出器により出力されたバイナリーデータを受け取り、そしてその受け取ったバイナリーデータに対して処理ステップを遂行して、ランダム特性が改善された処理済みバイナリーデータ出力を発生するように構成され、前記処理ステップは、バイナリーデータビットの対を用いた少なくとも１つの排他的オア（ＸＯＲ）演算を含み、
バイナリーデータビットの各対は、各対のデータビットが、同じチャンネルの電気的ノイズ信号から前記スレッシュホールド検出器により導出されるデータビットを含み、
バイナリーデータビットの各対は、１０００を越える介在データビットにより一時的に分離されたデータビットを含むことを特徴とするランダム数発生装置。
【請求項２】
前記電気的ノイズジェネレータの各チャンネルは、前記直列の少なくとも２つの増幅器を通るフィードバックを最小にするためのフィードバック減少手段を備えた、請求項１に記載の装置。
【請求項３】
前記電気的ノイズジェネレータの各チャンネルの少なくとも２つの増幅器は、５００００ないし１５００００の範囲の全利得を与えるように構成される、請求項１又は２に記載の装置。
【請求項４】
前記電気的ノイズジェネレータの各チャンネルの少なくとも２つの増幅器は、約１０００００の全利得を与えるように構成される、請求項３に記載の装置。
【請求項５】
各チャンネルの少なくとも２つの増幅器の各々は、１０ＭＨｚから１００ＭＨｚの範囲内の帯域巾を有する請求項１から４のいずれかに記載の装置。
【請求項６】
各チャンネルの少なくとも２つの増幅器の各々は、約５０ＭＨｚの帯域巾を有する請求項５に記載の装置。
【請求項７】
各チャンネルは、直列に接続された３つの増幅器を含む、請求項１から６のいずれかに記載の装置。
【請求項８】
各チャンネルは、イコライゼーションフィルタを含む、請求項１から７のいずれかに記載の装置。
【請求項９】
前記電気的ノイズジェネレータは、少なくとも４つのチャンネルを含む、請求項１から８のいずれかに記載の装置。
【請求項１０】
各チャンネルは、少なくとも１つのバイアス制御手段を備え、この少なくとも１つのバイアス制御手段は、前記少なくとも２つの増幅器のうちの１つの増幅器の入力に接続されて、チャンネルにより出力される電気的ノイズ信号のＤＣ電圧レベルにわたって制御を与えるように構成される、請求項１から９のいずれかに記載の装置。
【請求項１１】
前記スレッシュホールド検出器のバイナリーデータ出力のバイアスを所定範囲内に維持するために、各チャンネルの少なくとも１つのバイアス制御手段を調整するためのドリフト補償コントローラを更に備えた、請求項１０に記載の装置。
【請求項１２】
前記ドリフト補償コントローラは、前記スレッシュホールド検出器のバイナリーデータ出力のバイアスを４９．５％から５０．５％の範囲内に維持するように構成される、請求項１１に記載の装置。
【請求項１３】
各チャンネルは、負荷抵抗器を備え、この負荷抵抗器は、前記直列の少なくとも２つの増幅器のうちの第１増幅器の入力に接続される、請求項１から１２のいずれかに記載の装置。
【請求項１４】
前記スレッシュホールド検出器は、複数のスレッシュホールド検出エレメントを含む、請求項１から１３のいずれかに記載の装置。
【請求項１５】
前記スレッシュホールド検出器は、各電気的ノイズ信号に対して個別のバイナリーデータ出力ストリームを発生する、請求項１から１４のいずれかに記載の装置。
【請求項１６】
前記スレッシュホールド検出器は、複数の入力を有するデジタル入力／出力(ＤＩＯ)カードを備え、前記電気的ノイズジェネレータの各チャンネルにより発生される電気的ノイズ信号は、このＤＩＯカードの個別の入力に与えられる、請求項１５に記載の装置。
【請求項１７】
各電気的ノイズ信号は、５ＭＨｚから１５ＭＨｚの範囲内のレートで前記スレッシュホールド検出器によりサンプリングされる、請求項１から１６のいずれかに記載の装置。
【請求項１８】
各電気的ノイズ信号は、約１０ＭＨｚのレートでサンプリングされる、請求項１７に記載の装置。
【請求項１９】
バイナリーデータビットの各対は、１００００を越える介在データビットにより一時的に分離されたデータビットを含む、請求項１から１８のいずれかに記載の装置。
【請求項２０】
前記データ処理モジュールは、少なくとも１つのデータバッファを含む、請求項１から１９のいずれかに記載の装置。
【請求項２１】
前記データ処理モジュールは、前記電気的ノイズジェネレータの各チャンネルに対して少なくとも１つの入力データバッファを備え、各入力データバッファは、前記電気的ノイズジェネレータの各チャンネルの電気的ノイズ信号から前記スレッシュホールド検出器により発生されたバイナリーデータ出力を受け取るように構成される、請求項２０に記載の装置。
【請求項２２】
各入力データバッファは、少なくとも第１及び第２セグメントに分割され、各セグメントには、バイナリーデータビットが順次に完全にロードされ、前記少なくとも１つのＸＯＲ演算は、バイナリーデータビットの対において遂行され、バイナリーデータビットの各対は、第１セグメントからのデータビット及び第２セグメントからのデータビットを含む、請求項２１に記載の装置。
【請求項２３】
各入力データバッファは、少なくとも第１、第２、第３及び第４セグメントを備え、前記少なくとも１つのＸＯＲ演算は、第１及び第２セグメントに含まれたデータにおいて遂行され、その間に、第３及び第４セグメントにバイナリーデータがロードされる、請求項２２に記載の装置。
【請求項２４】
前記データ処理モジュールは、更に、出力データバッファを含む、請求項１から２３のいずれかに記載の装置。
【請求項２５】
前記データ処理モジュールは、適当にプログラムされたコンピュータを含む、請求項１から２４のいずれかに記載の装置。
【請求項２６】
前記コンピュータもＤＩＯカードを含む、請求項１６又は２５に記載の装置。
【請求項２７】
前記データ処理モジュールは、適当に構成された電子回路を含む、請求項１から２６のいずれかに記載の装置。
【請求項２８】
前記適当に構成された電子回路も、スレッシュホールド検出器及び電気的ノイズジェネレータ回路を含む、請求項２７に記載の装置。
【請求項２９】
（ｉ）少なくとも２つのチャンネルを有する電気的ノイズジェネレータを準備するステップと、（ii）電気的ノイズジェネレータの各チャンネルにより発生された電気的ノイズ信号をスレッシュホールドと周期的に比較して、そのスレッシュホールドを越えたかどうかを指示するバイナリーデータ出力を与えるステップと、を備えたランダム数発生方法において、
少なくとも２つのチャンネルを有する電気的ノイズジェネレータを準備する前記ステップにおいて、各チャンネルは電気的に直列に接続された少なくとも２つの増幅器を備えており、
前記バイナリーデータ出力を与えるステップは、データ処理モジュールが、該データ処理モジュールにおいてスレッシュホールド検出器により出力されたバイナリーデータを受け取り、受け取ったバイナリーデータに対して処理ステップを遂行して、ランダム特性が改善された処理済みバイナリーデータ出力を発生し、前記処理ステップは、バイナリーデータビットの対を用いた少なくとも１つの排他的オア（ＸＯＲ）演算を含んでおり、
バイナリーデータビットの各対は、各対のデータビットが、同じチャンネルの電気的ノイズ信号から前記スレッシュホールド検出器により導出されるデータビットを含み、バイナリーデータビットの各対は、１０００を越える介在データビットにより一時的に分離されたデータビットを含むことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ランダム数の発生に係り、より詳細には、ランダム数を発生するための改良された方法及び装置に係る。
【背景技術】
【０００２】
ランダム数の発生は、例えば、暗号、数値シミュレーション及びゲーム用途のような種々様々な用途において重要な役割を演じる。暗号の分野では、ランダム数のストリームを使用してキーが形成され、充分にランダムな数を供給できないと、暗号システムのセキュリティを著しく妥協することになる。更に、最もセキュリティが高い暗号技術は、非常に高いビットレートでランダム数を供給することを要求する。例えば、ワン・タイム・パッド（ＯＴＰ）暗号機構の場合には、必要とされるランダムビットの数が、暗号化されるべき情報のビット数に等しい。
【０００３】
従って、前記用途のクオリティ（即ち、ランダム性）及びビットレート要求を満足するために多数の異なる形式のランダム数ジェネレータ（ＲＮＧ）が長年にわたり開発されている。例えば、量子現象を利用して、固有のランダム数発生を与えることが知られている。従って、元素の放射能減衰と、ビームスプリッタを通過する光の単一光子が進行する経路に関連したランダム性とに基づく装置が開発されている。このような装置は、真のランダム数発生を与えるが、それに関連した複雑さが、高ビットレート低コストの装置を不可能にしている。
【０００４】
又、種々の電気的技術に基づくランダム数ジェネレータも知られている。しかしながら、このような装置は、典型的に、低レベルのランダム性が受け入れられる用途に使用される。電気的ＲＮＧの２つの典型的な例が、米国特許第５２２４１６５号及び米国特許第６３６９７２７号に説明されている。
【０００５】
米国特許第５２２４１６５号は、一対のダイオードによってノイズが発生される複数のチャンネルを有する低コストランダム数ジェネレータを説明している。２つのダイオードのノイズは、比較器へ供給され、ランダムなバイナリーデータビットのストリームへと変換される。又、基準ノイズチャンネルも設けられて、基準データビットのストリームを出力する。各ノイズチャンネルにより発生されるランダムビットと、基準ノイズチャンネルにより与えられるランダムビットとに対して排他的オア（ＸＯＲ）演算が実行される。このように、ランダムなバイナリーデータビットの比較的低いクオリティを改善することができる。しかしながら、米国特許第５２２４１６５号の装置は、暗号用途で要求されるビットレート及びクオリティ（即ち、ランダム性のレベル）に達しない。
【０００６】
米国特許第６３６９７２７号は、増幅された電気的ノイズがアナログ／デジタルコンバータ（ＡＤＣ）へ通される別のＲＮＧを説明している。デジタルワードの正規分布がＡＤＣにより出力され、リダクティブマッピング技術を使用してランダム数ストリームへと変換される。リダクティブマッピング技術を実施する複雑さと、ＡＤＣの限定された速度は、このようなＲＮＧから達成できるビットレートが若干限定されることを意味する。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、既知のランダム数発生装置及び方法に関連した上述した欠点の少なくとも幾つかを軽減することである。本発明の別の目的は、高いクオリティ（即ち、高いランダム性）のデータビットを発生し及び／又は高いビット出力レートを有する低コストＲＮＧを提供することである。本発明の更に別の目的は、暗号システムに使用するためのＲＮＧを提供することである。
【課題を解決するための手段】
【０００８】
本発明によれば、ランダム数発生装置は、スレッシュホールド検出器と、少なくとも２つのチャンネルを有する電気的ノイズジェネレータとを備え、電気的ノイズジェネレータの各チャンネルは、電気的ノイズ信号を発生するように構成され、スレッシュホールド検出器は、各チャンネルにより発生された電気的ノイズ信号をスレッシュホールドと周期的に比較して、そのスレッシュホールドを越えたかどうか指示するバイナリーデータ出力を与えるように構成され、電気的ノイズジェネレータの各チャンネルが、電気的に直列に接続された少なくとも２つの増幅器を備えたことを特徴とする。
【０００９】
従って、電気的ノイズ信号を各々発生する２つ以上のチャンネルを有する電気的ノイズジェネレータを備えたランダム数ジェネレータが提供される。各チャンネルにより発生される電気的ノイズ信号は、スレッシュホールド検出器（例えば、ＤＩＯカード）へ通され、そして所定のスレッシュホールド電圧レベルと周期的に比較される（例えば、１０ＭＨｚのサンプルレートで）。スレッシュホールド検出器は、サンプリング時に、電気的ノイズ信号が当該スレッシュホールドを越えた場合にそれを指示するために、バイナリーデータビット（即ち、０及び１）を含むバイナリーデータ出力を発生する。充分に高いレベルの電気的ノイズを与えるために、電気的ノイズジェネレータの各チャンネルは、電気的に直列に接続された少なくとも２つの増幅器を備えている。電気的ノイズジェネレータの各チャンネルにより与えられる電気的ノイズは、本質的にランダムであり、従って、スレッシュホールド検出器は、本質的にランダムなバイナリーデータビットのストリームを含むバイナリーデータ出力を発生する。又、以下に述べるように、本発明の装置は、改善されたランダム数発生率を与えるようにチャンネルの数を容易に増加できるので、非常に融通性がある。
【００１０】
直列に接続された２つ以上の増幅器のチェーンを使用して、第１増幅器の入力に存在する熱ノイズを増幅することで、米国特許第５２２４１６５号に説明された単純な低利得のシステムに比して、装置のランダム数出力のランダム性を改善する。更に、複数の電気的ノイズ信号を発生するために複数のチャンネルを含む電気的ノイズジェネレータを設けることは、アナログ／デジタルコンバータ（ＡＤＣ）を使用して単一ノイズ源をサンプリングする米国特許第６３６９７２７号に説明された形式の装置に比して効果的である。例えば、本発明は、ＡＤＣの出力において遂行される米国特許第６３６９７２７号に説明された複雑なリダクティブマッピング技術を必要としない。従って、本発明は、実施が低廉で且つ簡単であり、ＡＤＣベースの装置より本来的に信頼性が高い。
【００１１】
好都合なことに、電気的ノイズジェネレータの各チャンネルは、直列の少なくとも２つの増幅器を通るフィードバックを最小にするためにフィードバック減少手段を備えている。フィードバック作用が最小となる電気的構成は、電気的ノイズジェネレータの各チャンネル内の発振を減少又は排除するものであるのが好ましい。フィードバック作用で誘起される発振は、電気的ノイズ信号に周期性を導入し、従って、スレッシュホールド検出器により出力される数のランダム性を減少させる。従って、非フィードバック増幅器構成を有するのが好ましい。
【００１２】
フィードバック減少手段は、種々の電気的コンポーネント及び構成を備え、その幾つかは、異なる技術的分野で既に適用されている。例えば、少なくとも１つのデカップリングキャパシタを増幅器の電源と並列に設けて、チャンネルの各増幅器を電源レール上の信号から分離することができる。更に、電気的ノイズジェネレータの各増幅器に対して個別の電源レギュレータを設けることができる。
【００１３】
更に、チャンネルの各増幅器は、直列の隣接増幅器（１つ又は複数）のハイブリッド基板から物理的に分離されたハイブリッド基板に配置される。換言すれば、各増幅器がハイブリッド基板にマウントされ、次いで、これがメインＰＣＢにマウントされる。便利なことに、例えば、回路板の個別の部分に各チャンネルを配置し、そして各チャンネルに個別の電源を設けることにより、少なくとも２つのチャンネル間のクロストークも最小にされる。
【００１４】
好ましくは、電気的ノイズジェネレータの各チャンネルの少なくとも２つの増幅器は、５００００ないし１５００００の範囲の全利得を与えるように構成される。便利なことに、電気的ノイズジェネレータの各チャンネルの少なくとも２つの増幅器は、約５００００（例えば、±１００００）又は約１０００００（例えば、±１００００）の全利得を与えるように構成される。利得は、５００００より大きく、１０００００より大きく、及び／又は１５００００より小さいのが好ましい。
【００１５】
このような高レベルの利得を与えると、電気的ノイズ信号が充分に大きな電圧変動を有して、スレッシュホールド検出器の電圧スレッシュホールドにランダムに交差することが保証される。換言すれば、第１増幅器への入力に存在する微小なノイズレベルが増幅されて、高いノイズ対信号比を有する電気的ノイズ信号を与える。このような高利得の増幅は好ましいが、利得があまり高過ぎると、システムに関連したフィードバックが増加する。従って、上述した範囲内の利得を与えると、望ましからぬフィードバック作用を導入することなく、充分に増幅されたノイズ信号が与えられる。
【００１６】
各チャンネルの少なくとも２つの増幅器の各々は、１０ＭＨｚないし１００ＭＨｚの範囲内の帯域巾を有するのが好都合である。例えば、帯域巾は、１０ＭＨｚより大きく及び／又は１００ＭＨｚより小さいのが好ましい。又、帯域巾は、４０ＭＨｚ又は４５ＭＨｚより大きく及び／又は６０ＭＨｚ又は５５ＭＨｚより小さいのが好ましい。又、各チャンネルの少なくとも２つの増幅器の各々は、約５０ＭＨｚ（例えば、±５ＭＨｚ）の帯域巾を有するのが便利である。あるチャンネル又は種々のチャンネルにおける各増幅器の帯域巾は、必要に応じて、同一でも、同様でも、又は異なるものでもよい。
【００１７】
各チャンネルは、電気的に直列に接続された３つの増幅器を備えているのが好ましい。３つの増幅器チップ、例えば、ＵＡ７３３を設けることは、望ましからぬフィードバック作用を導入することなく、充分な増幅利得を与えることが分かっている。
【００１８】
各チャンネルは、更に、増幅器段の利得応答を整形するための利得整形手段を備えているのが好ましい。適当な利得整形手段は、イコライゼーションフィルタ、特に、プログラム可能なイコライゼーションフィルタである。増幅段の利得応答は、最大フラット応答として知られているように、拡張された周波数レンジにわたってフラットであるのが理想的であり、イコライゼーションフィルタは、このような利得応答を与える上で助けとなる。
【００１９】
電気的ノイズジェネレータは、少なくとも４個のチャンネルを備えているのが好都合である。又、電気的ノイズジェネレータは、少なくとも６個、８個、又は１０個のチャンネルを備えているのが更に好ましい。設けられるチャンネルが多いほど、達成できるランダム数ビットレートが大きくなる。
【００２０】
各チャンネルは、少なくとも１つのバイアス制御手段を備え、この少なくとも１つのバイアス制御手段は、前記少なくとも２つの増幅器のうちの１つの増幅器の入力に接続され、そしてそのチャンネルにより出力される電気的ノイズ信号のＤＣ電圧レベルにわたって制御を与えるように構成されるのが好都合である。このようなバイアス制御手段を設けることで、増幅されたノイズ信号（本質的にランダムな変形である）をＤＣバイアス電圧と合成することができる。従って、チャンネルにより出力される電気的ノイズ信号は、ＤＣバイアス電圧に等しい平均レベルを有することができるが、信号の電圧は、平均レベルの周りでランダムに変化する。換言すれば、増幅されたランダムノイズ信号は、ＤＣ電圧に重畳される。従って、以下に詳細に述べるように、ＤＣレベルは、スレッシュホールド検出器のスレッシュホールドレベルに実質的に等しくセットすることができる。次いで、増幅されたノイズは、電気的ノイズ信号がスレッシュホールドレベルにランダムに交差するようにさせる。
【００２１】
ある条件のもとでは、スレッシュホールド検出器（特に、以下に詳細に述べる形式のＤＩＯカード）のスレッシュホールドレベルは、時間と共に及び／又は温度と共に変化し得ることが分かった。従って、各チャンネルの少なくとも１つのバイアス制御手段（ひいては、ＤＣレベル）を調整して、スレッシュホールド検出器のバイナリーデータ出力のバイアスを所定の範囲内に維持するために、ドリフト補償コントローラを設けるのが便利である。このドリフト補償コントローラは、スレッシュホールド検出器のバイナリーデータ出力に関連したバイアスを、４５％ないし５５％の範囲内に、又は更に好ましくは、４９．５％ないし５０．５％の範囲内に維持するように構成されるのが好都合である。当業者に理解されるように、バイナリーデータビットのストリームの「バイアス」は、そのデータストリームに含まれる０及び１のパーセンテージの差である。従って、バイナリーデータの真のランダムストリームは、５０％のバイアスを有し、即ち出力ビットの半分が０であり、そして半分が１である。しかしながら、幾つかのアプリケーションでは、特定のチャンネルに関連したバイアスを他の値に変更することが望まれる。以下に詳細に説明するように、ランダム数ジェネレータの種々のチャンネルを合成して、多桁数を形成できるような幾つかのアプリケーションが存在する。例えば、１から１０までのランダム数を発生するために、４つのチャンネルからの出力を使用して、４桁のバイナリー数を形成することができる。従って、合成された出力は、００００から１１１１までの範囲のバイナリー数となり、即ち０から１６である。１から１０の数を得るために、これらの可能性の６つを捨てる必要がある。それ故、使用する数は、００００から１００１（０−９）だけである。１０個の４桁バイナリー数の中から、最上位ビットは、８個のケースにおいて０であり、そして２つのケースにおいてのみ１である。従って、数１から１０の各々が同じ確率で要求される場合には、最上位ビットに対応するチャンネルが、０の発生に好都合となるように、８０％にバイアスされねばならない。最下位ビットに対応するチャンネルは、５０％にバイアスされねばならない。それ故、複数のチャンネルの各々を独立してバイアスすることを許すことで、合成された数の任意のセットを、定義された確率でランダム数ジェネレータから出力できることが明らかである。従って、本発明のランダム数ジェネレータは、量子暗号化の分野より広いアプリケーションを有する。
【００２２】
ドリフト補償コントローラは、ある周期中に各チャンネルから１及び０のインスタンスをカウントしそして不平衡制御信号を発生するための手段を備えている。統計学的に意義のある周期の場合に、１及び０の数は、５０％のバイアスについて等しくなければならない。要求されたバイアスに対して１及び０の予想比からの不平衡に注目し、これを使用して、不平衡制御信号を発生する。好ましくは、不平衡制御信号は、デジタル数であり、ドリフト補償コントローラは、この数をＤＣバイアスに変換するためのデジタル／アナログコンバータを備え、そのＤＣバイアスは、チャンネルに印加されて、正しいバイアスを維持する。
【００２３】
スレッシュホールド検出器が、各電気的ノイズ信号を共通のスレッシュホールドレベルと比較するように構成されるか、又は各電気的ノイズ信号が個別のスレッシュホールドレベルと比較されることに注意されたい。
【００２４】
各チャンネルは、負荷抵抗器を備え、負荷抵抗器は、直列の少なくとも２つの増幅器のうちの第１増幅器の入力に接続される。抵抗器は熱ノイズ源をなし、即ちこれは、非決定論的であって、発生されるノイズは、真にランダムである。当業者であれば、このようなシステムに使用できる種々の異なる形式の抵抗器が明らかであろう。約５０オームの抵抗値を有する抵抗器が好ましい。負荷抵抗器は良好な熱ノイズ源であるが、これを回路に含ませることは何ら重要でないことに注意されたい。実際上、負荷抵抗器よりも前記少なくとも２つの増幅器の第１増幅器によって著しく多くのノイズが発生される。
【００２５】
スレッシュホールド検出器は、各電気的ノイズ信号に対し個別のバイナリーデータ出力ストリームを発生するのが好ましい。換言すれば、スレッシュホールド検出器は、電気的ノイズジェネレータにより与えられる各電気的ノイズ信号を並列に処理することができる。従って、Ｎ個の電気的ノイズ信号を受信するスレッシュホールド検出器は、バイナリーランダム数のＮ個のストリームを出力する。これらのバイナリーランダム数ストリームは、異なるアプリケーションへルーティングされるか、又は並列なストリームが合成されて多ビットランダムワードを形成する。或いは又、ビットが合成されて、より高いビットレートを有するバイナリーデータストリーを発生してもよい。
【００２６】
スレッシュホールド検出器は、複数の入力を有するデジタル入力／出力（ＤＩＯ）カードを備え、電気的ノイズジェネレータの各チャンネルにより発生された電気的ノイズ信号がＤＩＯカードの個別の入力に与えられるのが好都合である。ＤＩＯカードは、標準パーソナルコンピュータへインターフェイスできる市販の品目であるのが好ましく、例えば、ＰＣＩ７３００Ａカードで充分である。このカードは、必要以上に入力を有してもよく、即ち幾つかの入力が未使用でもよい。或いは又、サンプリングできる電気的ノイズ信号の数を増加するために、２つ以上のＤＩＯカードが設けられてもよい。
【００２７】
スレッシュホールド検出器は、複数のスレッシュホールド検出エレメントを含むことができる。例えば、スレッシュホールド検出器は、複数の個別のスレッシュホールド検出ユニットを含む。電気的ノイズ信号当たり少なくとも１つのスレッシュホールド検出エレメントが設けられるのが好ましい。或いは又、電気的ノイズ信号当たり２つ以上のスレッシュホールド検出エレメントが設けられてもよい。
【００２８】
サンプルレートは、１ＭＨｚ、５ＭＨｚ、１５ＭＨｚ、２５ＭＨｚ又は５０ＭＨｚより高いか又は実質的にそれに等しいのが便利である。より高速のサンプリングレートは、ランダムビットレート発生が改善されるという利点があるが、隣接データビット間の短期間相関が増加するという悩みがある。従って、各電気的ノイズ信号は、５ＭＨｚないし１５ＭＨｚの範囲内のレートでスレッシュホールド検出器によりサンプリングされるのが好ましい。例えば、各電気的ノイズ信号は、約１０ＭＨｚのレートでサンプリングされるのが好都合である。本発明の装置のビット発生レートは、高いサンプリングレートを有するＤＩＯカードを使用するのではなく、余分なチャンネルを追加することで、容易に増加できることに注意されたい。
【００２９】
この装置は、更に、データ処理モジュールを備え、このデータ処理モジュールは、スレッシュホールド検出器により出力されたバイナリーデータを受け取り、そしてその受け取ったバイナリーデータに対して処理ステップを遂行して、ランダム性特性が改善された処理済みバイナリーデータ出力を発生するように構成され、前記処理ステップは、少なくとも１つの排他的オア（ＸＯＲ）演算を含むのが好都合である。
【００３０】
従って、処理モジュールは、スレッシュホールド検出器により供給されるバイナリーデータのランダム性を高めて、ランダム性の改善された処理済みのバイナリーデータ出力を発生する。以下に詳細に述べるように、数のストリームのランダム性の便利な尺度は、シャノンエントロピーである。従って、処理モジュールは、ＸＯＲ演算を使用してスレッシュホールド検出器のバイナリーデータ出力のシャノンエントロピーを高めることが明らかである。
【００３１】
ＸＯＲ論理演算を適用してランダムデータストリームのクオリティを改善する基本的な原理は知られているが、このような技術は、典型的に、従来の技術では、単一の疑似ランダムノイズ源（例えば、決定論的アルゴリズム）から導出された隣接データビット、又は異なる発生源を使用して同じ時点で発生されたデータビットに適用されている。このような構成では、ＸＯＲ演算が遂行されるデータ対間の自己相関及びクロス相関が存在して、データのランダム性を減少させる。
【００３２】
データ処理モジュールは、バイナリーデータビットの対においてＸＯＲ演算を遂行するように構成され、各対のデータビットは、同じチャンネルの電気的ノイズ信号からスレッシュホールド検出器により導出されるのが好都合である。或いは又、ＸＯＲ演算は、異なるチャンネルの電気的ノイズからスレッシュホールド検出器により生成されたデータビットの対を使用して遂行されてもよい。
【００３３】
好ましくは、バイナリーデータビットの各対は、１千を越える介在データビットにより一時的に分離されたデータビットを含む。更に好ましくは、バイナリーデータビットの各対は、１万を越える介在データビットにより一時的に分離されたデータビットを含む。従って、１千又は１万を越えるデータビットが、ＸＯＲ演算に使用されるバイナリーデータビットの対を形成するデータビット間で、スレッシュホールド検出器により発生される。換言すれば、ＸＯＲ演算は、１千又は１万ビットごとの間に遂行される。これは、ＸＯＲ演算に使用されるデータ対間の自己相関作用を最小にする。
【００３４】
データ処理モジュールは、少なくとも１つのデータバッファを備えているのが好都合である。少なくとも１つのデータバッファを設けることで、入力及び／又は出力データを、データ処理モジュールにより処理するか又はそこから出力する前に、記憶することができる。データ処理モジュールがコンピュータで実行されるソフトウェアを使用して実施される場合には、少なくとも１つのデータバッファは、コンピュータメモリの予約部分でもよい。
【００３５】
データ処理モジュールは、電気的ノイズジェネレータの各チャンネルに対して少なくとも１つのデータバッファを備えているのが有用であり、各入力データバッファは、電気的ノイズジェネレータの各チャンネルの電気的ノイズ信号からスレッシュホールド検出器により発生されたバイナリーデータ出力を受け取るように構成される。このように、各チャンネルは、関連データバッファを有する。従って、各チャンネルにより発生される電気的ノイズ信号は、スレッシュホールド検出器によりバイナリーデータストリームへと変換され、そしてそのチャンネルに関連したデータバッファのみへルーティングされる。換言すれば、ランダムビット発生は並列に行われ、ビット発生のレートは、更なるチャンネルの追加により容易に増加することができる。
【００３６】
各入力データバッファは、少なくとも第１及び第２のセグメントに分割され、各セグメントにはバイナリーデータビットが順に完全にロードされ、前記少なくとも１つのＸＯＲ演算は、バイナリーデータビットの対において遂行され、バイナリーデータビットの各対は、第１セグメントからのデータビット及び第２セグメントからのデータビットで構成されるのが好都合である。各セグメントは、多数（例えば、１００、５００、１０００、１００００）のデータビット位置を含む。次いで、第１セグメントに、例えば、１０００個のデータビットをロードした後に、第２チャンネルに１０００個のデータビットをロードすることができる。従って、第１及び第２セグメントの第１データビットにおいてＸＯＲ演算を遂行することは、１０００個の介在データビットを有するデータビットにおいてＸＯＲ演算を遂行することであることが明らかである。従って、このようなバッファ構成を使用すると、上述した一般的なＸＯＲ処理技術を遂行する便利な仕方が与えられる。
【００３７】
各入力データバッファは、少なくとも、第１、第２、第３及び第４セグメントを含み、前記少なくとも１つのＸＯＲ演算は、第１及び第２セグメントに含まれたデータにおいて遂行され、その間に、第３及び第４セグメントには、バイナリーデータがロードされる。換言すれば、例えば、第１及び第２セグメントにロードされたデータを処理することができ、その間に、新たなデータが第３及び第４セグメントにロードされる。第３及び第４セグメントが完全にロードされると、それに対してＸＯＲ演算を遂行することができ、その間に、第１及び第２セグメントが再ロードされる。このように、セグメントがロードされている間に、処理及びデータ出力は遅延されない。
【００３８】
或いは又、入力データバッファの全てのセグメントにデータがロードされた後に、ＸＯＲ演算が遂行されてもよい。付加的なバッファ作用が与えられない場合には、処理が遂行されている間にデータビットのロスを招くことになる。しかしながら、ランダムビットが短いバーストで要求される（例えば、暗号化キー発生のために）場合、低いビットレートが要求される場合、又は電気的ノイズジェネレータが複数のチャンネルを含む場合には、これを受け入れることができる。
【００３９】
多くの場合は単一のＸＯＲ演算で充分であるが、データに対して２回以上のこのような演算を実行できることに注意されたい。次いで、暫定的なＸＯＲ結果を記憶するために、セグメント又は個別データバッファを設けることができる。
【００４０】
データ処理モジュールは、更に、出力データバッファも備えている。出力データバッファを使用すると、ホストシステムにより要求されるレート（例えば、ＰＣバスの速度）、又はその後のアプリケーション（例えば、暗号化システム）により要求されるレートで、処理済のバイナリーデータを出力することができる。出力バッファは、例えば、入力データバッファのセグメントのロードや、処理ステップの遂行、等に関連した中断を伴うことなく、ランダム数の一定のストリームを必要に応じて与えるのを許す。或いは又、出力バッファは、関連アプリケーションによって出力が要求されるまでランダム数を記憶してもよい。
【００４１】
データ処理モジュールは、適当にプログラムされたコンピュータを備えているのが好ましい。例えば、コンピュータプログラムがデータ処理モジュールを実施してもよい。このようなコンピュータプログラムは、適当なパーソナルコンピュータ（ＰＣ）上で実行されるように書き込まれる。又、コンピュータは、ＤＩＯカードを備えてもよい。このようにして、スレッシュホールド検出器及び処理モジュールの機能は、単一のＰＣにより遂行される。ＤＩＯカードは、多数の既知の仕方で、例えば、ＰＣＩバス、又はＵＳＢ、ＳＣＳＩコネクタ、等を使用して、ＰＣにインターフェイスすることができる。
【００４２】
ソフトウェアベースの実施に代わって、データ処理モジュールは、適当に構成された電子回路を備えているのが好都合である。例えば、現場でプログラムできるゲートアレー（ＦＰＧＡ）実施に、マイクロコンピュータを設けることができる。これは、ホストＰＣの処理パワーを必要とせずに、処理を遂行できるようにする。このようなケースでは、データ処理モジュールは、多数の既知の仕方の１つ（例えば、ＰＣＩバスを経て、又はＵＳＢ接続を経て、等々）でＰＣにインターフェイスされるが、ホストＰＣのリソースを著しく使用する必要はない。
【００４３】
又、適当に構成された電子回路がスレッシュホールド検出器及び電気的ノイズジェネレータ回路を含むのが好都合である。このようにして、単一の回路（例えば、ＦＰＧＡカード）が本発明のランダム数発生装置を備えることができる。従って、単一の「プラグイン」ランダム数発生カードを設けることができる。ＰＣに対してこのようなプラグインランダム数発生カードを設けることで、ＰＣは、カードからランダム数出力を受け取る簡単な制御ソフトウェアをもつことができる。カードにおいてＸＯＲ演算が行われ、これは、ホストＰＣ上の処理負荷を減少するだけでなく、カードからＰＣへ送信されるデータの量も減少する。最終的な出力データを通信するだけでよく、これは、ＰＣにより実行されるすべての処理に比して、データ転送要求を減少する。バイアス制御もカードにおいて実行される。カードは、必要とされるランダム数出力、即ちランダムなバイナリーシーケンスを出力することが要求されるか、１から１０の範囲のランダム数を出力することが要求されるかに基づいて異なるバイアス設定へ、且つファームウェアに記憶された種々の設定へ、再構成することができる。これらの設定は、次いで、ホストＰＣからの制御信号に応答して、必要に応じて変更することができる。
【００４４】
上述したデータ処理モジュール及びこのようなモジュールにより使用される方法は、ランダム数ジェネレータの出力に適用できることに注意されたい。従って、上述した特性を有するスタンドアローン型データ処理モジュールが提供される。
【００４５】
本発明の更に別の態様によれば、ランダム数発生装置は、スレッシュホールド検出器と、少なくとも２つのチャンネルを有する電気的ノイズジェネレータとを備え、電気的ノイズジェネレータの各チャンネルは、電気的ノイズ信号を発生するように構成され、スレッシュホールド検出器は、各チャンネルにより発生された電気的ノイズ信号をスレッシュホールドと周期的に比較して、そのスレッシュホールドを越えたかどうか指示するバイナリーデータ出力を与えるように構成され、電気的ノイズジェネレータの各チャンネルが、少なくとも５００００の利得を各々与える増幅手段を備えたことを特徴とする。更に好ましくは、各増幅手段は、少なくとも１０００００の利得を与える。各増幅手段は、電気的に直列に、好ましくは、非フィードバック（即ち、非発振）構成で配列された１つ以上の増幅器を備えている。
【００４６】
本発明の更に別の態様によれば、ランダム数発生装置は、スレッシュホールド検出手段と、少なくとも１つのチャンネルを有する電気的ノイズジェネレータとを備え、電気的ノイズジェネレータの前記少なくとも１つのチャンネルは、電気的ノイズ信号を発生するように構成され、スレッシュホールド検出手段は、前記少なくとも１つのチャンネルにより発生された電気的ノイズ信号をスレッシュホールドと周期的に比較して、そのスレッシュホールドを越えたかどうか指示するバイナリーデータ出力を与えるように構成され、電気的ノイズジェネレータの少なくとも１つのチャンネルが、少なくとも５００００の利得を各々与える増幅手段を備え、そして前記スレッシュホールド検出手段がデジタル入力／出力（ＤＩＯ）カードを備えたことを特徴とする。前記ＤＩＯカードにインターフェイスされるパーソナルコンピュータも設けられるのが好ましい。
【００４７】
本発明の更に別の態様によれば、ランダム数発生装置は、デジタル入力／出力（ＤＩＯ）カードを備えている。このＤＩＯカードは、増幅されたノイズ信号をサンプリングするように構成されるのが好都合である。前記ＤＩＯカードとインターフェイスされ及び／又はそれを含むパーソナルコンピュータも設けられるのが好ましい。
【００４８】
本発明の更に別の態様によれば、ランダム数発生方法は、（ｉ）少なくとも２つのチャンネルを有する電気的ノイズジェネレータを準備するステップと、（ii）各チャンネルにより発生された電気的ノイズ信号をスレッシュホールドと周期的に比較して、そのスレッシュホールドを越えたかどうかを指示するバイナリーデータ出力を与えるステップとを備え、少なくとも２つのチャンネルを有する電気的ノイズジェネレータを準備する前記ステップ（ｉ）は、各チャンネルが電気的に直列に接続された少なくとも２つの増幅器を備えた電気的ノイズジェネレータを準備するステップを含むことを特徴とする。
【００４９】
以下、添付図面を参照して、本発明を一例として詳細に説明する。
【発明を実施するための最良の形態】
【００５０】
図１は、本発明のランダム数ジェネレータ（ＲＮＧ）２の概略図である。ＲＮＧ２は、電気的ノイズジェネレータ回路６と、デジタル入力／出力（ＤＩＯ）カードを含むパーソナルコンピュータ（ＰＣ）４とを備えている。
【００５１】
ＰＣ４のＤＩＯカードは、ＰＣＩ−７３００Ａ高速カードであって、８ビットのデータ入力モードで動作し且つ１０Ｍバイト／秒のデータ転送レートで転送できるように構成されている。
【００５２】
又、ＲＮＧは、ＰＣＩ上に実施されて、ＰＣに直結することもできる。
【００５３】
図２を参照すれば、熱ノイズジェネレータ回路６は、４つのチャンネル（８ａ−８ｄ）を備えている。各チャンネルは、電気的に直列に接続された３つの差動ワイドバンド増幅器１０ａ−１０ｃを備えている。これらワイドバンド増幅器は、ＵＡ７３３集積回路である。第１増幅器１０ａの入力は、ランダム熱ノイズ源として働く接地抵抗器１２に接続される。３つの増幅器をこのように連結すると、ほぼ２０ＭＨｚの帯域巾で約１０００００の全利得を達成することができる。従って、チェーンの第１増幅器１０ａの入力に存在するノイズが増幅されて、第３増幅器１０ｃは、ほぼ１Ｖ  ＲＭＳの出力信号を出力する。又、各チャンネル８の出力は約１ＶのＤＣオフセットを有する。この電圧レベルの微同調は、チェーンの第２増幅器１０ｂの出力に接続されたポテンショメータ１６を調整することにより達成される。
【００５４】
このような高利得増幅システムで生じ得る正のフィードバック及び発振を回避するために、接地平面回路板構成が使用される。更に、各増幅器には、電源カップリング作用を減少するためにローカルデカップリングキャパシタ（図示せず）が設けられる。又、電気的なアイソレーションを更に改善するために、各増幅器チャンネル８には個別の＋５Ｖ及び−５Ｖレギュレータも設けられ、ローカル電源レールへの外部＋７．５Ｖ及び−７．５Ｖ電源を変換する。又、増幅器チップは、互いに物理的に分離されて、アイソレーションを最大にするよう確保される。使用する電源は、電源からのカップリングを減少するように低ノイズ電源であるのが好ましい。
【００５５】
考えられる干渉作用を更に減少するために、ランダム数ジェネレータ全体が、ＲＦエンクロージャー（ＥＭＩシールド）、実際には、接地されたメタルボックス内に更に包囲される。これは、外部信号がデータのランダム性に影響するのを防止すると共に、機密性が重要である量子暗号化アプリケーションに使用するときには、盗聴者が、発生されているランダム数に関する情報を決定するのを防止し又はそのような機会を減少させる。ＱＣシステムの場合には、出力ケーブル等を含む全てのコンポーネントがＲＦシールドされる。
【００５６】
又、各増幅段は、その増幅段の利得ができるだけ最大フラット応答に近付くように確保するためにプログラム可能なイコライゼーションフィルタ（図示せず）も有する。
【００５７】
４つのチャンネル８ａ−８ｄの各々により発生された出力信号は、ワイドバンドバッファ及びケーブル１４を経てＰＣ４のＤＩＯカードの入力へ供給される。ケーブル１４は、４つのノイズ出力の各々をＤＩＯカードの４つの各入力へ別々に接続する１６芯リボンケーブルである。４つのチャンネル間のクロストークを最小にするために、リボンケースの４番目ごとのワイヤが、熱ノイズジェネレータ回路６のチャンネル８から信号出力を搬送し、リボンケーブルの他の全てのワイヤは、接地される。
【００５８】
ＰＣ４のＤＩＯカードは、電気的ノイズジェネレータ回路６の各チャンネルにより出力されたアナログ信号をバイナリーロジックレベル（即ち、“０”又は“１”）へ変換するように構成される。アナログ信号は、ＤＩＯカードにより通常のレート（この場合は１０ＭＨｚ）でサンプリングされ、そして得られたバイナリーデータストリームは、バッファを経てＰＣのメモリへ転送される。
【００５９】
ＤＩＯカードにより出力されたランダムデータを分析したところ、ある環境のもとでは、完全なランダム性からのずれが生じ得ることが示された。注目すべき３つの作用、即ち自己相関、クロス相関、及び熱ドリフト、が分かった。
【００６０】
自己相関は、ビットがその以前のもの（１つ又は複数）と同じになる（又は相違する）傾向を表す。ある程度の自己相関は不可避であるが、サンプリングされるノイズの限定帯域幅が与えられると、約１％未満の自己相関係数が典型的に観察されている。クロス相関は、同じサンプル時間又はより早期のサンプル時間において、他のチャンネルにより影響される１つのチャンネルのビットの値で、クロストークの作用を表す。クロス相関は、熱ノイズ発生回路６内のクロスチャンネル結合から、又はＤＩＯカードへのケーブル１４から、又はＤＩＯカード内から生じる。典型的に、約３％のクロス相関係数が観察されている。
【００６１】
ＤＩＯカードのバイナリーデータ出力のバイアス、即ちより大きな割合の“１”又は“０”を出力することに向かうバイアスも観察されている。熱ノイズジェネレータ回路６の各チャンネル８におけるポテンショメータ１６を調整することにより、論理“１”であったビットの割合を、４つのチャンネルの各々に対して、４９．５％から５０．５％の範囲にセットすることができる。このような調整でバイアスの問題が最初に解明されるが、バイアスは、ゆっくりとした熱ドリフトを受けることが分かった。３日間の周期で行われた１つのテストにおいて、周囲温度が約６℃変化する間にバイアスが３％変化した。この作用は、システムが最初にスイッチオンされたときのウオームアップ周期中にも現れる。
【００６２】
図３は、ＲＮＧ(即ち、ＰＣ４及び熱ノイズ発生回路６)が丁度スイッチオンされたときに、生のランダムビットの４つの各チャンネルのバイアスを時間の関数として示す。この作用に対する最も大きな貢献は、温度に伴うＰＣ内のＤＩＯカードのスレッシュホールドの変化によるものであることが分かった。
【００６３】
当業者は、典型的に、ランダムビットのバッチのクオリティをシャノンエントロピーにより定義することに注意されたい。ランダム数ジェネレータがｎビットのグループを生成すると仮定する。次いで、考えられる異なるビットパターンの数がＮ＝２nで、これは、１からＮまで番号付けできるとする。又、ＲＮＧがｉ番目のビットパターンを与える確率がｐiであるとする。次いで、このプロセスのシャノンエントロピーは、次のように定義される。
0005384118.tif 000002
【００６４】
理想的なランダムプロセスの場合、全てのビットパターンが等しい確率を有し、そしてエントロピーがｎとなる。換言すれば、理想的なバイナリーＲＮＧは、１のシャノンエントロピーを有する。
【００６５】
上述したように、バイアスは、温度と共に変化し、ひいては、温度にも依存するシャノンエントロピーを招く。通常の動作のもとで、温度が、バイアス調整がなされた温度の約２℃以内であるときには、ビット当たり０．９９９のシャノンエントロピーが得られる。温度の変化が約１０℃という最悪の仮定でも、４つの全チャンネルに約５５％のバイアスが与えられると、ビット当たり０．９９３のエントロピーが与えられる。それ故、このようなＲＮＧを使用して２５６ビットキーを発生する場合には、キーは、２５６ｘ０．９９３≒２５４ビットのエントロピーを有することになる。換言すれば、ＲＮＧからの２５６ビットキーは、完全なランダム数ジェネレータにより発生される２５４ビットキーに等しいセキュリティのレベルを与えることになる。
【００６６】
上述したランダム性のレベルは、多くのアプリケーションで受け容れられる。しかしながら、あるアプリケーションでは、より高いレベルのシャノンエントロピーを有するＲＮＧが必要とされる。これは、ＤＩＯカードの温度制御を与えることにより達成できる。或いは又、熱ノイズジェネレータ回路６の各チャンネル８のポテンショメータ１６は、各チャンネルに関連したバイアスを最小にするように動的に変化させることができる。しかしながら、別の実施形態では、各チャンネルのポテンショメータ１６が、コンピュータにより発生された不平衡制御信号に応答して、デジタル／アナログコンバータ(ＤＡＣ)に置き換えられる。ＤＡＣは、良好な分解能のために基準電圧を有する校正型ＤＡＣである。
【００６７】
この実施形態では、チャンネルの出力は、１のインスタンスの数及び０のインスタンスの数をカウントするためにコンピュータによって監視される。５０％のバイアスをもつチャンネルについて上述したように、発生される１の数は、時間と共に発生される０の数に等しくなければならない。それ故、コンピュータは、ある周期で１の数と０の数を合計するように構成される。当業者であれば、この周期は、統計学的に意義のあるビット数をカウントできるものでなければならないことが明らかであろう。１０Ｍビット／秒のデータレートで１秒間カウントすることは、百万ビットがカウントされることを意味する。
【００６８】
この周期における１及び０の数を、必要な特定バイアスに対して予想されるべきものと比較することができる。５０％バイアスの場合には、１及び０の数が等しくなければならない。次いで、コンピュータは、１及び０の数を処理して、不平衡を表す数を発生し、この数をＤＡＣへ出力する。ＤＡＣは、この信号をアナログＤＣ電圧レベルへ変換し、これがチャンネルに付与される。特定のチャンネルが必要に応じて動作し、即ち５０％バイアスに対して動作する場合には、１及び０の数が等しく、不平衡制御信号は、同じバイアスレベルを保持するための電流レベルに維持される。しかしながら、例えば、１が０より多い場合は、制御信号が増加されて、印加されるバイアスを増加し、等価性を回復させる。増加の程度が、検出される不平衡の程度にリンクされる。同様に、０が１より多い場合には、ＤＡＣに出力される数が減少され、印加されるバイアスを減少して、等価性を回復させる。
【００６９】
カウンティング及び処理は、ソフトウェアで実施され、生の出力ストリームに作用を及ぼすことができる。このように、出力データの流れを中断することなく熱ドリフトを調整するためのフィードバック制御で恒常的な自動監視が達成される。
【００７０】
又、各チャンネルにより発生されたバイナリーランダムデータに対して排他的オア(ＸＯＲ)演算が遂行される。このような演算は、ＲＮＧのランダム性を更に改善し、そして真のランダム出力を与えることが分かった。
【００７１】
図４を参照すれば、ＰＣ４のＤＩＯカードにより出力されるデータのランダム性を改善するＸＯＲベースの方法の基礎的原理が示されている。この方法は、ＤＩＯカードのチャンネルにより発生されたランダムなバイナリーデータストリームを第１データバッファ３０及び第２データバッファ３２の一方に順次にロードすることを含む。
【００７２】
使用中、ＤＩＯカードのチャンネルからの第１の１０００個のバイナリーデータビットは、第１データバッファ３０の第１セグメント３４へロードされる。第２の１０００個のデータビットは、第１データバッファ３０の第２セグメント３６へロードされる。第１データバッファの第１及び第２セグメントがロードされると、その第１データバッファ３０の第１及び第２セグメントの対応するデータ対において排他的オア(ＸＯＲ)演算が順次に遂行される。特に、（ｉ）第１データバッファ３０の第１セグメント３４に含まれた第１データビット、及び(ii) 第１データバッファ３０の第２セグメント３６に含まれた第１データビットにおいてＸＯＲ演算が遂行される。ＸＯＲ計算の結果が出力され、そして第１データバッファの第１及び第２のセグメントに記憶された値の対についてプロセスが順次に繰り返される。
【００７３】
第１データバッファ３０に含まれたデータにおいて遂行されるＸＯＲ演算と並列に、次の２０００個のデータビットが、第２データバッファ３２の第１セグメント３８に、次いで、第２セグメント４０にロードされる。第２データバッファ３２が完全にロードされ、第１データバッファ３０のデータにおいてＸＯＲ演算が完了すると、第２データバッファ３２の第１及び第２セグメントに含まれたデータ対においてＸＯＲ演算が遂行される。第２データバッファ３２からのデータにおいてＸＯＲ演算が遂行されている間に、第１データバッファ３０にデータが再ロードされる。
【００７４】
他のバッファにロードされたデータにおいてＸＯＲ演算を遂行している間にあるバッファにロードするプロセスが繰り返される。従って、毎秒ｎビットの第１ストリーム４２が第２ストリーム４４に変換されることが明らかである。第２ストリーム４４は、毎秒ｎ／２ビットのビットレートを有するが、以下に詳細に示すように、改善されたランダム特性を有する。従って、この形式のランダム性向上アルゴリズムが、ビットレートを犠牲にして、ランダムビットのクオリティを改善する。
【００７５】
前記方法は、１０００ビット分離されたビットにおいてＸＯＲ演算を遂行するが、当業者であれば、より大きな又はより小さなビット分離を使用できることが明らかであろう。分離は、単に、ＰＣのＤＩＯカードによって出力されるランダムビットデータ流におけるローカル相関が除去されることを保証するに足る大きさであればよい。例えば、数百ビット又は数千ビットの分離もランダム性の改善を与える。ＸＯＲ演算が遂行されるビットの分離度の選択は、単に、システムの特性に依存する。
【００７６】
又、ＸＯＲ演算のための多数の別の構成を使用することもできる。例えば、ＸＯＲ演算は、ＤＩＯカードの異なるチャンネルにより発生されたデータビット対において遂行することができる。ＸＯＲ演算に使用されるデータビット及び／又はデータの分離も、システムのオペレーション中に変更することができる。又、ソフトウェアは、第２ストリーム４４及び／又は第１ストリーム４２のデータ出力の完全なランダム性からのずれを計算し、それに応じてビット分離を調整するように構成することもできる。
【００７７】
又、ここに述べる技術は、ソフトウェアを使用して実施されるが、それに代わってハードウェアの実施(例えば、ＦＰＧＡカードを使用した)も行えることに注意されたい。これは、ホストＰＣ処理パワーの費用を必要としないＰＣカード解決策を提供する。埋め込まれた処理、即ちＦＰＧＡアレー及びマイクロコントローラを使用する概念も、カードとＰＣとの間のデータ送信要求を容易にする。明らかなように、全てのデータ処理がカードにおいて行われる場合には、その出力が最終的なランダム数シーケンスとなるが、ＰＣがＸＯＲ演算を行う場合には、全てのデータチャンネルをＰＣへ転送することが必要である。埋め込み処理の実施は、潜在的な送信ボトルネックを容易にすることができる。
【００７８】
上述した処理機構の変形が、図１及び２を参照して上述した装置のＤＩＯカードからの生のデータ出力に適用された。この機構は、次のように動作する。
（ｉ）ＲＮＧハードウェアから数千万のランダムビットのバッチが得られ、そしてこのバッチが８つの等しいセグメント(例えば、セグメントａ、ｂ、ｃ、ｄ、ｅ、ｆ、ｇ、ｈ)に分割される。
（ii）８つのセグメントのうちの４つを、ＸＯＲ演算を使用して合成して、１つの新たな出力セグメントを発生し、例えば、演算ｂＸＯＲｃＸＯＲｄＸＯＲｅが遂行される。
（iii）４つの入力セグメントの３つの異なる選択を使用して、ステップ(ii)を更に３回繰り返す（例えば、演算ａＸＯＲｃＸＯＲｄＸＯＲｆ、ａＸＯＲｂＸＯＲｄＸＯＲｇ、及びａＸＯＲｂＸＯＲｃＸＯＲｈが遂行される）。
（iv）それにより得られる４つの出力セグメントは、最初に発生されたビット数の半分を与えるが、４倍のＸＯＲプロセスのためにクオリティが改善される。
【００７９】
上述した方法は、５５％バイアスを５０．００５％バイアスに、そして５．７％の自己相関又はクロス相関係数を０．００１％の相関係数に変換することが分かった。従って、シャノンエントロピーが０．９９３である５５％バイアスのプロセスは、シャノンエントロピーが０．９９９９９９９７のプロセスに変換される。このような高レベルエントロピーは、ＲＮＧが完全なランダム数ジェネレータと実際上区別がつかないことを意味する。
【００８０】
図５を参照すれば、上述した処理方法を適用した後のランダムデータが示されている。図５のグラフは、処理済みビットのバイアス(４つの全チャンネルにわたり平均化された)をスタート後の時間の関数として示している。バイアスの作用は、ほぼ完全に除去されたことが明らかであり、このプロットで観察されるバイアスの変動は、完全に、各プロット点を作り上げている約８億ビットの各バッチに関連した統計値によるものである。
【００８１】
生のランダムビットを発生してデータファイルにセーブできるレートは、毎秒２．６４ｘ１０7ビットであることが分かった。ＤＩＯカードは、毎秒１０7サンプルというレートで４ビットをサンプリングしたが、データをフォーマットし、それをＰＣメモリに転送し、次いで、ハードディスクへ書き込むことに関連したオーバーヘッドで、データレートが理論的最大値の６５％へ減少された。ＰＣ４は、４００ＭＨｚペンティウムIIマシンであり、１．７ＧＨｚＰＣを使用して行われたテストでは、毎秒３．７３ｘ１０7ビットというビットレートが達成された。上述したように、ＸＯＲベースの補償機構を使用する場合には、ＲＮＧのビットレートは、ほぼ半分になる。ＰＣ４は、毎秒１．４４ｘ１０7ビットというレートで本質的に完全なランダムビットを発生できるが、１．７ＧＨｚＰＣは、毎秒２．００ｘ１０7ビット(即ち、２０Ｍｂ／ｓ)というビット発生レートを与えることが分かった。
【００８２】
当業者であれば、ランダム数ジェネレータのランダム性をテストする方法は多数あることが明らかであろう。ここに述べるＲＮＧは、ドキュメントＦＩＰＳ１４０−１“Security requirements for cryptographic modules”に記載されたテストを受けた。ＦＩＰＳ１４０−１は、U.S. based National Institute of Standards and Technologyによって発行されたアメリカン規格である。ＦＩＰ１４０−１は、暗号アプリケーションに意図されたランダム数ジェネレータがパスしなければならない１組のテストを含む。
【００８３】
本発明のＲＮＧの出力は、ＸＯＲ処理方法を使用せずに、ＦＩＰＳ１４０−１テストにパスできることが分かった。しかしながら、これは、装置が完全にウオームアップされ、そしてそれが最後に調整された温度に近い周囲温度で動作するときである。より健全な振舞いを立証するために、ソフトウェア補償されたＲＮＧ出力においてもＦＩＰＳ１４０−１テストが行われた。手短に述べると、ＲＮＧは、冷たい温度から広範囲な温度にわたりテストにパスすることが分かった。使用したテスト手順を以下に説明する。
【００８４】
広い温度範囲にわたってシステムを動作するときに予想される性能の低下をシミュレーションするために、生の出力における１の確率を５５％にするようにバイアス調整が慎重にオフセットされた。次いで、使用中のソフトウェア補償アルゴリズムで２０分間システムを動作させることにより、８ギガビットのランダム数ファイルが生成された。ＦＩＰＳ１４０に規定されたテストは、２００００ビットしか必要としないので、ファイル内の全てのビットを使用するために全てのテストを４０００００回繰り返した。その結果、テストの１つ(実行テスト)が１回不合格となり、他の全てのテストはパスした。この結果は、予想されたものである。というのは、これらの統計学的テストの性質上、理想的なランダム数ジェネレータは、稀に不合格になることが予想されるからである。従って、上述したＲＮＧのランダム性は、これらのテストに関する限り、完全である。
【００８５】
要約すれば、ＤＩＯカードに結合したときに、毎秒３７Ｍビットまでのレートでランダムビットを発生することのできる４チャンネルノイズ源を備えたＲＮＧが説明された。上述したＤＩＯカードは、毎秒１０Ｍサンプルのレートで並列に３２ビットを読み取れることに注意されたい。従って、３２チャンネルを有するランダムノイズ発生回路を設けることで、ＤＩＯカードの全３２ビットを使用することができる。上述した４ビットシステムではなく、３２チャンネルシステムは、１００Ｍビット／ｓを越えるランダム数発生レートを許す。
【００８６】
上述したように、ＲＮＧは、主として、１及び０の発生確率が等しい状態でランダムなバイナリーデータストリングを発生するのに使用されていた。しかしながら、ＲＮＧは、特定のチャンネルを適当にバイアスし、次いで、種々のチャンネルからのデータを合成することにより、定義された確率で任意の形式のランダム数を発生するように構成できる。例えば、ＲＮＧは、Ｎ個の数のどの１つも等しい確率で発生するように構成できる。ＲＮＧを使用して、１と１０との間の数を等しい確率で発生することを想像されたい。この数を発生するために、４つのチャンネルからの出力を合成して、４桁のバイナリー数を発生することができる。従って、００００から１１１１までのバイナリー数、即ち０から１５まで、を合成出力により発生することができる。１から１０の数しか必要とされない場合には、処理ソフトウェアは、この範囲外の数を破棄するように気をつけ、即ち、数００００又は数１０１１−１１１１のいずれかを破棄する。従って、受け容れられる数は、０００１、００１０、００１１、０１００、０１０１、０１１０、０１１１、１０００、１００１、１０１０となる。これらの数の各々が等しい見込みである場合には、最下位ビットが１である確率は、それが０である確率と同じであり、即ち５０％であることが分かる。それ故、最下位ビットに対応する出力を発生するチャンネルに対するバイアスは、５０％にセットされる。最下位から２番目のビットについても同じことが言える。しかしながら、各々の数が等しい見込みである場合には、最上位ビットは、１０回のうち７回は０になり、そして最上位から２番目のビットは、１０回のうち６回はそうなる。それ故、これらチャンネルに対するバイアスは、０を発生することに向かって各々７０％及び６０％にセットされる。このように、コンピュータは、各チャンネルのバイアスを独立して調整し、それを正しいバイアスに維持する。又、種々のチャンネルの出力も正しく合成して、必要な出力を発生する。
【図面の簡単な説明】
【００８７】
【図１】電気的ノイズ発生回路と、デジタル入力／出力カード（ＤＩＯ）を含むパーソナルコンピュータとを備えた本発明のランダム数ジェネレータを示す図である。
【図２】電気的ノイズジェネレータを実施するのに使用される熱ノイズ発生回路を示す図である。
【図３】ウオームアップ中のＲＮＧのランダム性からのずれを示すグラフである。
【図４】本発明のデジタルデータ処理の基礎となる原理を示す図である。
【図５】ＸＯＲ処理方法が生のデータ出力に適用されるときにＲＮＧのランダム性からのずれを示すグラフである。
【図１】
0005384118.tif 000003
【図２】
0005384118.tif 000004
【図３】
0005384118.tif 000005
【図４】
0005384118.tif 000006
【図５】
0005384118.tif 000007