(57)【要約】  品質設定可能ランダムデータサービスのための方法及び装置が開示される。方法は、プロバイダネットワークのランダムデータサービスの一以上のクライアントに配信されるランダムデータのそれぞれの特性を決定することを可能とするプログラム的インターフェイスを実行することを含む。前記方法は、前記プロバイダネットワーク内のデバイスにおける信頼性のあるクライアントへランダムデータを送信するためのプロトコルを含む、前記クライアントへランダムデータを送信するためのセキュリティプロトコルを実行することを含む。前記方法はさらに、特定のクライアントのために前記決定された特性に従って、前記プロバイダネットワークの一以上のサーバからランダムデータを取得し、そして前記特定クライアントに対応付けられた配信先へ前記ランダムデータを送信開始することを含む。【選択図】図１
2016510137.tif 000002
【特許請求の範囲】
【請求項１】
ランダムデータを生成するネットワークアクセス可能なサービスを実施するように動作可能なプロバイダネットワークの一以上のコンピューティングデバイスを備えるシステムであって、前記一以上のコンピューティングデバイスが、
前記サービスの一以上のクライアントに提供されるランダムデータのそれぞれの特性を決定することを可能とする一以上のプログラム的インターフェイスを実行し、
前記プロバイダネットワーク内の一以上のデバイスにおける信頼性のあるクライアントへランダムデータを送信するためのセキュリティプロトコルを少なくとも一つ含む、前記一以上のクライアントへランダムデータを送信するための一以上のセキュリティプロトコルを実行し、
そして前記一以上のクライアントの特定クライアントに提供されるランダムデータの決定された特性集合に従って、
前記一以上のクライアント用のランダムデータプロデューサとして指定された前記プロバイダネットワークの一以上のサーバから、前記特定クライアントのためにランダムデータを取得し、
そして前記一以上のサーバから取得した前記ランダムデータの送信を、前記送信用に決定されたセキュリティプロトコルに従って、前記特定クライアントに対応付けられた配信先に宛てて開始するように構成された、
前記システム。
【請求項２】
請求項１に詳述の前記システムにおいて、前記一以上のプログラム的インターフェイスが、前記特定クライアントに配信される前記ランダムデータの希望する統計的特性を前記特定クライアントが指示可能な特定プログラム的インターフェイスを含む、前記システム。
【請求項３】
請求項１に詳述の前記システムにおいて、前記一以上のコンピューティングデバイスが、
前記一以上のプログラム的インターフェイスの特定プログラム的インターフェイスを介したインタラクションに少なくとも一部基づいて、前記特定クライアントのために前記ランダムデータが使用されるアプリケーションの種類を決定し、
そして前記アプリケーションの種類に基づいて、前記特定クライアントに提供される前記ランダムデータの一以上の特性を決定するように構成された、
前記システム。
【請求項４】
請求項１に詳述の前記システムにおいて、前記一以上のコンピューティングデバイスが、
前記特定クライアントのために前記ランダムデータを生成する前記一以上のサーバのうち少なくとも一サーバによって使用される一以上のエントロピーソースを決定するように構成された、
前記システム。
【請求項５】
請求項１に詳述の前記システムにおいて、前記一以上のコンピューティングデバイスが、
前記ランダムデータを送信するために使用される前記セキュリティプロトコルを、一以上の（ａ）前記特定クライアントによって指示されたセキュリティ選好、（ｂ）前記特定クライアントに対応付けられた推測セキュリティ要件特性、または（ｃ）前記配信先に対応付けられたネットワークアドレス、に少なくとも一部基づいて、機密性、真正性、データ完全性及びリプレイ防護の目標レベルに従って決定するように構成された、
前記システム。
【請求項６】
プロバイダネットワークのランダムデータサービスの一以上のクライアントに配信されるランダムデータのそれぞれの特性を決定することを可能とする一以上のプログラム的インターフェイスを実行し、
前記プロバイダネットワーク内の一以上のデバイスにおける信頼性のあるクライアントへランダムデータを送信するためのセキュリティプロトコルを少なくとも一つ含む、前記一以上のクライアントへランダムデータを送信するための一以上のセキュリティプロトコルを実行し、
そして前記一以上のクライアントの特定クライアントに提供されるランダムデータの決定された特性集合に従って、
前記プロバイダネットワークの一以上のサーバから、前記特定クライアントのためにランダムデータを取得し、
そして前記一以上のサーバから取得した前記ランダムデータの送信を、前記特定クライアントに対応付けられた配信先に宛てて開始する
ことを含む方法。
【請求項７】
請求項６に詳述の前記方法において、
前記一以上のプログラム的インターフェイスの特定プログラム的インターフェイスを介したインタラクションに少なくとも一部基づいて、前記特定クライアントのために前記ランダムデータが使用されるアプリケーションの種類を決定し、
そして前記アプリケーションの種類に基づいて、前記特定クライアントに提供される前記ランダムデータの一以上の特性を決定する
ことをさらに含む前記方法。
【請求項８】
請求項６に詳述の前記方法において、
複数のクライアントにランダムデータを提供するように構成されたランダムデータプロデューサのプールの要素として、前記一以上のサーバを含む、前記プロバイダネットワークのサーバの集合を指定し、
そしてプロデューサ選択基準に従って、前記プールから前記一以上のサーバを選択する
ことをさらに含む前記方法。
【請求項９】
請求項６に詳述の前記方法において、
前記ランダムデータを送信するために使用される前記一以上のセキュリティプロトコルの特定セキュリティプロトコルを、一以上の（ａ）前記特定クライアントによって指示されたセキュリティ選好、（ｂ）前記特定クライアントに対応付けられた推測セキュリティ要件特性、または（ｃ）前記配信先に対応付けられたネットワークアドレス、に少なくとも一部基づいて決定することをさらに含み、前記特定セキュリティプロトコルが、機密性、真正性、データ完全性またはリプレイ防護の目標レベルに対するサポートを提供する業界標準セキュリティ機構に少なくとも一部基づいた、
前記方法。
【請求項１０】
請求項６に詳述の前記方法において、
前記特定クライアントに対応付けられた前記配信先へ前記ランダムデータを送信するための特定プログラム的インターフェイスを実行し、
そして前記特定プログラム的インターフェイスに対応付けられた前記ランダムデータの送信を開始する
ことをさらに含む方法。
【請求項１１】
請求項１０に詳述の前記方法において、前記特定クライアントのクライアントアプリケーションが作動するホストにおいて前記配信先が媒体コンポーネントを備え、前記クライアントアプリケーションが、別のプログラム的インターフェイスを使って前記媒体コンポーネントからのランダムデータを取得するように構成され、前記方法はさらに、
前記媒体コンポーネントによって、前記ランダムデータを取得するための前記特定プログラム的インターフェイスに基づいて要求を送信し、
そして前記クライアントアプリケーションに変更を施すことなく、前記媒体コンポーネントにより前記別のプログラム的インターフェイスを介して前記クライアントアプリケーションに対し、少なくとも前記ランダムデータの部分を提供する
ことを含む前記方法。
【請求項１２】
請求項６に詳述の前記方法において、前記特定クライアントが特定ホスト上で作動するソフトウェアコンポーネントを備え、前記特定クライアントに対応付けられた前記配信先が、前記特定ホスト上で作動するローカルアグリゲータを備え、前記方法はさらに、
前記サービスによって送信された前記ランダムデータと、前記特定ホストにおいてローカルに生成された追加ランダムデータを、前記特定ホストの前記ローカルアグリゲータによって結合し、
そして前記サービスによって送信された前記ランダムデータとローカル生成された前記ランダムデータの前記結合結果を、前記ローカルアグリゲータによって前記アプリケーションに提供する
ことを含む前記方法。
【請求項１３】
請求項１２に詳述の前記方法において、前記追加ランダムデータはローカルエントロピーソースから取得されたデータ値シーケンスの少なくとも一部に基づいてローカルに生成され、前述の結合処理には、前記サービスによって送信された前記ランダムデータを前記シーケンスに含めることも含む、前記方法。
【請求項１４】
請求項６に詳述の前記方法において、前記ランダムデータが取得された元の前記一以上のサーバは複数のサーバを備え、前記方法はさらに、
前記プロバイダネットワークのアグリゲータサーバにおいて、前記複数のサーバの第一サーバにおいて生成されたランダムデータと前記複数のサーバの第二サーバにおいて生成されたランダムデータを結合し、
そして前記第一及び第二サーバによって送信された前記ランダムデータの前記結合結果を、前記アグリゲータサーバから前記配信先に提供する
ことを含む前記方法。
【請求項１５】
プログラム命令を記憶する非一時的コンピュータアクセス可能記憶媒体であって、一以上のプロセッサ上で実行された前記プログラム命令が、
プロバイダネットワークのランダムデータサービスの一以上のクライアントに配信されるランダムデータのそれぞれの特性を決定することを可能とする一以上のプログラム的インターフェイスを実行し、
前記プロバイダネットワーク内の一以上のデバイスにおける信頼性のあるクライアントへランダムデータを送信するためのセキュリティプロトコルを少なくとも一つ含む、前記一以上のクライアントへランダムデータを送信するための一以上のセキュリティプロトコルを実行し、
そして前記一以上のクライアントの特定クライアントに提供されるランダムデータの決定された特性集合に従って、
前記プロバイダネットワークの一以上のサーバから、前記特定クライアントのためにランダムデータを取得し、
そして前記一以上のサーバから取得した前記ランダムデータの送信を、前記特定クライアントに対応付けられた配信先に宛てて開始する、
前記非一時的コンピュータアクセス可能記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
多様な種類のコンピューティングアプリケーション及びプロトコルがランダムデータの使用に依存している。例えば公衆及び／または私設ネットワークを通して行われる多数の取引で使用される暗号鍵または証明書を生成するのに、乱数が使われる。このような暗号鍵及び証明書は、数百万のエンドユーザ及びサービスプロバイダのセキュリティアルゴリズムに対する信頼の基盤であり、データの機密性、認証及び完全性を提供するためになくてはならない。毎年累積的に数十億ドルの事業収入を生み出す大多数のインターネットサービスは、これらのサービスに使用されるコアインフラストラクチャ技術の一部を実施するために、ランダムデータの使用に依存している。歳入庁及び／または研究所等の政府機関も、重要な業務においてランダムデータに依存したセキュリティアルゴリズムを利用している。
【０００２】
前記ランダムデータを使用する前記アプリケーション及びシステムの厳密な安全性の程度は、前記ランダムデータの品質に左右される。例えば使用されている前記乱数の品質が低ければ（例えば所定のセキュリティアルゴリズムで使用されている異なる乱数間に予測可能な相関関係がある場合）、悪意のある攻撃者は前記セキュリティへより簡単に進入しうる。例えば少数のランダムと思われる物理的現象ソースを使って、複数のアプリケーションで使用されるランダムデータを生成するある種の環境において、前記低品質な乱数の問題は悪化しうる。同時にランダムデータを使用する全てのアプリケーションが前記データに同一の統計的品質を求めるわけではないため、このような異なるアプリケーションが混在したシナリオにおいては、多量の高品質なランダムデータを生成するコストとその有益性を比較検討する必要がある。
【図面の簡単な説明】
【０００３】
【図１】少なくともいくつかの実施形態に従って、システム環境の実施例が示される。
【図２】少なくともいくつかの実施形態に従って、複数のランダム現象ソースを使ってランダムデータを生成するように構成されたプロデューサが示される。
【図３】少なくともいくつかの実施形態に従って、複数のランダムデータプロデューサによって生成されたランダムデータの集約が示される。
【図４】少なくともいくつかの実施形態に従って、プロバイダネットワークの複数のアベイラビリティコンテナにわたるランダムデータプロデューサの分散的な配置の実施例が示される。
【図５】少なくともいくつかの実施形態に従って、ランダムデータがサービスにより提供される際、カスタマイズ可能なパラメータの種類の実施例が示される。
【図６】少なくともいくつかの実施形態に従って、サービスにより生成されるランダムデータの一意性ポリシーの実施態様が示される。
【図７】少なくともいくつかの実施形態に従って、サービスがランダムデータを送信する際のいくつかの異なるセキュリティプロトコルの使用実施例が示される。
【図８】少なくともいくつかの実施形態に従って、品質選択可能なランダムデータを提供するサービスにより実施されるプログラム的インターフェイスの種類の高次概観が示される。
【図９】少なくともいくつかの実施形態に従って、ランダムデータサービスのクライアントが、提供されるランダムデータの特性を指定できるウェブベースのインターフェイスの実施例が示される。
【図１０】少なくともいくつかの実施形態に従って、プロバイダネットワークにおける指定されたサーバプールからランダムデータを提供するために行われる処理態様を説明するフロー図が示される。
【図１１】少なくともいくつかの実施形態に従って、希望するレベルの一意性のランダムデータを提供するために行われる処理態様を説明するフロー図が示される。
【図１２】少なくともいくつかの実施形態に従って、サービス提供ランダムデータと、ランダムデータコンシューマが作動するホストのローカル生成ランダムデータを結合するために行われる処理態様を説明するフロー図が示される。
【図１３】少なくともいくつかの実施形態に従って、ランダムデータコンシューマが作動するホストにおいてサービス生成データを使用するかどうかを決定するためにローカルで展開されるランダムデータサービスコンポーネントの処理態様を説明するフロー図が示される。
【図１４】少なくともいくつかの実施形態に従って、ランダムデータプロデューサのプールに含まれるべきサーバの数を決定するために行われる処理態様を説明するフロー図が示される。
【図１５】少なくともいくつかの実施形態に従って、プログラム的インターフェイスを通してランダムデータを提供するネットワークアクセス可能なサービスを実施するために行われる処理態様を説明するフロー図が示される。
【図１６】少なくともいくつかの実施形態に従って、ランダムデータを提供するサービスの選択可能な価格設定ポリシーを実施するために行われる処理態様を説明するフロー図が示される。
【図１７】少なくともいくつかの実施形態において使用されるコンピューティングデバイスの実施例を説明するブロック図が示される。
【０００４】
本文ではいくつかの実施形態の例及び説明図によって実施形態が記述されているが、実施形態は記述された実施形態または図に限定されないことを当業者は認識するだろう。図及びその詳細説明には、実施形態を開示された特定の形態に限定する意図はなく、それとは逆に、添付の請求項で定義される精神と範囲に一致する全ての修正物、同等物及び代替物を含める意図があることを理解されたい。本文で使用される見出しは、本文を構成するためだけのものであり、説明または特許請求の範囲を限定するためのものではない。本特許出願を通して使用される単語”ｍａｙ”は、命令的な意味（すなわち「〜しなさい」という意味）よりむしろ許容的な意味（すなわち「〜する可能性がある」という意味）で使用されている。同様に単語”ｉｎｃｌｕｄｅ”、”ｉｎｃｌｕｄｉｎｇ”及び”ｉｎｃｌｕｄｅｓ”は「含む」ことを意味するが、その対象を限定はしない。
【発明を実施するための形態】
【０００５】
複数のランダムデータコンシューマまたはクライアントに品質選択可能なランダムデータを提供するように設計されたネットワークアクセス可能なサービスを実施するための様々な方法と装置の実施形態が記載される。インターネット及び／またはその他のネットワークからアクセス可能な一以上のサービス（様々な種類のクラウドベースのコンピューティングまたはストレージサービス等）を分散したクライアント集合に提供するために、会社や公的機関等の存在が構築したネットワークは、本文においてプロバイダネットワークと称される。所定のプロバイダネットワークには、前記プロバイダによって提供されるインフラストラクチャ及びサービスを実装、設定及び配給するのに必要な物理及び／または仮想化コンピュータサーバ、ストレージデバイス、ネットワーク機器等の集まりといった、様々なリソースプールを提供する（異なる地域にわたって分散される）多数のデータセンタが含まれる。一部が異なるデータセンタまたは異なる地域においてインスタンス化または実行される多数の異なるハードウェア及び／またはソフトウェアコンポーネントは、様々な実施形態における前記ランダムデータサービスをサポートする基礎的インフラストラクチャを実施するために、集合的に使用される。仮想化ソフトウェアのコンポーネント、オペレーティングシステムのソフトウェア、ユーザレベルアプリケーション、及び／または前記プロバイダネットワークの他のサービスを実行するソフトウェア等の、数種類のランダムデータコンシューマは、特性が選択またはカスタマイズ可能な安全な通信プロトコルを使用する異なる環境の前記サービスから、希望の品質のランダムデータを取得可能である。いくつかの実施形態において、前記サービスによって生成された前記ランダムデータは、前記プロバイダネットワークのホストに主に設定されるランダムデータのプールまたはバッファ（一次エントロピープールと称される）に送信または結合される。後述されるように所定のホストのローカルで生成されるランダムデータも含まれる前記ホストの前記一次エントロピープールは、（例えば前記ホストのハイパーバイザ層内における）既存のエントロピー抽出ソフトウェアによって使用され、乱数を要求する様々なプログラミングインターフェイス（例えばオペレーティングシステムまたは様々なエンドユーザアプリケーションによって使用されるライブラリアプリケーションプログラミングインターフェイス（ＡＰＩ））をサポートする。少なくともいくつかの実施形態において、前記サービス提供ランダムデータはそのように使用されるため（例えば前記サービス提供ランダムデータを使って、前記一次エントロピープールに使用されるランダム現象の典型的なローカルソースである一連のキーボードのエミュレート信号やその他のハードウェア割込みのスケジュールを立てる）、前記アプリケーション層またはオペレーティングシステム層においてソフトウェア変更を要求することなく、乱数サポート用前記ソフトウェアスタックの様々な層に存在する内蔵メカニズムが、前記サービスなしで取得されるランダムデータより高品質なランダムデータを自動的に生成しうる。サービス提供ランダムデータの配給、結合及び使用の仕方、及び異なる実施形態における前記サービスの様々な態様に対して使用されるインターフェイスの種類に関するさらなる詳細が以後提供される。
【０００６】
一実施形態によると、前記サービスを実施するシステムは、ランダムデータ（乱数生成のシードとして順番に使用されるランダムビットシーケンス等）のプロデューサプールの要素として、前記プロバイダネットワークの一以上のサーバを指定するように構成された一以上のコンピューティングデバイスを備えうる。前記コンピューティングデバイスは、前記プールの様々なサーバに対し、ランダム現象（熱雑音または放射性崩壊等）の候補ソースの集合をそれぞれ決定しうる。前記プールの前記サーバは、前記候補ソースに含まれるランダム現象のデジタル表現に少なくとも一部基づいたランダムデータを生成するように構成可能である。前記ランダム現象ソースはまたエントロピーソースと本文で称される。多数の異なる種類のエントロピーソースの任意の組合せが、異なる実施形態において使用される。前記エントロピーソースには、前述の熱雑音源または放射性崩壊源に加え、例えば電子雑音源またはショット雑音源、電磁波放射源、検知可能な量子力学的変化が起きている存在、クロック変動、ディスク読取り／書込みヘッド動作、電波雑音源、天候変化、宇宙線等の気象、キーボード入力割込みまたはマウス割込みといった一連の割込みタイミング、経時的にビデオカメラレンズを通して収集された変化する画像データ等が含まれる。いくつかの実装例において、前記プロバイダネットワークにおいて使用される一以上のチップセット（例えば様々なホストの中央処理装置または周辺デバイス等）の製造業者は、電子雑音または他の信号に基づいたランダムデータの抽出を可能とするAPIを公開しうる。一実装例において、エントロピーソースは、ユニバーサルシリアルバス（USB）接続または他の標準またはカスタム接続機構によりプロデューササーバに取り付け可能な小さな周辺デバイス（例えばドングル）に組込まれる。いくつかの実施形態において、いくつかの前記エントロピーソースはデジタル出力をネイティブに生成し、一方他のソースはデジタル形式に変換する必要があるアナログ出力をネイティブに生成する。いくつかの実施形態における前記プロデューサプールの異なる要素は異なるエントロピーソースにより設定され、一方、他の実施形態における全てのプール要素は同一のエントロピーソースにより設定される。さらに、少なくともいくつかの実施形態におけるそれぞれのコンシューマインタラクションに対しランダムデータを提供するために、異なるエントロピーソースの集合が同一のランダムデータプロデューサによって使用される。前記生成されたランダムデータの品質（例えば生成されたデータが実際どの程度ランダムかは、統計的検定を利用することで測定可能である）は、少なくともいくつかの事例において、使用されるエントロピーソースの数と特性に依存しうる。
【０００７】
少なくともいくつかの実施形態において、前記サービスを実施する前記コンピューティングデバイスは、特定のランダムデータコンシューマのために、（ａ）特定の長さのビットシーケンス等のランダムデータ集を供給するために使用される前記プロデューサプールの部分集合、（ｂ）前記選択されたプロデューサにおいて前記ランダムデータ集を生成するために使用される利用可能候補の中から一以上のエントロピーソース、及び／または（ｃ）前記ランダムデータコンシューマに前記ランダムデータ集を送信するために使用される一以上の配信またはサービスパラメータ、以上を決定するように構成される。さらに詳しく後述されるように、多数の異なる方策またはアルゴリズムが異なる実施形態における前記プロデューサ及び前記エントロピーソースを選択するのに使用される。例えば前記コンシューマのために明らかに特定されたソース選好または品質要件に基づいた選択、前記コンシューマアプリケーションの推測される特性またはニーズに基づいた選択等である。前記決定されたパラメータは、例えば前記コンシューマのために一度に送信する前記ランダムデータのサイズまたは量、ランダムデータを送信する速度または頻度（所定のコンシューマに前記ランダムデータを複数回提供またはストリーム配信するシナリオにおいて）、前記データを特定の要求に応じてのみ送信するか（例えばランダムデータ取得のプルモデルにおいて）、または特定の要求と関係なくデータを送信するか（例えばプッシュモデルを使用して）、及び／または前記送信に使用される前記セキュリティプロトコルを含みうる。少なくとも一つの実施形態において、前記パラメータは、前記サービスが前記コンシューマのために前記ランダムデータを送信する配信先の指示（ネットワークアドレス等）も含みうる。
【０００８】
少なくともいくつかの実施形態において、前記プロバイダネットワークに設定したクライアントアカウントまたは請求先アカウントを持つ所定の事業体またはユーザは、数種類のランダムデータ消費アプリケーションを持ちうる。所定のコンシューマまたはクライアントに対しどの特定のエントロピーソース及び／または前記プールのどの特定のプロデューサを使用するかは、異なる実施形態におけるいくつかの異なる粒度において決定される。一実施形態おいて、例えばプルモデルによりそれぞれ異なる要求に応じてランダムデータの集合が提供されるシナリオでは、前記要求のレベルによってプロデューサ及び／またはソースに関するいくつかの選択が行われる（例えばコンシューマが二つの要求Ｒ１とＲ２を依頼した場合、原則としてＲ２とは異なるエントロピーソース及び／またはプロデューサの集合がＲ１に使用される）。いくつかの実施形態において、一定の期間中の全ての要求、特定のコンシューマプロセスに伴う全ての要求、または特定の請求先アカウントまたはクライアントアカウントに対応付けられた全ての要求に対し、複数の要求／応答の粒度により、ソース選択がまた適用される。様々な実施形態において、同様に、プッシュモデルが使用されるシナリオでは、期間またはアカウントに基づいて各送信または複数の送信に対して、ソースに関する選択がまた行われる。前記サービスからのランダムデータの単一送信に伴う前記サービスとコンシューマ間のコミュニケーション一式をまとめて本文ではランダムデータインタラクション、または単にインタラクションと称しうる。例えばプルモデルの場合、インタラクションにはランダムデータの要求及び前記要求に対する応答が含まれ、プッシュモデルの場合、インタラクションにはランダムデータの送信は含まれるが、要求は含まれない。
【０００９】
前記特定のプロデューサ集合、前記選択されたプロデューサにおいて／によって使用されるランダム現象の特定の種類のソース、そして前記パラメータを決定した後、前記コンピューティングデバイスは、前記パラメータに従い前記ランダムデータコンシューマに対応付けられた前記配信先に対する前記ランダムデータ集を送信し始める。後述されるように、いくつかの実装例において前記配信先はさらなるソースからのランダムデータを結合するように構成される媒体を備え、一方他の実装例において前記配信先は前記コンシューマそのものでありうる。
【００１０】
いくつかの実施形態において、前記サービスは、特定のコンシューマが必要または要求する前記ランダムデータの希望する統計的品質の指示を取得可能であり、そしてこのような指示は使用する前記プロデューサ及び／または前記特定のエントロピーソースを選択するのに使用される。いくつかの実施形態において、前記指示は前記サービスのクライアントによって主観的に表され（例えばいくつかの実装例において、クライアントは高、中、低品質の乱数から選択する）、一方他の実装例において、特定の公開基準のランダムデータ品質に応じた要件、または前記データが保持すべき希望する数学的特性等、より精密及び／または客観的なメトリクスが前記クライアントによって提供される。いくつかの実施形態において、前記ランダムデータの品質は、様々な種類のエントロピーソースから取得されるデータのランダム性の分析、ランキングまたはメトリクスを提供する学究的または国が発行する出版物を参照して、（クライアントまたは前記サービス自体により）示される。例えば尊敬される研究者が、宇宙線現象を利用したエントロピーソースは高品質なランダムデータを提供し、一方でハードドライブ読込み／書込みヘッド動作を利用したエントロピーソースは低品質のランダムデータを提供すると発表した場合、これにより前記ランダムデータサービスのクライアントが使いたいと思うエントロピーソースの種類を決定するのに役立ち、また前記サービスがエントロピーソースを適切に特徴づけるのに役立ちうる。少なくとも一実施形態において、前記サービスは、前記ランダムデータをこれから使用するアプリケーションの種類の特定または推論に基づいて、前記ランダムデータ品質の要件及び使用するエントロピーソースの適切な種類を推測できる。例えば暗号アプリケーションは、下位ビデオゲームアプリケーションと比べ、より高品質な乱数が必要であるとみなされる。いくつかの実施形態において、ランダムデータが配信されるネットワークアドレス（前記プロバイダネットワークに対し内部か外部かを示しうる前記ネットワークアドレス）、または前記データが要求または消費される量または速度といった、前記コンシューマの他の属性または前記コンシューマの前記要求に基づいて、提供されるランダムデータの特徴も推測される。
【００１１】
一実施形態において、前記乱数サービスは一以上の一意性ポリシーに従うように設計される。例えば前記プロバイダネットワークにより仮想化計算サービスが実施され、複数の仮想マシン（ゲスト仮想マシンまたはゲストＶＭと称される）がクライアントのために同一の物理ホストに実装される。場合によっては、同一のホスト上の異なるＶＭは起動の際同一のマシンイメージを利用しうる。同一のホスト上の異なるゲストＶＭで作動するアプリケーションは、それぞれ統計的に異なるランダムデータ集合を要求しうる。いくつかの実施形態において、前記サービスは、任意の一ゲストＶＭのランダムデータコンシューマに提供される前記ランダムデータが、他の任意のゲストＶＭの異なるコンシューマに提供される前記ランダムデータに対して、統計的に別個（または一意的）であるようことを保証するように構成される。様々な実施形態において、同一のコンシューマに異なる時間に提供されるランダムデータ集合、同一のゲストＶＭの異なるコンシューマ全体に提供されるランダムデータ集合、及び／または異なる仮想マシン全体に提供されるランダムデータ集合に対し、一意性要件が適用される。希望する一意性のレベルを実現する方策は、例えば図７の説明と合わせてさらに詳しく後述される。いくつかの実施形態において、前記サービスのクライアントは提供されるランダムデータの一意性ポリシーをカスタマイズまたは異なる一意性ポリシーから選択することが可能であり、そして前記サービスは前記選択されたまたはカストマイズされた一意性ポリシーに従って、複数のコンシューマアプリケーションにそれぞれのランダムデータ集を生成し送信するように調整を行う。
【００１２】
いくつかの実施形態において、前述されるように、前記サービスによって前記ランダムデータ集が提供される前記配信先は、前記ランダムデータコンシューマと同一のホストにおいて作動するローカルランダムデータアグリゲータ等の媒体を備えうる。当該実施形態において、このような媒体は、前記サービスにより提供される前記ランダムデータとローカル生成ランダムデータを結合し、前記コンシューマに前記結合結果を提供するように構成される。このように前記媒体は、複数のエントロピーソースと、前記ホスト上のランダムデータを必要とするソフトウェアコンポーネントの間の論理抽出層として機能する。いくつかの実装例において、このような媒体はエントロピーエクストラクタまたはエントロピースムーザと称される。いくつかの実施形態において、前記ローカル生成ランダムデータは、一以上のローカルエントロピーソース（ローカルキーボード割込みストリームまたはローカル熱雑音源等）を使用する前記ホストにおいて生成される。前記サービス提供ランダムデータと前記ローカル生成ランダムデータを結合するのに、異なる実施形態において様々なアグリゲーションポリシーが使用される。例えばいくつかの実装例においては、サービス提供ランダムビットシーケンスは、ローカル生成ランダムビットシーケンスに単純に末尾追加、先頭追加、または挿入されるのに対し、他の実装例においては、前記2つのランダムデータを結合するのにより複雑な数学関数が使用される。単純な一実装例において、ランダムデータのバッファは保持され、そして所定のソース（前記サービスまたはローカルランダムデータジェネレータ等）から受け取った新しいランダムデータは、前記指示された通りに前記バッファに単純に追加され、前記バッファが一杯になった場合は前記バッファが再利用される（前記古いランダムデータを新しいランダムデータで上書きする）。前記サービス提供データがローカル生成ランダム値のシーケンスに含まれる場合（例えば前記サービス生成ランダムデータの部分または全てが末尾追加、先頭追加または挿入されている場合）、当結合結果はローカル生成ランダムデータの大きな集合と単純に見なされ、従って前記媒体により結合された前記ランダムデータを消費する前記ソフトウェアにおける変更要求は最小化または除去される。いくつかの実装例において、前記ローカル生成ランダムデータは前記サービス生成ランダムデータより品質が劣りうるため、前記二つのランダムデータを結合することは前記コンシューマが最終的に受け取る前記ランダムデータの品質を、前記ローカル生成ランダムデータのみが利用可能なシナリオに比べてより高くする効果がある。前記のローカル生成データとサービス提供データの結合にはまた、前記コンシューマが実際に受け取るデータは前記サービスにより生成されるデータとは異なるという好副作用もあり、悪意ある実体が前記サービスに対し首尾よく攻撃または一時支配した場合でも、前記悪意ある実体は正確に何のランダムデータが前記コンシューマに配信されたかを特定することはできないため、従って前記コンシューマアプリケーションのセキュリティを突破する確率は低くなる。
【００１３】
いくつかの実施形態において、前記媒体またはローカルランダムデータアグリゲータは、前記ホストで作動するハイパーバイザ等の仮想化ソフトウェア、及び／または前記ホストで作動するオペレーティングシステムに組み込まれる。一実施形態において、デーモンまたは、前記仮想化ソフトウェア層または前記オペレーティングシステム層のシステムプロセスは、前記媒体またはアグリゲータのように作動しうる。例えばより高次のソフトウェアコンポーネントまたはアプリケーションからのランダムデータの要求（API呼出し等）を傍受し、前記のサービス生成ランダムデータとローカル生成ランダムデータの結合物を提供する。少なくとも一実施形態において、特定のランダムデータコンシューマまたは特定のランダムデータコンシューマインタラクションはサービス提供ランダムデータを使用して要件を満たすべきか、またはローカル生成ランダムデータだけで十分かを決定するように、前記媒体は構成される。このような実施形態において、前記サービス提供データと前記ローカル生成データの前記結合は、より高品質のサービス提供ランダムデータを要求するコンシューマまたはインタラクションを対象に実行され、一方でより低品質のランダムデータ要求の場合は、前記サービス提供データを使用せずに達成される。いくつかの実施形態において、前記ランダムデータサービスに対し使用される前記価格設定ポリシーに応じる柔軟な方策は、ランダムデータのクライアント課金費用を削減しうる。少なくとも一実施形態において、前記媒体は少なくともいくつかのコンシューマインタラクションに対し、前記サービス提供ランダムデータをローカル生成ランダムデータに結合して使用する代わりに、前記サービス提供ランダムデータのみを使用するように決定しうる。一実施形態において、媒体またはローカルアグリゲータを使用せずに、前記サービスにより生成される前記ランダムデータは前記コンシューマに提供される。
【００１４】
一実施形態によれば、前記乱数プロデューサプールのサイズ及び／または前記プロバイダネットワークの異なる場所への前記プロデューサの分散的配置は、ランダムデータ予定使用量の見積りに基づき、及び／または、前記サービスに対する可用性、冗長性または障害許容性に関する要件に基づいて、決定される。例えば前記プロバイダネットワークの前記物理的リソース（様々な種類のサーバ、ストレージ及びネットワーク機器等）は、複数の都市、地域、国にわたる数多くのデータセンタに分散される。いくつかの実施形態において、前記プロバイダネットワークはまた、複数のアベイラビリティコンテナにわたって障害（停電またはネットワーク停止等）が相互に関連しないように設計されたアベイラビリティコンテナに編成され、所定のアベイラビリティコンテナ内の前記リソースは、他のアベイラビリティコンテナの障害に影響されないものと（極めて高い確率で）見込まれている。いくつかの実施形態において、所定のアベイラビリティコンテナは一以上のデータセンタの部分または全てを備えうる。
【００１５】
前記プロデューサプールの適切なサイズを決定するのを助長するために、数多くのメトリクス及び／または見積りが取得される。ランダムデータが複数のコンシューマにより消費される速度は、例えば月といったある選択された期間にわたって、決定される。前記ランダムデータプロデューサプールに含まれるべき所定の種類のサーバの前記ランダムデータの生成能力は、例えば前記サーバの所定のＣＰＵの稼働レベルにおける毎秒生成されるランダムビット数といった単位で、特定または測定される。前記サービスにより取扱われるランダムデータの、（例えば先６カ月等のある未来の期間において）予想されるまたは予期されるコンシューマ数もまた特定される。一実施形態において、プロデューサプールサーバの基準数は、例えば前記消費速度、前記所定サーバの能力、及び前記予測コンシューマ数を使って推定される。いくつかの実施形態において、前記プールの要素として指定されるサーバの数、及び前記サーバが分散的に配置されるべき特定のデータセンタ及び／またはアベイラビリティコンテナを決定するための前記基準値を調整するのに、前記乱数サービスの前記冗長性及び／または可用性の要件が考慮される。いくつかの実施形態において、前記サーバとアベイラビリティコンテナまたはデータセンタをマッピングする配置図は、例えばアベイラビリティコンテナまたはデータセンタ内のデータ送信におけるネットワークレイテンシを考慮して生成される。いくつかの実装例において、過剰プロデューササーバ（ランダムデータ消費予期速度及び可用性／冗長性要件に基づいて決定された数を超えるプロデューササーバ）はまた、ランダムデータのバースト要求に対応するように展開される。上記方策の組合せに基づいて、ランダムデータプロデューサのフリートは展開され、そして前記プロデューサの稼働レベルとその他の性能特性は、必要に応じて前記プロデューサの前記フリートサイズ及び／または位置を調整しながら、経時的に記録される。
【００１６】
いくつかの実施形態において、前記サービスは、ランダム選択ポリシーを使用する所定のコンシューマに対し使用される前記プロデューサプール（または複数のプール）の部分集合を選択しうる。その結果、このような実施形態において、異なるプロデューササーバ集合は、所定のコンシューマまたは異なるコンシューマに提供される異なるランダムデータ集のために使用され、これにより前記ランダムデータ集間の統計的独立性が潜在的にさらに高められる。他の実施形態において、同一のプロデューササーバ集合は所定のランダムデータコンシューマ用に繰り返し使用される。いくつかの実施形態において、プロデューササーバ間でフェイルオーバ関係が確立されるため、特定のプロデューサＰ１が一時的または恒常的に利用不可能となった場合でも、Ｐ１の予備またはバックアッププロデューサとして指定されている異なるプロデューサＰ２が使用される。
【００１７】
所定のコンシューマに提供される前記ランダムデータのために複数のプロデューササーバが利用される一実施形態において、前記サービスは、前記複数のプロデューサがそれぞれ生成したランダムデータ集合を結合し、そして前記コンシューマに対応付けられた配信先に前記結合結果を送信するように構成されたアグリゲーションサーバを備えうる。前記アグリゲーションサーバ（前記ランダムデータを生成するのに関わる前記プロデューササーバのうちの一つ、またはプロデューサからの前記データを集約するよう第一に指示された個別のサーバでありうる）は、例えば直接末尾追加、先頭追加、挿入、またはその他の数学的方策を使うなど、前記複数のプロデューサからの前記データを結合する数多くの技術を異なる実施形態において使用しうる。他の実施形態においてこのようなサービスデータアグリゲータは使用されず、その結果複数のプロデューサのランダムデータが単一のコンシューマに提供されるシナリオにおいてでも、サービス側の集約なしで前記ランダムデータ集合が個別に前記コンシューマに送信される。
【００１８】
様々な実施形態において、数多くの種類のランダムデータコンシューマが前記サービスを利用可能である。実施例のコンシューマは、暗号アプリケーション、セキュリティ証明書ジェネレータ、ギャンブルアプリケーション、ビデオゲームアプリケーション、ランダムデータの少なくとも一部を基にトークンを生成するように構成された権限アプリケーション、シーケンス番号を使用するように構成されたアプリケーション（例えばネットワークパケット用）、前記プロバイダネットワーク内の他のサービスプロバイダ（例えば仮想化ストレージまたはデータベースサービスを実施する前記プロバイダネットワークのコンポーネント）、ホストの一次エントロピープールから乱数を取得するように構成されたエントロピー抽出ソフトウェアコンポーネントまたはエントロピースムージングコンポーネント、一以上の乱数ルーチンを備えるライブラリをサポートするように構成されたオペレーティングシステムコンポーネントまたはデーモン、または一以上のゲスト仮想マシンにランダムデータを提供するように構成された仮想化ソフトウェアコンポーネント、以上を含みうる。少なくとも一実施形態において、前記サービスにより提供されるランダムデータは、乱数生成ルーチンのシードとして使用される。
【００１９】
少なくともいくつかの実施形態において、乱数コンシューマアプリケーションは、前記サービスが実施される前記プロバイダネットワーク内または前記プロバイダネットワーク外のどちらでも作動しうる。このような一実施形態において、いくつかの異なるセキュリティプロトコルは前記サービスによって／において実施され、各レベルの機密性、データ完全性、真正性、及び／またはリプレイ防護（正当なデータ送信が悪意または不正により繰り返されたり遅延されるリプレイアタックの防止）を提供する。セキュアソケットレイヤ（ＳＳＬ）プロトコル等の業界標準のセキュリティ機構は、少なくともいくつかのプロトコルにおいて使用され、このような機構は本来上に挙げられた様々なセキュリティ属性を希望するレベルで提供しうる。前記プロバイダネットワーク内のホストで作動するいくつかのコンシューマは信頼性のあるコンシューマとみなされ、及び／またはこれらのコンシューマが作動する前記ホストは信頼性のあるホストとみなされる。少なくともデフォルトでは信頼性のあるコンシューマに対し、信頼性のあるホストまたは信頼性のあるコンシューマに適切なセキュリティプロトコルが使用される。少なくともデフォルトでは信頼性のないコンシューマまたは信頼性のないホストに対し、異なるセキュリティプロトコル（例えばより高いレベルの暗号化、デジタル署名等を伴うプロトコル）が使用される。いくつかの実施形態において、使用される前記セキュリティプロトコルは前記サービスの前記クライアントにより設定可能または選択可能である。一実施形態において、前記サービスは、所定のクライアントまたはコンシューマに使用されるセキュリティプロトコルの種類を、例えば前記ランダムデータを消費するアプリケーションの種類に基づき、及び／または前記コンシューマの前記ネットワークアドレスに基づいて推測しうる。
【００２０】
いくつかの実施形態において、一以上のプログラム的インターフェイス（ＡＰＩ、ウェブページ、その他のグラフィカルユーザインターフェイス、またはコマンドラインツール等）は、前記サービスの様々な態様をサポートするために実行される。いくつかのこのようなプログラム的インターフェイスは、例えばクライアントが提供されるランダムデータの希望する特性を特定できるインターフェイス等、セキュリティプロトコル、価格設定ポリシー等を選択するための設定または制御用でありうる。他のプログラム的インターフェイスは、前記ランダムデータの送信自体のために実行され、例えばランダムデータの要求を受信し前記要求に応答する、またはプッシュ配信モードが使用されている場合明示的要求がない状態でもデータを提供する。
ランダムデータサービスを提供するシステム
【００２１】
図１は少なくともいくつかの実施形態に従って、システム環境の実施例を示す。図示されるようにシステム１００には、内部及び外部クライアントに対するランダムデータサービスを含む複数のサービスをサポートするために構築されたプロバイダネットワーク１０２が含まれる。前記プロバイダネットワーク１０２には、一以上のデータセンタ全体に分散的に配置されている様々な物理及び論理リソースが含まれる。本文でコーディネータ１８０と単に称されるランダムデータサービスコーディネータ１８０は、例えば外部ランダムデータコンシューマ１２２（例、１２２Ａ及び１２２Ｂ）と同様に前記プロバイダネットワークのコンシューマ１２０（例、１２０Ａ、１２０Ｂ、１２０Ｃ,１２０Ｄ及び１２０Ｅ）を含む、様々なランダムデータコンシューマに対するランダムデータの生成及び配信を管理し実行するためのリソース集を備えうる。外部及び内部ランダムデータコンシューマ１２２及び１２０は、それぞれ一括してコンシューマまたはクライアントと本文では称される。図示されるように、前記プロバイダネットワーク１０２は、ランダムデータプロデューサ１６０（本文では単にプロデューサと称される）の一以上のプール１３３を含みうる。前記プロデューサ１６０には、前記コンシューマ１２０及び／または１２２が使用するランダムデータを生成するように指示された一以上のサーバを含む各自のプールを持つプロデューサ１６０Ａ及び１６０Ｂ等がある。前記プロデューサ１６０はそれぞれ、前記コンシューマが使用するランダムデータを生成するためのそれぞれのエントロピーソース１７０において発生するランダム現象のデジタル化表現を使用するように設定可能である。例えば描写された実施例において、プロデューサ１６０Ａはエントロピーソース１７０Ａ〜１７０Ｆを使用し、一方でプロデューサ１６０Ｂはエントロピーソース１７０Ｈ〜１７０Ｉを使用しうる。エントロピーソース及びそれらの使用に関するさらに詳しい説明が、図２の説明と共に以下に提供される。図１において前記コーディネータ１８０は単体として示されているが、様々な実施形態において、前記コーディネータは、少なくとも一部が多数のコンピューティングデバイスにわたって及び／または前記プロバイダネットワークの複数のデータセンタにわたって分散的に配置される複数のハードウェア及び／またはソフトウェアコンポーネントを備えうることに留意されたい。いくつかの実装例において、前記コーディネータのコンポーネントは、前記ランダムデータプロデューサ１６０、前記ランダムデータが消費されるいくつかのホスト（例、ホスト１５０またはホスト１５２）、及び／または図１に個別に示されていない他のデバイスに存在する。当該デバイスには、サービスデータアグリゲータ（図３に示されさらに詳しく後述される）として指定される前記プロバイダネットワークのデバイス等がある。
【００２２】
いくつかの実施形態において、前記コーディネータ１８０はプロデューサプールの要素グループを管理する役割を担いうる。例えば予期される及び／または測定されるランダムデータ消費速度に基づき必要に応じて、前記プロバイダネットワークのいくつの（そしてどの）サーバをプロデューサ１６０として指定するか決定、前記サーバをランダムデータプロデューサとして展開、そしてプール要素の追加及び削除を行う。いくつかのこのような実施形態において、前記コーディネータ１８０は、一以上の前記プロデューサによりランダムデータ生成用に使用されるエントロピーソース１７０の候補を決定しうる。例えば前記コーディネータ１８０はプロデューサ１６０に対しエントロピーソースとして一以上のデバイスの使用を開始または停止するように指示しうる。描写された前記実施形態において、前記コーディネータ１８０はまた、所定のコンシューマに対するランダムデータの生成、収集、配信の様々な態様を制御しうる。例えば前記コーディネータは、特定のコンシューマのために、ランダムデータを生成する特定のプロデューサ１６０の集合、及び／または使用する特定のエントロピーソース１７０を決定するように構成される。このようなソースに関する決定は、異なる実施形態における異なる粒度に基づいて決定される。例えば転送毎の所定のコンシューマに対し、または選択された期間中に提供される全てのランダムデータに対し、または無期限に提供される全てのランダムデータに対し（または前記コンシューマのためのソース設定変更要求を受信するまで）、異なるプロデューサ及び／またはエントロピーソースが選択される。いくつかの実施形態において、前記エントロピーソースレベルと同様に前記プロデューサレベルにおけるコンシューマへのランダムデータのソースの選択は、様々な要素を基に行われる。例えば提供される前記ランダムデータの品質または統計的性質の決定または推測、前記コンシューマに適用される前記価格設定ポリシー、様々なプロデューサ１６０の現在の仕事量（または接続性）の状態、または所定のエントロピーソースまたは所定のプロデューサにより前に生成された前記ランダムデータの統計的性質の測定に基づいて行われる。例えば一実装例において、ある希望する統計的性質がもう満たされない場合、特定のエントロピーソースまたは特定のプロデューサは、一以上のコンシューマに対し使用される前記リソース集合から外される。
【００２３】
描写された前記実施形態において、前記コーディネータ１８０はまた、コンシューマに提供されるランダムデータ集の数種類のサービス配信パラメータを決定する役割を担いうる。配信パラメータには、例えばプッシュポリシーを実施するかどうか（すなわちある配信スケジュールまたはポリシーに従い前記サービスがランダムデータの配信を開始し、そして前記サービスは約定された量のランダムデータを配信するように求める明示的要求を受取る必要がない）、プルポリシーを実施するかどうか（すなわちランダムデータの明示的要求に応じて前記サービスがランダムデータを提供する）、またはプッシュ及びプルポリシーの組合せを使用するかどうかを決定するパラメータが含まれる。他の配信パラメータ実施例は、一度の転送においてどれだけのランダムデータを提供するか（例えば提供するビット列の長さ）、プッシュモデルを使用する場合どれくらいの頻度でまたどの速度でランダムデータを提供するか、厳密にどのネットワーク配信先、キューまたはプロセスが前記データを受取るのか、使用する前記セキュリティプロトコル等を統制する。いくつかの実施形態において、配信パラメータは、前記コンシューマ（または代わりに前記ランダムデータ消費アプリケーションが実行される前記プロバイダネットワーククライアント）によって明示的に指示される、または前記コンシューマによって使用される前記特定プログラム的インターフェイスまたは前記ランダムデータを消費する前記アプリケーション種類の他の識別（例えばネットワークアドレス）に基づき、前記コーディネータ１８０によって推測される。前記ソース及び前記配信パラメータを決定し、前記コーディネータ１８０は前記配信パラメータに従って前記コンシューマに対応付けられた配信先に、ランダムデータ集（例えばランダム二進数の列またはシーケンス）の送信を開始しうる。少なくともいくつかの実施形態において、前記コーディネータ１８０は、例えば前記サービスの前記ユーザと行う制御及び設定インタラクション用、及び／または前記ランダムデータの配布または配信用といった様々なプログラム的インターフェイスを実行しうる。
【００２４】
図１に示されるように、描写された前記実施形態において、様々な種類のランダムデータコンシューマが、前記サービスによって提供されるランダムデータを使用する。内部コンシューマ１２０は、例えば前記プロバイダネットワーク１０２によってサポートされるマルチテナント型の仮想計算サービスの一部として実施される仮想ホスト１５０においてインスタンス化された仮想マシン１４０（コンシューマ１２０Ａ、１２０Ｂ及び１２０Ｃの場合）上で作動するアプリケーションを含みうる。１２０Ｅといったいくつかの内部コンシューマ１２０は、前記仮想マシン１４０で作動するアプリケーションとは対照的に、ハイパーバイザコンポーネント及び／またはオペレーティングシステムコンポーネントといった、仮想化ホストで作動する制御または管理ソフトウェアに相当する。さらに前記プロバイダネットワークは、ストレージサービス、データベースサービス、負荷分散サービス、ネットワークサービス、ＩＤ管理サービス等、多数の他のサービスを実施でき、そしてランダムデータのもう一つの内部コンシューマ（例えば１２０Ｄ）はこれら他のサービスのいずれかのコンポーネントを実施するホスト１５２上に存在する。
【００２５】
描写された前記実施形態において、このような内部コンシューマ１２０へのランダムデータの配信は、内部ネットワーク１３４を利用することで達成される。外部コンシューマ１２２へのランダムデータの配信は、公衆インターネットの一部といった外部ネットワーク１３５の利用を伴いうる。前記プロバイダネットワーク１０２は総じて、内部ネットワーク１３４及び内部ホスト１５０または１５２に対するほど、外部ネットワーク及び／またはデバイスに対して管理及び設定制御力がないため、いくつかの実施形態において、内部コンシューマにランダムデータを転送する際、外部コンシューマの時とは異なるセキュリティプロトコルが実行される。いくつかの実装例において、前記プロバイダネットワークの内部にあるコンシューマ１２０は信頼性のあるコンシューマとみなされ、一方で外部コンシューマはデフォルトで信頼性のないコンシューマとみなされる。いくつかの実施形態において、ランダムデータの内部送信に、信頼性のあるコンシューマまたは信頼性のある内部ホスト用のセキュリティプロトコルが使用され、一方で外部送信に、信頼性のないコンシューマ及び信頼性のないホスト用の異なるセキュリティプロトコルが使用される。さらに詳しく後述されるように、少なくともいくつかの実施形態において、セキュリティプロトコルは設定可能またはカスタマイズ可能である。
ランダムデータの生成及び結合
【００２６】
図２は少なくともいくつかの実施形態に従って、複数のランダム現象のソース１７０（本文ではエントロピーソースとも称される）を使用してランダムデータを生成するように構成されたプロデューサ１６０を示す。いくつかの通常予測不可能な物理現象を基に信号を生成する４つのエントロピーソースの実施例１７０Ａ〜１７０Ｄが図示される。例えばデジタイザ２７１Ａはエントロピーソース１７０Ａの前記信号をビットシーケンス２０２Ａに変換し、デジタイザ２７１Ｂはエントロピーソース１７０Ｂの前記信号をビットシーケンス２０２Ｂに変換する等々、それぞれのデジタイザ２７１が前記信号をビットシーケンスに変換する。描写された前記実施形態において、前記プロデューサ１６０は、前記デジタイザから前記ビットシーケンスを入力として受取り、そして前記入力を使って一以上のランダムデータの出力集合を生成する役割を担う。例えば描写された前記実施形態において、コンシューマ１２０Ａ及び１２０Ｂそれぞれに対し一ビットシーケンスを使用する。
【００２７】
様々な実装例において、数多くの異なる種類の現象がランダムデータを生成するのに使用される。いくつかのエントロピーソース１７０Ａは、風速、放射性崩壊、電波雑音、様々な種類の量子力学的効果等の天候の変化または気象における変更といった自然に発生する主に予測不可能なイベントまたは現象を表しうる。他のエントロピーソースは、設計された物またはデバイス内で起こる、しかし予測または制御し難い現象を表しうる。例えば様々な電子デバイス内のショット雑音、電気雑音、または熱雑音、そしてクロック変動、ディスクドライブ読取り／書込みヘッド動作、キーボード入力パターン等である。少なくともいくつかの事例では、エントロピーソース１７０の前記現象またはイベントを、そのアナログ領域からデジタル領域へ変換し、前記ビットシーケンス２０２を取得する必要がありうる。図２のデジタイザ２７１Ｄのボックスで示されるように、この種の変換に使用されるデジタイザにはいくつかのサブコンポーネントが含まれる。描写された前記実施形態において、デジタイザ２７１には、前記アナログ現象またはイベントを検知可能なトランスデューサ２８１、前記検知された信号を増幅するアンプリファイア２８２、アナログデジタルコンバータ２８３、及び／または前記アナログデジタルコンバータの出力のサンプルを抽出するように構成されたサンプラ２８４が含まれる。少なくともいくつかの実施形態において、図２でデジタイザ２７１は前記エントロピーソース１７０及び前記プロデューサ１６０とは別体として示されているが、前記デジタイザは前記プロデューサ１６０のサブコンポーネントでありうる及び／または前記エントロピーソース１７０に組み込まれるか取り付けられる。いくつかの実施形態において、エントロピーソースとして使用可能ないくつかのデバイスは、デジタイザ２７１といった媒体の助けなしにビットシーケンスを生成しうる。例えばいくつかのエントロピーソース１７０は、アナログ出力よりむしろデジタル出力を生成しうる。一実施形態において、前記プロバイダネットワークは、セキュリティ関連機能用の高品質な乱数を生成するためのハードウェアセキュリティデバイスの集合を含み、そしてこのようなハードウェアセキュリティデバイスによって生成された出力は、前記サービスの少なくともいくつかの前記プロデューサ１６０によって使用される（例えば前記プロデューサがアクセス可能な他のエントロピーソース１７０の出力と結合させて使用される）。例えばある期間中に一以上の前記ハードウェアセキュリティデバイスが遊休状態にある、またはそれらの主要目的のために沢山使われていない場合、それらの出力は一以上のプロデューサが使用するソース混合に追加される。いくつかの実装例において、一以上のこのようなハードウェアセキュリティデバイスは前記プロデューサプールの正式な要素として指定される。
【００２８】
図２に描写された実施形態において、エントロピーソース１７０の異なる集合は、異なるコンシューマに対しランダムデータを生成するのに使用される。図示されるように、エントロピーソース１７０Ａ及び１７０Ｂを備えるソース集合２１２Ａは、コンシューマ１２０Ａのランダムデータ集合２８０Ａを生成するために使用され、一方でエントロピーソース１７０Ｂ、１７０Ｃ及び１７０Ｄを備えるソース集合２１２Ｂは、コンシューマ１２０Ｂのランダムデータ集合２８０Ｂを生成するために使用される。所定のコンシューマに対しどのエントロピーソースを使用するかは、いくつかの実施形態においては前記コーディネータ１８０によって／において決定され、または他の実施形態においては前記プロデューサ１６０によって決定される。前記プロデューサ１６０が前記様々なエントロピーソースからの前記ビットシーケンスを結合する仕方は、異なる実施形態における様々な結合アルゴリズム２５０によって統制される。いくつかの実施形態において、前記プロデューサ１６０は様々なコンシューマが使用するためのランダムビットのプールを生成する役割を担い、そして受信したビットシーケンス２０２は、使用されている結合アルゴリズムに従って単純に前記プールに追加される（例えば前記ビットシーケンスを修正することなく前記プールに前記ビットシーケンスの部分を末尾追加、先頭追加または挿入する）。他の実装例において、他の数学的機能または変換が前記結合のために使用される。
【００２９】
図３は少なくともいくつかの実施形態に従って、複数のランダムデータプロデューサによって生成されたランダムデータの集約を示す。（図２で示されるように）エントロピーソースの異なる組合せからのビットシーケンスは所定のプロデューサ１６０によって結合されるように、いくつかの実施形態において、異なるプロデューサにより生成されたランダムデータは結合され、その結合結果がコンシューマに提供される。さらに少なくともいくつかの実施形態において、前記サービスにより（一以上のプロデューサからの出力を使って）提供されるランダムデータは、図３でも示されるように、前記コンシューマアプリケーションが作動する前記ホストにおいて、さらにローカル生成ランダムデータと結合される。図３に描写された実施形態において、ランダムデータコンシューマ１２０Ａと１２０Ｂはそれぞれホスト３５０Ａと３５０Ｂ上で作動する。プロデューサプール１３３はプロデューサ１６０Ａ〜１６０Ｄを備える。サービスデータアグリゲータ３１０Ａは、最終的にコンシューマ１２０Ａが使用するようにプロデューサ１６０Ａ及び１６０Ｂが生成したランダムデータを結合し、そして前記結合結果（サービス提供データ３８０Ａ）を、ホスト３５０Ａで作動するローカルアグリゲータ３６０Ａに提供するように構成される。同様に、サービスデータアグリゲータ３１０Ｂは、最終的にコンシューマ１２０Ｂが使用するようにプロデューサ１６０Ｂ及び１６０Ｃが生成したランダムデータを結合し、そして前記結合結果（サービス提供データ３８０Ｂ）を、ホスト３５０Ｂで作動するローカルアグリゲータ３６０Ｂに提供するように構成される。
【００３０】
図３で示される前記ローカルアグリゲータ３６０は、ローカル生成ランダムデータ（例えばホスト３５０Ａ上のローカルエントロピーソース３７０Ａ〜３７０Ｎから得たデータ、及びホスト３５０Ｂ上のローカルエントロピーソース３７０Ｐ〜３７０Ｔから得たデータ）と前記サービス提供ランダムデータを結合し、前記コンシューマ１２０が受け取る最終ランダムデータ３６５を完成するように構成される。従って、例えば図３における最終ランダムデータ３６５Ａは、３段階のデータ結合から得られた可能性がある。３段階とは、第一にそれぞれプロデューサ１６０Ａと１６０Ｂの様々なエントロピーソースからの出力の結合、そしてデータプロデューサ１６０Ａ及び１６０Ｂからの出力の結合、そして最終的に前記サービス提供データ３８０Ａと、前記コンシューマ１２０Ａが作動する前記ホスト３５０の（例えば一次エントロピープール内の）ローカル生成ランダムデータとの結合を指す。同様に、コンシューマ１２０Ｂに提供される最終ランダムデータ３６５Ｂは、プロデューサ１６０Ｂ及び１６０Ｃからのデータを結合してサービス提供データ３８０Ｂを完成させ、そしてホスト３５０Ｂにおいて前記データ３８０Ｂとローカル生成データを結合させた結果でありうる。これらの結合の結果、前記最終ランダムデータ３８０は、基となるサービス提供データとは異なり、そのためサービスコンポーネント（サービスデータアグリゲータ３１０またはプロデューサ１６０等）は前記最終ランダムデータを特定することができない。
【００３１】
前述されるように、いくつかの実施形態において、前記プロバイダネットワークは複数のアベイラビリティコンテナに編成され、各コンテナのアベイラビリティプロファイルは他のコンテナのアベイラビリティプロファイルから独立している。前記プロバイダネットワークの全リソースにわたって障害が相互に関連する時、前記プロバイダネットワークのサービス（及びこのようなサービスのコンシューマ）にひどい混乱が起こりうる可能性を低くするために、アベイラビリティコンテナは設置される。一アベイラビリティコンテナにおける障害は通常、他のアベイラビリティコンテナの障害と相互に関連していない。いくつかの実装例において、アベイラビリティゾーンという表現が、アベイラビリティコンテナの代わりに使われる。図４は少なくともいくつかの実施形態に従って、プロバイダネットワーク１０２の複数のアベイラビリティコンテナ４５１にわたるランダムデータプロデューサ１６０の分散的な配置の実施例を示す。２つのアベイラビリティコンテナ４５１Ａ及び４５１Ｂが前記プロバイダネットワーク１０２内に示される。描写された前記実施形態において、各アベイラビリティコンテナ４５１は各自のプロデューサプール１３３を持つ。例えばアベイラビリティコンテナ４５１Ａはプロデューサ１６０Ａ〜１６０Ｃのプロデューサプール１３３Ａ、そしてアベイラビリティコンテナ４５１Ｂはプロデューサ１６０Ｄ〜１６０Ｆのプロデューサプール１３３Ｂを持つ。フェイルオーバ関係４０２が前記２つのプロデューサプール間に設立され、もし障害（停電またはネットワーク切断等）により、どちらかのプールにて希望する速度でランダムデータを生成または配信できない場合、もう片方のプールが代わりに、または追加で使用される。
【００３２】
図４に描写された実施形態において、コンシューマ１２０及び１２２は、それぞれ優先プロデューサプールを持つコンシューマ集合４５０（コンシューマ集合４５０Ａ及び４５０Ｂ等）に編成される。従って、例えばコンシューマ１２０Ａ〜１２０Ｄ及び１２２Ａ〜１２２Ｋはプロデューサプール１３３Ａを指定された優先プールとして持ち、一方でコンシューマ１２０Ｑ〜１２０Ｔはプロデューサプール１３３Ｂを指定された優先プールとして持つ。優先プールは、例えば前記コンシューマへの地理的近さ、前記コンシューマに適用される価格設定ポリシー（所定のコンシューマにとって最も費用効果がよくランダムデータが得られるプロデューサを特定するのに役立つポリシー）等、異なる実施形態における様々な要素を基に指定される。通常の動作条件の下、前記サービスが任意の所定のコンシューマに対しランダムデータを提供する場合、そのコンシューマの前記優先プール内の一以上のプロデューサが使用される。しかしながら前記優先プールにおいて障害またはオーバーロードにより希望する速度または希望する量のランダムデータの配信が妨げられる場合、前記優先プールとフェイルオーバ関係にある前記バックアッププール（例えばコンシューマ集合４５０Ａに対しプール１３３Ｂ）が代わりに使用される。少なくともいくつかの実施形態において、コンシューマ集合４５０の要素、コンシューマ集合と優先プール間のマッピング、及びフェイルオーバ関係に関するメタデータは、前記コーディネータ１８０によって管理される。図４に示されるように、所定のアベイラビリティコンテナ内の所定のプールによって生成されるランダムデータのいくつかの前記コンシューマは、同一のアベイラビリティコンテナで作動しうる（例えば図４において、コンシューマ１２０Ｑ〜１２０Ｔが作動するホストはアベイラビリティコンテナ４５１Ｂに存在する）、一方で他の事例（コンシューマ１２０Ａ〜１２０Ｄ等）は、前記コンシューマが前記アベイラビリティコンテナの外部にあり、それらの優先プールのランダムデータプロデューサはインスタンス化される。図４では前記フェイルオーバ関係４０２がプロデューサプール間に示されているが、いくつかの実装例においては、プロデューサプール間の代わりに、または追加で、個別のプロデューサ間にフェイルオーバ関係が設立される。いくつかの実施形態において、所定のプロデューサプールは複数のアベイラビリティコンテナ及び／または複数のデータセンタを備える。いくつかの実施形態において、優先プール及び／またはコンシューマ集合を設置または管理する技術は実施されない。いくつかの実施形態において、プロデューサまたはプール間のフェイルオーバ関係は設立されない。
サービスパラメータ、ポリシー、及びインターフェイス
【００３３】
図５は少なくともいくつかの実施形態に従って、ランダムデータがサービスにより提供される際カスタマイズ可能なパラメータの種類の実施例を示す。図５に示される様々なパラメータ実施例の組合せは、本文ではサービスパラメータまたは配信パラメータと称される。図示されるように、前記コーディネータ１８０は、コンシューマＡにパラメータ５５０Ａ、コンシューマＢにパラメータ５５０Ｂ、コンシューマＣにはパラメータ５５０Ｃというように、異なるコンシューマごとのサービスパラメータ集合の記録を保持する。前記コンシューマＡ、Ｂ及びＣはそれぞれ、前記プロバイダネットワーク内の内部コンシューマ１２０または前記プロバイダネットワーク外の外部コンシューマ１２２のどちらかでありえ、少なくともいくつかの実施形態においては、前記コンシューマの種類に関係なく、同様のパラメータが保持される。描写された前記実施形態において、所定のコンシューマに対するパラメータ５０１（例えばそれぞれコンシューマＡ、Ｂ、及びＣに対し５０１Ａ、５０１Ｂまたは５０１Ｃ）は、前記ランダムデータを配信するのにデータプッシュ、データプルまたはプッシュ・プル組合せ技術のどれを使用するか指定しうる。パラメータ５０２を通して、プロデューサ１６０及び／またはエントロピーソース１７０を選択し、そして様々なレベルにおいてデータを結合するためのポリシーが特定される。単純な一シナリオにおいて、例えば所定クライアントに適用される前記選択ポリシーは、任意の利用可能なプールから無作為に選択された任意のプロデューサの定数分（少なくとも２つ）のエントロピーソースからなる任意のランダム集合が使用されることを示しうる。いくつかの実装例において、前記選択ポリシーはまた、前記プロデューサレベル（複数エントロピーソースからのデータを結合）、前記サービスデータアグリゲータレベル（複数のプロデューサからのデータを結合）、及び／またはローカルデータアグリゲータレベル（前記サービスからのデータとローカル生成ランダムデータを結合）において複数のソースから取得したランダムデータを結合するために使用する結合アルゴリズム（もしあれば）を示しうる。
【００３４】
転送単位サイズパラメータ５０３は、一度の転送またはある期間中に提供するランダムデータの量（例、ランダムビットシーケンスの長さ）を示し、一方でパラメータ５０４は、前記コンシューマにデータを押し出す転送速度を示しうる（転送にプッシュポリシーが実行される場合）。いくつかの実施形態において、例えば前記コンシューマに前記ランダムデータを送信するために使用される暗号アルゴリズムの種類、または使用する証明書もしくは署名機構を統制する前記セキュリティポリシーの指示内容は、パラメータ５０５として保存される。少なくともいくつかの実装例において、セキュリティポリシーパラメータ５０５には、機密性、真正性、データ完全性、及び／またはリプレイ防護といった、様々なセキュリティ関連機能に対する仕様または要件が含まれる。いくつかの実施形態においてまた、前記ランダムデータを提供する際の請求金額の計算方法を示す前記価格設定ポリシー５０６が記録される。例えばランダムデータビットごとの原価に基づいて、ランダムビットが提供される速度に基づいて、またはランダムデータの需要と供給に基づいた変動価格をクライアントが支払うスポット価格設定等の動的価格設定システムを使用して、クライアントに料金請求する。いくつかの実施形態において、前記ランダムデータに適用される前記一意性ポリシーの指示内容もまた、パラメータ５０７といった形で保存される。少なくともいくつかの実施形態において、いくつかの前記パラメータのデフォルト値の集合は、前記プロバイダネットワークの所定のクライアントまたはユーザの全ランダムデータコンシューマアプリケーションに対して、前記クライアントまたはユーザの希望に応じて個々のコンシューマアプリケーションのパラメータに可能なカスタマイズを行って使用される。いくつかの実施形態において図５で示されるいくつかまたは全てのパラメータ実施例は、各要求または各転送において明示的に特定され、一方で他の実施形態において前記パラメータは、ある特定の期間において所定のコンシューマまたはクライアントに対し実行される全てのランダムデータの転送において特定される。
【００３５】
図６は少なくともいくつかの実施形態に従って、サービスにより生成されるランダムデータの一意性ポリシーの実施態様を示す。一意性ポリシーの目的には、例えば前記サービスにより提供されるランダムデータの他の任意の集合の内容を知っていることで、前記サービスにより提供されるランダムデータの所定の集合の内容を予測するということは不可能だということを（少なくともかなり高い確度で）保証することが含まれる。描写された前記実施形態において、プロデューサ１６０Ａ及び１６０Ｂそれぞれのランダムデータ６１０Ａ及び６１０Ｂは、前記サービスによって（例えばサービスデータアグリゲータ３１０において）、集約ストリーム６１２に結合される。様々な実施形態において、所定の配信インタラクションにおける所定のコンシューマに対して配信された前記ランダムデータは、他のいかなるコンシューマまたは他のいかなるインタラクションに対し再利用されてないこと、また任意の所定のインタラクションにおいて配信された前記ランダムデータは、他のインタラクションにおける前記サービスにより提供された他のランダムデータを基に予測することは不可能であること、を保証するために数多くの異なる方策が使われる。例えば希望するレベルの一意性を実施する一技術は、所定コンシューマＡのインタラクションＩＡｉ（例えばコンシューマＡに対するランダムデータの一度の転送）に使用される前記集約ストリーム６１２の部分６１５Ａが、コンシューマＢのインタラクションＩＢｊといった他のいかなるインタラクションにも使用されていないことを保証することを伴いうる。このように部分６１５Ａは、インタラクションＩＡｉの一部として配信された後、破棄されるか使用済と印され、以降再利用されない。同様に部分６１５Ｂは、インタラクションＩＢｊに使用された後、破棄されるか再び使用されることのないように印される。このような一回使用ポリシーは、同一のランダムデータが結局複数のコンシューマに対し、または複数のコンシューマインタラクションにおいて供給されるという確率を、著しく減少させる。
【００３６】
少なくともいくつかの実施形態において、プロデューサ生成された所定のランダムデータ集合は一度だけ使用されたと保証することに加えて／代わって、インタラクション固有ビットシーケンスはカスタマインタラクションごとに生成される。一実施形態において、例えばコンシューマ配信先ＩＰアドレスがＣ＿Ａｄｄｒでコンシューマ識別子がＣＩＤ−ＡのコンシューマＡに対して、時間ＴにＩＰアドレスＳ＿ａｄｄｒの所定のサービスアグリゲータＳにおいてランダムデータ集合６１５Ａが選択された場合、インタラクション固有ビットシーケンス６２５Ａ（グローバルシーケンス番号またはノンスともみなされる）は、Ｓ＿ａｄｄｒ、Ｔ、ＣＩＤ−Ａ、及びＣ＿Ａｄｄｒの任意の組合せの相関関係として生成される。同様に、前記サービスアグリゲータのＩＰアドレス、前記コンシューマＢの配信先ＩＰアドレス、Ｂに対し前記ランダムデータが選択された時刻、及びＢのコンシューマ識別子ＣＩＤ−Ｂの任意の組合せに基づいて、別のインタラクション固有ビットシーケンス６２５ＢがコンシューマＢのランダムデータ集合６２５Ａのために生成される。使用されているアルゴリズム、及び前記ビットシーケンスの基となるパラメータは、同一のビットシーケンスが異なる二つのクライアント用に生成される見込みはほぼゼロ等しいことを保証しうる。いくつかの実施形態において、例えば前記実際提供されたランダムデータに対応付けられたメタデータのように、前記インタラクション固有シーケンス番号は前記コンシューマに提供される。いくつかの実施形態において、前記インタラクション固有ビットシーケンスは、ランダムデータ配信のログを取るために使用される。例えば前記コンシューマは前記サービスから提供されるランダムデータの様々な配信に対応付けられた前記ビットシーケンスを保存し、そしてまた検査または追跡のために前記ビットシーケンスを共有しうる（例えばソースまたは配信時間を後に発見または調査する必要がある場合）。いくつかの実装例において、コンシューマは前記ビットシーケンスの部分を復号して、対応付けられたデータは信頼性のあるソースによって（すなわち悪意のある実体ではなく前記サービスによって）提供されたものであること、及び／または（インタラクション固有のビットシーケンスの指示に従って）前記データの提供された時刻が妥当な予測時刻範囲内であることを確認できる。いくつかの実施形態において、前記一意性インタラクション固有ビットシーケンスは、前記プロデューサ生成ランダムデータと併合または結合することで、前記配信されたランダムデータを特定しうる。
【００３７】
いくつかの実施形態において、他の一意性の方策が取られる。例えば一実施形態において、厳重な一意性ポリシーの選好を指示したコンシューマに対し、前記サービスは、前記コンシューマに以前提供されたランダムデータ集合のデータベースを保持し、新たに生成されたランダムデータ集合をそのデータベースに突き合せて確認することで一意性を保証しうる。様々な実施形態において、代わりに前記コンシューマが作動するクライアントは、例えば一意性ポリシーのオプション集合の中から選択することによって、またはカスタムの一意性ポリシーを特定することによって、実施する前記一意性ポリシーの種々の詳細を特定しうる。いくつかの実施形態において、所定のコンシューマまたはクライアントに適用される前記価格設定ポリシーは、使用されている前記一意性ポリシーの少なくとも一部に依存する。
【００３８】
様々な実施形態において、前記サービスの異なるコンシューマまたはクライアントは、前記サービスによって提供される前記ランダムデータを使用するアプリケーションの種類によって、異なるセキュリティ要件を持ちうる。図７は少なくともいくつかの実施形態に従って、サービスがランダムデータを送信する際のいくつかの異なるセキュリティプロトコルの使用実施例を示す。描写された前記実施形態において、サービスコーディネータ１８０は、前記プロバイダネットワークの内外両方のコンシューマに対し、プロデューサプール１３３において生成されるランダムデータを配信するように構成される。ホスト７０１Ａ及び７０１Ｂといった前記プロバイダネットワークの内部にあるホストは前記ランダムデータサービスによって信頼性のあるホストとみなされ、一方で前記プロバイダネットワークの外部にあるホスト（例えばホスト７１０）は信頼性のないホストとみなされる。ホスト７０１Ａ及び７０１Ｂ等の前記プロバイダネットワークの内部リソースの物理的及び論理的セキュリティは、前記プロバイダネットワークのオペレータにより主として制御され、また前記ランダムデータサービスとホスト７０１Ａ及び７０１Ｂ間のネットワークトラフィックは、内部の安全性の高いネットワークを通して送信される結果、信頼性のあるホスト及びコンシューマである内部ホスト及び前記内部ホストで作動するコンシューマが指定されることにつながる。その結果、少なくともいくつかの信頼性のあるコンシューマにおいて前記サービスは、最小限のセキュリティを使用するか、またはプロバイダネットワーク内コミュニケーションにおいて既に主として使用されているセキュリティ（例えばセキュアシェル（ＳＳＨ）機構）以外の追加セキュリティを使用しないように構成される。このように描写された前記実施形態において、前記サービスがランダムデータを信頼性のある仮想化ホスト７０１Ａに（例えばハイパーバイザ７６０内のコンシューマ１２０Ｐに、またはゲスト仮想マシン１４０Ａで作動するアプリケーションコンシューマ１２０Ａに直接）提供する際使用するセキュリティプロトコル７０１Ａは、比較的軽めである。
【００３９】
ランダムデータのいくつかの前記コンシューマは、前記プロバイダネットワークで実施される他のサービス（例えばゲスト仮想マシンの提供に関する直接的責任がないサービス）を含みうる。前記サービスは信頼性のあるホスト上で実行され、そして前記ランダムデータは全て前記プロバイダネットワーク１０２内のネットワーク経路において送信されるとはいえ、前記コンシューマサービスの性質に応じて（例えば前記サービスが、それ自体高品質暗号機能性をもつプロバイダである、または国家安全関連リサーチ活動の高性能コンピューティング能力を提供する等）、追加レベルのセキュリティを前記ランダムデータ送信に使用することが望ましい。図７においてコンシューマ１２０Ｌはそのようなサービスに相当し、ランダムデータを送信する際は高度なセキュリティプロトコル７０１Ｃが使用される。いくつかの実施形態において、セキュリティプロトコル（例えば図７で示されるプロトコル７０１Ｄ）はまた／代わりに、前記ランダムデータプロデューサプール１３３と前記サービスコーディネータ１８０の間で実行される。所定プロデューサと前記コーディネータの間で使用される前記セキュリティプロトコルの性質は、異なる実装例によって変化しうる。例えば前記プロデューサと前記コーディネータ間のネットワーク経路に含まれるリンクまたはホップの数等の要素に応じて、及び／または前記プロデューサが生成したランダムデータを前記コーディネータが供給する前記クライアントの前記セキュリティ選好に応じて、変化しうる。
【００４０】
信用性のないホスト７１０上で作動する外部コンシューマ１２２等の信用性のないコンシューマへのランダムデータの送信は、前記プロバイダネットワークによる物理的または論理的制御が効かないネットワークリンク及びデバイスを通して行われる。これに応じていくつかの実施形態において、前記ランダムデータサービスは、このような外部コンシューマに対し追加のセキュリティプロトコル（例、プロトコル７０１Ｂ）を実行しうる。追加のセキュリティプロトコルでは例えば、ランダムデータ集合を送信することに加えて、前記データの要約またはデジタル署名が提供される、またはクライアントに提供されているキーを使ったキーベース暗号化機構が使用される。少なくともいくつかの実施形態において前記ランダムデータサービスは、信頼性のあるホスト上で作動する内部コンシューマに対しデフォルトで軽めのセキュリティプロトコルを実行し、そして外部コンシューマに対しデフォルトで重めのセキュリティプロトコルを実行する。いくつかの実施形態において、クライアントは、プログラム的インターフェイスを使用して複数のサポートされているセキュリティポリシーの中から選択することで、または希望するカスタムセキュリティポリシーの詳細を提供することで、自身に提供されるランダムデータに適用したいセキュリティレベルを特定できる。いくつかの実施形態において、前記サービスは、使用する前記セキュリティプロトコルまたはポリシーを推測するように構成されている。例えば、データの提供先である前記ネットワークアドレスに基づき（例、前記プロバイダネットワークの外部アドレスに対しては、前記プロバイダネットワークの内部アドレスよりも高いセキュリティが使用される）、または前記ランダムデータを消費するアプリケーションの種類が既知のものであるかまたは（例、前記ランダムデータに使用されているＡＰＩ呼出しから）推測可能なものであるかに基づいて推測する。所定の実施形態において使用される前記セキュリティプロトコル７０１は、機密性、真正性、データ完全性、及び／またはリプレイ防護（正当なデータ送信が悪意または不正により繰り返されたり遅延されるリプレイアタックの防止）に関するサービス要件またはサービス仕様に基づいて、選択される。少なくともいくつかの実施形態において、一部または全ての前記セキュリティプロトコル７０１は、追加のプログラミング労力を必要とすることなく、要求される機密性、真正性、データ完全性、及び／またはリプレイ防護サポートを本来提供しうるセキュアソケットレイヤ（ＳＳＬ）等を使用するといったように、信頼性のある業界標準技術に少なくとも一部依存している。いくつかの実施形態においてセキュリティプロトコルの選択及び／または実施もまた、悪意のある攻撃に対する前記プロデューサまたは様々な前記ネットワーク経路の予想される（または測定される）弱体性レベルに、または検知された前記ランダムデータサービスのセキュリティを突破しようとする試みの数と性質に少なくとも一部基づいて決定される。
プログラム的インターフェイス
【００４１】
図８は少なくともいくつかの実施形態に従って、品質選択可能なランダムデータを提供するサービス８０２により実施されるプログラム的インターフェイスの種類の高次概観を示す。図示されるように、設定及び制御インターフェイス８０６と要求及び配信インターフェイス８１０という、２つの大きなカテゴリのプログラム的インターフェイスが実施される。様々な実施形態において、どちらのカテゴリのインターフェイスにも、一以上のＡＰＩ、ウェブページ、コマンドラインツール、グラフィカルユーザインターフェイス等の任意の組合せが含まれる。設定／制御インターフェイス８０６により、サービスクライアント（例、前記ランダムデータ消費アプリケーションの管理者または他の許可されたユーザ、または前記アプリケーション自体）は、提供される前記ランダムデータの様々な特性に関する選好や要件を指定できる。様々な実施形態において、様々な特性のうち、図５に示される一部または全ての種類のパラメータは、設定／制御インターフェイス８０６を使って指定される。例えば、プッシュモデル、プルモデル、または両プル・プッシュ特性を持つ混成モデルを使用するかは、制御インターフェイスを使って指定される。ランダムデータ品質要件、プロデューサ１６０及び／またはエントロピーソースの選択ポリシー、ランダムデータ転送単位サイズ及び速度、セキュリティポリシー、価格設定ポリシー、一意性ポリシー等は、異なる実施形態における一以上の設定／制御インターフェイス８０６を通して指定される。様々な実施形態において、設定／制御インターフェイス８０６は、異なる粒度で（例えば、個別の要求レベルにおいて、または前記指定された設定が所定のコンシューマに対する全ランダムデータインタラクションに対しある期間適用されるという適用期間に基づいて）、使用される。いくつかの実施形態において、前記選好または要件の適用性に関するメタデータ（エントロピーソースの所定の選好集合はどれだけの間有効であるか等）も、プログラム的インターフェイス８０６を使用して指定される。いくつかの実装例において、コンシューマまたはクライアントは、前記サービスのいくつかの態様に関する除外要件を特定できる。例えば、所定のクライアントはキーボード割込みエントロピーソースの使用を希望しない、または特定のセキュリティプロトコルの使用を避けるように希望し、そのように制御インターフェイスを通して指示する。
【００４２】
前記ランダムデータの希望する様々な特性を指定するのに使用される前記設定／制御プログラム的インターフェイス８０６と対照的に、データ要求／配信インターフェイス８１０は前記ランダムデータ自体を要求する（例えばプルモデルにおいて）及び／または送信する（例えばプルまたはプッシュモデルのどちらにおいても）ために使用される。少なくともいくつかの実装例において、いくつかの前記ランダムデータの特性（例、エントロピーソースまたはデータ品質）に関する選好または要件は、インターフェイス８０６を使い、ランダムデータに対する要求と共に伝達されるパラメータのフォームにおいて指定される。すなわち、設定及びデータ転送に同一のインターフェイスの異なる態様が使用される。少なくとも一実施形態において、特定のプログラム的インターフェイスはランダムデータを提供または受信するのに使用されているという事実は、前記ランダムデータを最終的に消費するアプリケーションにとって（または前記オペレーティングシステムコンポーネントにとっても）明白でないことに留意されたい。前掲のように、例えばいくつかの実施形態において、前記サービスによって提供されるランダムデータは、例えば複数のゲスト仮想マシンが実行されるホスト上のハイパーバイザコンポーネントによって、一次エントロピープールに併合され、前記一次エントロピープールはローカルエントロピーソースと前記サービスから収集したランダムデータを備えうる。いくつかのこのような実施形態において、前記サービスの使用は前記アプリケーション及びオペレーティングシステムにとって明白であるため、例えば前記ランダムデータサービスが実施されなかったとしても作成されたと考えられるランダムデータ用に、同一の方法呼出しまたは関数呼出しの集合が作成される。このようなシナリオにおいて、前記アプリケーションまたは前記オペレーティングシステムに対しプログラム的変更を要求せずに、内密に前記一次エントロピープールの前記ランダムデータの品質は向上される。このような実装例において、プログラム的インターフェイスの一集合は、ローカルアグリゲータ等の媒体コンポーネントが前記サービスからの前記ランダムデータを取得するのに使用され、一方で別のインターフェイス集合は、前記媒体からクライアントアプリケーションへ前記ランダムデータを提供するのに使用されるが、このような実装例において前記クライアントアプリケーションの修正の必要はない。他の実装例において、アプリケーションレベルコードまたはオペレーティングシステムコード（カーネルコンポーネントまたはドライバ等）は前記サービス提供データを使用するのに修正され、または前記クライアントアプリケーション自体は媒体コンポーネントを通さずに前記サービスからのランダムデータを取得するためにプログラム的インターフェイスを直接使用できるように修正される。さらに詳しく後述されるように、少なくともいくつかの実装例において、前記ランダムデータサービス８０２のコンポーネントは、例えば前記プログラム的インターフェイス８１０のいずれかを使用する前記ソフトウェアスタックの上位層から発される関数呼出しまたは方法呼出しを傍受または捕捉することで、所定のランダムデータインタラクションに対しサービス提供ランダムデータを使用するかしないか決定するよう構成される。いくつかの実施形態において、様々なデフォルト設定が所定のコンシューマに対する前記ランダムデータの設定を統制するのに使用される。このため数多くのプログラム的インターフェイス８０６が前記サービスをカスタマイズするのに利用可能であっても、前記デフォルト設定で足りていれば、前記コンシューマはこれらのインターフェイスを使用する必要はない。
【００４３】
前掲のように、様々な実施形態において、数多くの異なる種類のプログラム的インターフェイスが前記ランダムデータサービスを設定し使用するのに使われる。図９は少なくともいくつかの実施形態に従って、ランダムデータサービスのクライアントが、提供されるランダムデータのいくつかの特性を指定できるウェブベースのインターフェイスの実施例を示す。図示されるように、前記インターフェイスは、メッセージエリア９０３と、前記ランダムデータの様々な特性を指定するためのフォームフィールド集合９７１を備えるウェブページ９０２を含みうる。いくつかの事例において、前記サービスによって前記フォームフィールドのデフォルト値が提供され、前記クライアントは必要であれば前記デフォルト値を修正、または前記デフォルト値を承諾する。フィールド９０５において、前記ランダムデータに対し請求を行う前記クライアントアカウントが確認される。描写された前記実施形態において、前記クライアントはフィールド９０７を使用して、前記サービスがランダムデータを供給する配信先と配信モードを指定しうる。図示されるように、例えばデフォルトで、前記クライアントに対応付けられた、または請求される全ての仮想計算インスタンス（図１に示される前記ゲスト仮想マシン１４０など）は前記サービスを使用可能であり、そしてプル配信モードが採用され、つまりランダムデータは要求がない時でも供給される代わりに、明示的な要求があるときのみ供給される。いくつかのフォームフィールドにおいて図示されるように、前記クライアントはフィールド９０７のデフォルト設定を、提供されているリンクをクリックすることで修正しうる。
【００４４】
描写された前記実施形態において、前記サービス提供ランダムデータを供給する特定のアプリケーションは、フィールド９０９を使って指示される。図示されるように、デフォルトで前記配信先ホストの全てのアプリケーションが前記サービスを使用可能に設定されている。フィールド９１１により、前記提供されるランダムデータの品質の指示（例えば前記サービスが、使用するプロデューサ１６０の数、及び／または使用する特定の種類のエントロピーソースを決定するのに使用する）を行う。前記デフォルト設定は、前記サービスが、ランダムデータを要求する前記アプリケーションに基づいて、前記ランダムデータの品質を選べるように指示する（例えば前記サービスはシーケンス番号アプリケーションの時より高い品質のデータを暗号アプリケーションに提供することを決定しうる）。クライアントは、フィールド９１３を使って希望するセキュリティプロトコルを指定しうる。デフォルトでは図示されるように、前記サービスは前記プロバイダネットワークの信頼性のあるホストに対して使用されるプロトコルを使用しうる。描写された実施形態において、クライアントが提供ランダムデータに対し特別な一意性要件を持つ場合、そのような要件はフォームフィールド９１５を使って指示される。
【００４５】
描写された実施形態において、クライアントはフィールド９１７を使って、いくつかのサポートされている価格設定ポリシーの中からランダムデータに対する価格設定ポリシーを選ぶ。図示されるように例えば、デフォルトで前記クライアントは一日当たり百万ビットまでのランダムデータに０．１０米ドルが請求される。前記クライアントはまたウェブページ９０２を使って通知ポリシーを指示し、これにより例えば、前記クライアントの配信先ホストおよびアプリケーションで消費されたランダムデータの全量が閾値を超える場合、前記クライアントに連絡がはいる。いくつかの実施形態において、通知が必要かどうか判定するのに使用される判定基準と同様に、一以上の通知機構（電子メール、テキストメッセージ、または通知サービス宛先アドレス等）が指定される。描写された前記実施形態において、クライアントは、描写された前記フォームフィールドの使用に加え、提供されているリンク９２１を使って、さらなるカスタマイゼーションを指定しうる（例えば一アプリケーションに使用するランダムデータ品質に、他のアプリケーションに使用するランダムデータ品質とは異なる特別な品質を指定する）。適用ボタン９９０により、前記の要求する設定が投入される。様々な実施形態において、図９に描写されるようなウェブページの使用に代わって、または加えて、ＡＰＩ、コマンドラインツール等の他の種類のインターフェイスを使うことで、同様の選好の指示が可能であることに留意されたい。
ランダムデータサービスの方法
【００４６】
図１０は、少なくともいくつかの実施形態に従って、プロバイダネットワークにおける指定されたサーバプールからランダムデータを提供するために行われる処理態様を説明するフロー図を示す。構成要素１００１に示されるように、プロバイダネットワークの一以上のサーバは、ランダムデータを（例えばランダムビットシーケンスまたはビットストリングの形式で）複数のコンシューマまたはクライアントに提供するために使用されるプロデューサのプールまたはフリートの要素として指定される。いくつかの実施形態において、前記プロデューサプールの要素として多目的または汎用サーバが指定され、一方で他の実施形態においては、ランダムデータ生成に特別に指定されたまたは設定された特別目的サーバが使用される。様々な実施形態において、前記プールに含まれるべきサーバの数、及び様々なデータセンタ場所、アベイラビリティコンテナまたは地域における前記サーバの配置は、ランダムデータの予想消費速度、可用性及び冗長性要件、及び／または攻撃に対する障害許容性の要件を基に、決定される。異なる実施形態において、様々な種類のコンシューマにランダムデータが提供される。当該異なる実施形態には、例えばオペレーティングシステムコンポーネントまたは前記仮想化ホストにおいてインスタンス化された仮想マシンのエンドユーザアプリケーションにランダムデータを提供するように構成されたハイパーバイザコンポーネント、オペレーティングシステムコンポーネント、乱数を要求するエンドユーザアプリケーション、前記プロバイダネットワークの様々な他のサービスを実施するように構成されたソフトウェアコンポーネント、等々が含まれる。いくつかの実施形態において、前記プロバイダネットワーク内部と前記プロバイダネットワーク外部両方のコンシューマがサポートされ、一方で他の実施形態においては、内部コンポーネントのみがサポートされる、または外部コンシューマのみがサポートされる。
【００４７】
構成要素１００４において示されるように、描写された前記実施形態において、各プロデューサに対し一以上の候補エントロピーソース（例えば既にデジタル形式で利用可能、またはランダムデジタルシーケンスに変換可能なランダム現象またはイベントのソース）が特定される。例えば、様々な雑音源（電気または熱雑音）、電磁気または放射性イベントソース、キーボードやディスクドライブの割込みシーケンス等を含む、様々なエントロピーソースのいずれかが候補として所定プロデューサに対して選択される。いくつかの実装例において、統計的高品質のランダム信号またはランダムデータを生成するために特別に構成された特別目的のデバイスは、エントロピーソースとして使用される。
【００４８】
使用する特定のエントロピーソースと同様に、ランダムデータの所定のコンシューマのために使用する前記プロデューサの部分集合（または全て）が決定される（構成要素１００７）。前記データをコンシューマに提供する際プルモデルとプッシュモデルのどちらを使うか、ランダムデータを提供する単位またはサイズ、前記データの形式、前記データを提供する速度、使用するセキュリティプロトコル等、様々な配信パラメータもまた決定される。一実施形態において、一部または全てのソース（例えば前記プロデューサ及び／またはエントロピーソース）及び配信特性は、前記コンシューマのために（例えば様々なＡＰＩ、または図９で示されるウェブページ型などのプログラム的インターフェイスを使って）指示された選好または設定に基づいて決定される。いくつかの実施形態において、前記ソース及び／または配信特性は、ある種類のコンシューマに対し推測される、または前記ランダムデータを使用するアプリケーションの種類に基づいて推測される。少なくともいくつかの実施形態において、いくつかの前記特性は、前記ランダムデータに対して発するＡＰＩ呼出しのパラメータとして指定される。
【００４９】
所定の配信インタラクションに関わる様々なプロデューサ及びエントロピーソースにおける前記ランダムデータの生成及び／または収集は、必要に応じ開始される（構成要素１０１０）。いくつかの実施形態において、エントロピーソース及び／またはプロデューサの集合がランダムデータの生成を開始するように最初に構成されているため、さらなる明示的なコマンドまたは要求を必要とせずに、ランダムデータのストリームは生成され、そして前記ストリームの部分は必要に応じて様々なコンシューマのために使用される。描写された前記実施形態において、適用可能な配信パラメータに基づいて、所定のインタラクションに対する前記ランダムデータの送信が、前記コンシューマのために前記データを受取るように構成された前記配信先に対して開始される（構成要素１０１３）。いくつかの実装例において、配信先には、消費アプリケーションまたはオペレーティングシステムが作動する前記ホスト上で実行されるエントロピー抽出モジュール、またはある他のランダムデータローカルアグリゲータ等の媒体が含まれ、一方で他の実装例においては、生のランダムデータが前記コンシューマに対し直接提供される。いくつかの実施形態において、様々な結合技術のいずれかを使用するランダムデータの収集または結合処理は（例えば図２および図３に図示されるように）、前記ランダムデータサービスのコンポーネントにおいて実行される。少なくともいくつかの実施形態において、前記ランダムデータサービスを活用するために、前記エンドユーザアプリケーションレベルまたは前記オペレーティングシステムレベルにおいて変更を行なう必要はほとんど、または全くない。例えば、前記コンシューマが作動するホスト上のローカルエントロピープールの品質及び／またはサイズを向上するために、ハイパーバイザコンポーネント等の下位レベルソフトウェアは、前記ランダムデータが前記ソフトウェアスタックの上位レベルに提供される方法を変更せずに、前記サービス提供データを単純に使用する。さらに少なくとも一実施形態において、所定のホストにおいてコンシューマが実際に受け取った最終ランダムデータは、前記サービスが提供したランダムデータと異なるため（例えば前記ホストのローカルエントロピーソースを含む様々なソースからのランダムデータの結合の結果）、前記サービスを突破しようとする攻撃者が前記最終消費ランダムデータを特定できる確率は低くなる。
【００５０】
前掲のようにいくつかの実施形態において、前記ランダムデータサービスは高い確率で、一コンシューマインタラクションにおいて提供される前記ランダムデータが他のインタラクションにおいて提供されるものと異なることをある統計的に有効な方法によって保証するように構成可能であり、そして前記サービスは様々なデータ一意性ポリシーをサポートする。図１１は、少なくともいくつかの実施形態に従って、希望するレベルの一意性のランダムデータを提供するために行われる処理態様を説明するフロー図を示す。所定のコンシューマに対する前記一意性設定は、例えばＡＰＩやウェブページ等のプログラム的インターフェイスを使って前記コンシューマによって／に代わって提供される要件または選好に基づいて決定される（構成要素１１０１）。前記一意性設定及び他の関連のある配信パラメータに基づき、ランダムデータは一以上のプロデューサの一以上の選択されたエントロピーソースから取得され、そして様々なレベルにおいて結合される（構成要素１１０４）。例えば所定のプロデューサのいくつかのエントロピーソースからのランダムデータは結合され、及び／またはいくつかのプロデューサからのランダムデータはサービスデータアグリゲータにおいて結合される。
【００５１】
前記結合の結果、前記サービスにおいてランダムデータプールが利用可能となり、そこから異なる部分集合または部分が、それぞれのコンシューマに対する配信の為に選ばれる（構成要素１１０７）。任意のレベルにおける前記データの結合は、いくつかの実装例においては新たに受け取ったデータをデータ到着時にバッファに追加するなど単純な処理を伴い、そして他の実装例においては複雑な処理または結合関数を伴いうる。少なくとも一実施形態において、所定コンシューマに提供するためにランダムデータの所定部分が選ばれると、ランダムデータのその部分は破棄され（印され）二度と使用されないため、少なくとも一レベルにおいてデータ一意性が保たれる。
【００５２】
少なくともいくつかの実施形態において、例えばさらに強化された一意性サポートを提供するために、インタラクションにおいて一意的であるはずのインタラクション固有ビットシーケンスもまた生成される（構成要素１１１０）。前記実装例によっては、このような固有ビットシーケンスは、一以上の、前記ランダムデータの配信に対応付けられたクライアント識別子またはコンシューマ識別子、前記データがいつ生成、要求または送信されたかを示すタイムスタンプ、前記コンシューマ及び／または前記プロデューサのＩＰアドレスまたはＭＡＣアドレス、使用された前記エントロピーソースの識別、または前記インタラクションの他の特徴、から得られる。一実施形態において、所定のコンシューマ（または全コンシューマに）に以前供給された前記ランダムデータの経歴は任意で保持され、そして前記サービスはコンシューマのために選択した特定のデータ集合が一意的であるかどうかを、前記経歴を使って調べ確認する。いくつかのこのような実施形態において、保持する（及び／または前記確認する）経歴レコードの数は限定され、例えば常に前一時間または前日のレコードだけを保持することで、前記経歴保持にかかるストレージ費用及び／または一意性確認にかかる計算費用を削減する。いくつかの実施形態において、所定コンシューマまたは所定コンシューマ集合のために、経歴レコードに突き合せた確認をどの程度実施するかは設定可能である。
【００５３】
描写された前記実施形態において、ランダムデータの前記選択された部分は、任意で前記インタラクション固有ビットシーケンスと共に前記コンシューマに提供される（構成要素１１１６）。前記インタラクションに使用された前記ランダムデータの前記部分は、前述されるように破棄され（構成要素１１１９）、決して再利用されない。いくつかの実装例において、前記インタラクション固有ビットシーケンスは、グローバル固有シーケンス番号またはノンスとみなされる。いくつかの実装例において、前記インタラクション固有ビットシーケンスは例えば提供された前記ランダムデータと共に、前記サービスのコンポーネントにおいて、または前記コンシューマによって、または前記サービス及び前記コンシューマの両方において、ログが記録され、これにより必要であれば前記ランダムデータサービスの監査または分析が行われる。
【００５４】
図１２は、少なくともいくつかの実施形態に従って、サービス提供ランダムデータと、前記ランダムデータコンシューマが作動するホストのローカル生成ランダムデータを結合するために行われる処理態様を説明するフロー図を示す。プロデューサプール１３３の一以上のプロデューサは一以上のエントロピーソースが使用して、前記サービス提供ランダムデータ部分を生成する（構成要素１２０１）。前記サービス提供データは、前記コンシューマが作動する前記ホストに存在するローカルデータアグリゲータコンポーネント等の媒体に送信される（構成要素１２０４）。いくつかの実装例において、前記媒体は、例えばハイパーバイザまたはオペレーティングシステムのコンポーネントでありうる。
【００５５】
前記媒体において、前記サービス提供データはローカル生成ランダムデータ（例えば前記ホストにおける一以上のローカルエントロピーソースからのランダムデータ）と結合される（構成要素１２０７）。いくつかの実装例において、前記サービス提供データは、一次エントロピープール（例えば乱数関連処理のためにローカルエントロピー抽出コンポーネントが使用するバッファまたはランダムビットプール）に追加される。利用可能なローカルエントロピーソースの性質次第で、前記サービス提供ランダムデータとローカル生成ランダムデータの結合は、前記一次エントロピープールの品質を大幅に改善する。例えばいくつかのホストは、そのローカル一次エントロピープールを作成するのに、一般的にハードウェア割込みシーケンス（キーボード入力シーケンスまたはマウスクリックシーケンス等）に依存しうる。しかしながら仮想化計算環境といったいくつかのシナリオにおいて、所定のホストでネイティブにまたはローカルに利用可能な前記ハードウェア割込みシーケンスは、いくつかの品質問題を抱えうる。例えば以下の問題がある。（ａ）前記ホストハードウェアは複数の仮想マシンによって共有され、そしてその結果異なる仮想マシンが同一の割込みシーケンスに依存しなければならず、異なる仮想マシンのコンシューマに提供できる前記ランダムデータの統計的独立性を引き下げうる。（ｂ）少なくともいくつかのシナリオにおいて、ランダムデータ生成に最もよく使用される種類のハードウェア割込みが多くなく、さらに生成されうるランダムデータの品質を下げる。（ｃ）ローカル生成ランダムデータの品質は、ホストの立ち上げまたは仮想マシンの起動からの経過時間に基づいて、時間と共に変化する。このような環境において、前記サービスの高品質エントロピーソースの一つでもから生成されたランダムデータを、ローカル生成ランダムデータのプールへ結合することで（いくつかの異なるローカルエントロピーホストが使用されているとしても）、前記コンシューマに対する前記ランダムデータの統計的品質を大幅に改善するに至る。前記結合結果は、前記コンシューマに提供される（構成要素１２１０）。少なくともいくつかの実装例において、前記ローカル生成ランダムデータとの結合にはまたセキュリティ的に利点があり、前記コンシューマが受け取る最終データは前記サービスが提供したものと異なり、前記サービスにおける前記最終ランダムデータを推測することは不可能である。従って、悪意のある攻撃者が前記ランダムデータサービスにうまく侵入するという思いがけない出来事において、前記ランダムデータは前記サービスの出力を少なくとも一部基にして生成されたはずにもかかわらず、前記攻撃者は前記コンシューマが使用する前記ランダムデータを特定できないだろう。
【００５６】
コンシューマが作動する前記ホストにおいてローカル生成ランダムデータが利用可能であるいくつかの実施形態において、あるコンシューマの要件は前記ローカル生成データを使用するだけで満たされ、一方でランダムデータに対する他のニーズは潜在的に高品質なサービス提供データを使用することを要求する可能性がある。図１３は、少なくともいくつかの実施形態に従って、ランダムデータコンシューマが作動するホストにおいてサービス生成データを使用するかどうかを決定するためにローカルで展開されるランダムデータサービスコンポーネントの処理態様を説明するフロー図を示す。例えばランダムデータのローカルアグリゲータやローカルエントロピーエクストラクタ等の前記ローカルコンポーネントは、前記コンシューマのために、提供するランダムデータ集は前記ランダムデータサービスのプロデューサプール１３３から取得した高品質ランダムデータに少なくとも一部基づくべきか否かを決定しうる（構成要素１３０１）。サービス提供データを使用するか否かに関しては、インタラクション毎の粒度（例えば一単位として取得される所定のランダムデータ集合）、または複数のインタラクションの粒度（所定のエンドユーザコンシューマアプリケーションプロセスにおける全てのランダムデータ要求など）で判断される。高品質サービス提供データが使用される場合（構成要素１３０４にて決定）、前記サービス提供データは直接または間接的に（例えば前記プールの前記プロデューサから直接、またはサービスデータアグリゲータを通して）収集される（構成要素１３０７）。
【００５７】
そして前記コンシューマに提供される前記最終ランダムデータ集合のコンテンツが決定される（構成要素１３１０）。少なくともいくつかの実装例において、前記プロデューサプールのデータは、例えば前記プロデューサプールのデータをローカルエントロピープールまたはバッファに追加することで、ローカル生成データと結合される。一実装例において、前記プロデューサプールのデータは、ローカルランダムデータソースが利用可能であっても、ローカル生成データと混合または結合されることなく前記コンシューマに提供される。そして前記コンテンツは、前記コンシューマに提供される（構成要素１３１４）。ローカル生成データで足りると判断された場合（同様に構成要素１３０４にて決定）、構成要素１３１７に示されるように、ローカル生成ランダムデータの部分が前記コンシューマに提供される。プロデューサプールのデータとローカルデータの結合が必要かどうか、またはローカルデータで十分かどうかについては、異なる実装例における様々なパラメータまたは設定に基づいて判断される。例えば、前記コンシューマの指定要件、前記コンシューマのランダムデータ推測要求品質、または価格設定／請求配慮事項（例えば前記コンシューマアプリケーションが代わりに作動する顧客がサービス生成ランダムデータに対し限度予算を割当て、そしてその予算が使い尽くされた場合には、ローカル生成データが使用される）に基づいて判断される。
【００５８】
前述のように前記ランダムデータサービスに使用されるプロデューサプールのサイズ及び前記プロデューサの配置は、異なる実施形態における様々な要素に基づいて決定される。図１４は、少なくともいくつかの実施形態に従って、ランダムデータプロデューサのプールに含まれるべきサーバの数を決定するために行われる処理態様を説明するフロー図を示す。構成要素１４０１に示されるように、選択されたコンシューマ集合によりランダムデータが消費される速度が決定される。前記コンシューマ集合は、例えば前記サービスによりサポートされている典型的なコンシューマの無作為サンプルを表す、または特定コンシューマ部分集合（例えば最高品質の暗号プログラムを実行することで知られている顧客のアプリケーション）のサンプルを表しうる。ランダムデータ使用の測定が行われる（例えば、前記ランダムデータサービスがまだ利用可能でない環境、または一次的なプールとして既に構築されたプロデューサ集合を持つ前記ランダムデータサービスが利用可能な環境のどちらでも行われる）。さらに、前記ランダムデータサービスに対する前記可用性及び冗長性要件が決定される（例えば、計算サーバ可用性要件といった、前記プロバイダネットワークにおいて対応している他の可用性／冗長性要件に合わせて決定される）。
【００５９】
構成要素１４０４に示されるように、ランダムデータコンシューマの予想数及びそれらの平均消費速度が計算される。プロデューサとして展開される種類の平均的サーバが、選択されたエントロピーソース集合を使ってランダムデータを生成（及び送信）できる速度が、例えばランダムデータ生成テストの標準スイートを使用することで、測定される（構成要素１４０７）。そして前記プールに含まれるべきサーバの総数が計算され（構成要素１４１０）、そして前記冗長性または可用性要件に基づいて、前記サーバは選択されたデータセンタ集合及び／またはアベイラビリティコンテナにマッピングされる。例えば、各プロデューサが毎秒Ｎ１ビットのランダムデータを生成及び送信可能で、前記全推定消費速度が毎秒Ｃ１ビットであり、そして三重の冗長性が要求される（すなわち、パフォーマンスのためだけに使用される各プロデューサの可用性目的のために、３つのプロデューサが構成される必要がある）場合、プロデューサの総数は一単純実装例において（Ｃ１＊３）／Ｎ１と推定され、そして前記サーバは３つのアベイラビリティコンテナに均等に分散配置される。前記プロデューサプールの数及び地理的配置が決定された後、前記プールの前記サーバが展開される（構成要素１４１３）。前記プール要素の使用レベル及び前記ランダムデータを送信するのに使用される対応ネットワークリンクは監視され、そしてその展開（例えば前記プロデューサの総数及び／または配置）は変化する仕事量に基づいて必要に応じて調整される。ランダムデータを生成できる最大速度を左右するボトルネックリソースは、実施例によって異なる。例えば前記エントロピーソースが前記ボトルネックであったり、前記サーバの処理もしくはメモリーリソースが前記ボトルネックであったり、またはネットワークリンクもしくはデバイスが前記ボトルネックでありうる。前記サービスの監視は、どのリソース集合を調整する必要があるのかを特定するのに役立つ。例えばエントロピーソースを追加することで、所定のプロデューサとして使用されている前記サーバの他のソフトウェアまたはハードウェア特性を変えることなく、前記所定プロデューサのランダムデータ送信速度を上げることが可能である。少なくともいくつかの実施形態において、生成されているランダムデータの品質測定を取得するために統計的テストが実行され、そして希望する品質レベルを満たすために、必要に応じて前記エントロピーソース及び／または結合技術に対する調整が行われる。
【００６０】
図１５は、少なくともいくつかの実施形態に従って、プログラム的インターフェイスを通してランダムデータを提供するネットワークアクセス可能なサービスを実施するために行われる処理態様を説明するフロー図を示す。構成要素１５０１に示されるように、一以上のプログラム的インターフェイス（ＡＰＩ、ウェブページ等）は、前記ランダムデータサービスの様々な態様における制御と設定のために実行される。前記インターフェイスは、ランダムデータの希望品質、使用するエントロピーソースの種類、前記データを送信する量または単位等を、クライアントが指定するのを可能にする。構成要素１５０４に示されるように、プログラム的インターフェイスはまた、前記ランダムデータ自体の要求及び／または配信のために実行される。いくつかの実施形態において、希望するランダムデータ特性の指定／要求及び前記ランダムデータ自体の供給の両方に、同一のインターフェイスが使用可能である。例えばコンシューマアプリケーションは前記要求するデータの特性を指定するパラメータと共にＡＰＩ要求を送信し、そして前記ＡＰＩ要求に対する返答には前記希望する特性のランダムデータ集合が含まれる。
【００６１】
少なくともいくつかの実施形態において、クライアントまたはコンシューマに前記ランダムデータを配信するために、複数のセキュリティプロトコルがサポートされ、前記複数のセキュリティプロトコルには、例えば、前記ランダムデータサービスが実施されている前記プロバイダネットワーク内の信頼性のあるクライアントまたは信頼性のあるホストに対して使用される、少なくとも一つのセキュリティプロトコルが含まれる（構成要素１５０７）。前記プロバイダネットワークの外部にある信頼性のないクライアントまたは信頼性のないホストに対しては、異なるセキュリティプロトコルが使用される。従って信頼性のないホストまたは前記信頼性のないホストへの前記ネットワーク経路のどちらも、前記プロバイダネットワークの前記オペレータの監視下または制御下にない。いくつかの実施形態において、前記プロバイダネットワーク内部で使用される前記プロトコルは、他の内部データ転送に関した追加のセキュリティ関連処理がほとんど、または全くなく、比較的に軽い。信頼性のないホストまたはコンシューマに使用されるプロトコルは、例えば特定クライアント用キーを使った暗号、前記ランダムデータが転送中に破損または改ざんされていないか確認できるように、前記コンシューマに送った前記ランダムデータの要約の生成等、追加の処理及び／またはネットワーク転送を伴いうる。いくつかの実施形態において、例えば希望するセキュリティまたはデータ完全性のレベルと、そのセキュリティまたは完全性のレベルを提供するのにかかる負荷の間で、適切な妥協点を決めるように、前記セキュリティポリシーの様々な態様が、前記クライアントによって／に代わって指定される（例えば制御または設定のために一以上の前記プログラム的インターフェイスを使って行われる）。
【００６２】
所定のクライアントに提供する特定のランダムデータ集合の具体的な特性集合が、例えば前記プログラム的インターフェイスの一つから受け取った入力を基に決定される（構成要素１５１０）。前記の決定された特性に従って、前記サービスのランダムデータプロデューサプールから選ばれた一以上のプロデューサからランダムデータが取得され、そして前記クライアントに対応付けられた配信先への前記データの送信が開始される（構成要素１５１３）。前記送信において、前記配信に適切なセキュリティプロトコルが使用される。
【００６３】
図１６は、少なくともいくつかの実施形態に従って、ランダムデータを提供するために構築されたサービスの選択可能な価格設定ポリシーを実施するために行われる処理態様を説明するフロー図を示す。構成要素１６０１に示されるように、ランダムデータ生成及び配信のために、複数の価格設定ポリシーが実施される。価格設定方策実施例には、ランダムデータのビット毎の固定価格、ランダムデータが提供される速度に基づいた価格設定、例えば前記データの統計的品質（または使用されたエントロピーソースの種類と数による間接的品質指標など）に基づき価格が変化する、品質ベースの価格設定、または需要と供給に基づいた動的価格設定（スポット価格設定と称される）が含まれる。例えばスポット価格設定が実施される実施形態において、Ｎビットのランダムデータに対しクライアントが請求される価格は、前記データが要求された時間、またはその時間付近のランダムデータのリアルタイムな需要に基づいて、及び／またはプロデューサの可能供給量と前記データが送信されるネットワーク経路に基づいて、時間とともに変化する。いくつかの実施形態において、クライアントは予約ベース価格設定ポリシーを使うなどして、特定の期間中、指定の量のランダムデータが提供されるように予約することができる。残余価格設定の一実施例において、クライアントは使わずに残ったランダムデータを再び売ることができる。例えば前記クライアントのアプリケーションがＸ日以上使用しなかった全ランダムデータを今後も使用しないと判断された場合、前記未使用の残余ランダムデータは、例えば前記サービスの一環として立ち上げられたランダムデータマーケットプレイスを使用して割引価格で再販される。いくつかの実施形態において、例えばランダムデータの提供費用は前記コンシューマに対応付けられた前記配信先の地理的またはネットワーク上の位置に少なくとも一部基づいて決定される、位置依存価格設定ポリシーがサポートされる。例えば特定の品質のランダムデータが地域Ｘに位置するプロデューサからのみ提供可能な場合、地域Ｘ内のコンシューマは、前記データの地域間の追加送信費のかかる地域Ｙ内のコンシューマより、安く請求される。いくつかの実施形態において、優先順位ベース価格設定が実施される。そのような一実施形態において、例えば高い料金を払う意思のあるクライアントにはランダムデータ配信に関する高い優先権が与えられる。そのため、前記プロデューササーバが、少なくとも何人かの顧客に対する前記ランダムデータ配信の遅延なしに全顧客の前記ランダムデータ要求に応え続けることができない場合、高い優先度のクライアントのアプリケーションは、低い優先度のクライアントのアプリケーションより、短い遅延で前記ランダムデータが配信されるだろう。前述の価格設定ポリシーの様々な組合せが、異なる実施形態において実施される。
【００６４】
描写された実施形態において、ランダムデータに対する価格設定と料金請求に対応付けられたプログラム的インターフェイスが実施される（構成要素１６０４）。これにより例えばユーザまたはクライアントは、希望する価格設定ポリシーの選択、自分のランダムデータに関する請求料金及び／または使用経歴の閲覧、及び／または価格関連通知に関する選好の設定（例えば自分のランダムデータ関連費が閾値に達した、または自分のランダムデータの消費がある特定のレベルを超えた場合に、クライアントは電子メールなど好みの機構によって通知を受けたい）等が可能になる。前記サービスは、様々なクライアントによるランダムデータ使用のメトリクスの取得及び追跡を行う（構成要素１６１０）。ランダムデータ使用に基づく請求料金及び選択された価格設定ポリシーは決定され、そして前記クライアントに伝えられる（構成要素１６１３）。さらに描写された前記実施形態において、前記クライアントの好みに合った通知が提供される。いくつかの実施形態において、前記ランダムデータサービスはまた、クライアントの目的（希望する予算限度など）に基づいてクライアントに対し推薦や提案を行うように構成可能である。例えば、提供する高品質ランダムデータが予算超過を起こしそうな場合、前記サービスは低価格の低品質ランダムデータを使用するように薦める。
【００６５】
様々な実施形態において、図１０、１１、１２、１３、１４、１５及び１６のフロー図において示されるいくつかの処理は、省略可能、または示されるものとは異なった順序で実行可能、または順次ではなく同時に実行可能であることに留意されたい。本文で使用される用語アプリケーションは、ハイパーバイザ、オペレーティングシステム、ドライバ、ライブラリ、ユーザアプリケーション等のコンポーネントを限定せずに含む、コンピューティングデバイス上のソフトウェアスタックの任意のレベルにおけるソフトウェアに言及することにも留意されたい。
活用事例
【００６６】
プロバイダネットワーク内のサービスにより品質設定可能なランダムデータ集合を提供する前述の技術は、様々な異なるシナリオにおいて有用でありうる。例えば前記プロバイダネットワークにおいて仮想化計算サービスが実施される環境において、ネイティブに（すなわち前記仮想マシンが実行される仮想化ホスト上で）生成可能な前記ランダムデータは、少なくともいくつかの事例において低品質でありうる、または時間とともに（例えば仮想マシンの起動時からの経過時間に基づいて、及び／またはホストの起動時からの経過時間に基づいて）品質が変化しうる。いくつかの事例において、所定の仮想化ホスト上の異なる仮想マシンは、エントロピーソースを共有しなくてはならず、各仮想マシンに対し提供される前記ランダムデータの統計的独立性は低減する。このような環境において、異なるプールのサーバをランダムデータプロデューサとして使用し、同時に前記サーバからアクセス可能な高品質なエントロピーソースを適用することは、前記仮想マシンに提供される前記ランダムデータの品質を向上するのに大変有効でありうる。さらに特定の種類のエントロピーソースを指定する（または除外する）機能は、自身の高品質なエントロピーソースを取得し維持する費用を発生させずに、自身のランダムデータ品質に対しきめ細やかな制御を行いたい、前記プロバイダネットワークの内部及び外部両方のクライアントにとって、有益でありうる。
【００６７】
システム全体の要求に応えるのに適切なサイズのプロデューサプールを構成し、前記プロデューサを異なるアベイラビリティコンテナまたは異なるデータセンタに配置することで、ランダムデータ配信のための高可用性機構が構築される。前記プロバイダネットワークの内部及び外部両方のコンシューマは、一以上のデータセンタにおいて障害が起こった場合でも高品質ランダムデータの配信が中断される可能性が低い保証があれば、前記サービスを信頼して、暗号アプリケーション、ゲームアプリケーション等、ランダムデータに依存する様々な種類のアプリケーションをサポートすることが可能である。複数の選択可能な価格設定ポリシーをサポートすることにより、ユーザは柔軟に、自身のコンピューティング予算を超過することなく、自身のランダムデータ要求を満たすことができる。セキュリティプロトコルにおける柔軟な選択は、クライアントがデータ完全性及び機密性に関する要件と、高レベルのデータセキュリティに伴う負荷の釣り合いをとるのに役立つ。
例示的コンピュータシステム
【００６８】
少なくともいくつかの実施形態において、ランダムデータサービスの様々な前記コンポーネントを実行する技術を含む、本文に記述される一以上の技術の一部または全てを実施するサーバは、一以上のコンピュータアクセス可能な媒体を含む、またはそのような媒体にアクセスするように構成された汎用コンピュータシステムを含みうる。図１７は、このような汎用コンピューティングデバイス３０００を示す。図示された実施形態において、コンピューティングデバイス３０００は、入出力インターフェイス３０３０を介してシステムメモリ３０２０につながれた一以上のプロセッサ３０１０を含む。コンピューティングデバイス３０００はさらに、入出力インターフェイス３０３０につながれたネットワークインターフェイス３０４０を含む。
【００６９】
様々な実施形態において、コンピューティングデバイス３０００は、一プロセッサ３０１０を含むユニプロセッサシステム、または複数（例えば２、４、８または他の適当な個数）のプロセッサ３０１０を含む多重プロセッサシステムでありうる。プロセッサ３０１０は、命令を実行できる任意の好適なプロセッサでありうる。例えば様々な実施形態においてプロセッサ３０１０は、多種の命令集合アーキテクチャ（ＩＳＡ）（例えばｘ８６、ＰｏｗｅｒＰＣ、ＳＰＡＲＣ、ＭＩＰＳ ＩＳＡ、またはその他の適切なＩＳＡ等）のいずれかを実施する汎用または組込みプロセッサでありうる。多重プロセッサシステムにおいて、各プロセッサ３０１０は通常、必ずしもではないが同一のＩＳＡを実行しうる。
【００７０】
システムメモリ３０２０は命令と、プロセッサ３０１０がアクセス可能なデータを保存するように構成される。様々な実施形態において、システムメモリ３０２０は、静的ランダムアクセスメモリ（ＳＲＡＭ）、同期式動的ＲＡＭ（ＳＤＲＡＭ）、不揮発性／フラッシュメモリ、またはその他の種類のメモリ等、任意の適切なメモリ技術を使用して実施される。図示された実施形態において、前述のこれらの方法、技術及びデータ等、一以上の希望する機能を実行するプログラム命令及びデータは、システムメモリ３０２０においてコード３０２５及びデータ３０２６として保存されることが示される。
【００７１】
一実施形態において、入出力インターフェイス３０３０は、プロセッサ３０１０、システムメモリ３０２０、及びネットワークインターフェイス３０４０または他の周辺インターフェイスを含む任意の周辺デバイス間の入出力トラフィックを当該デバイス内で調整するように構成される。いくつかの実施形態において、入出力インターフェイス３０３０は、一コンポーネント（例、システムメモリ３０２０）からのデータ信号を、他のコンポーネント（例、プロセッサ３０１０）が使用する好適な形式に変換するために、必要な任意のプロトコル、時間調整、または他のデータ変換を行いうる。いくつかの実施形態において、入出力インターフェイス３０３０は、様々な種類の周辺バスを通して取り付けられるデバイスのサポートを含みうる。例えば周辺構成要素相互接続（ＰＣＩ）バス規格、または汎用シリアルバス（ＵＳＢ）規格がある。いくつかの実施形態において、入出力インターフェイス３０３０の機能性は、例えばノースブリッジとサウスブリッジといった二つ以上の別々のコンポーネントに分割される。またいくつかの実施形態において、システムメモリ３０２０に対するインターフェイス等、一部または全ての前記入出力インターフェイス３０３０の機能性は、プロセッサ３０１０に直接組み込まれる。
【００７２】
ネットワークインターフェイス３０４０は、コンピューティングデバイス３０００と、図１から図１６を通して示される他のコンピュータシステムまたはデバイス等、例えばエントロピーソースとして機能する様々なデバイスを含む、単一または複数のネットワーク３０５０に接続された他のデバイス３０６０との間でデータが交換可能となるように構成される。様々な実施形態において、ネットワークインターフェイス３０４０は、例えばイーサネット（登録商標）ネットワークの類の任意の好適な有線または無線汎用データネットワークを介したコミュニケーションをサポートしうる。さらにネットワークインターフェイス３０４０は、アナログ音声ネットワークまたはデジタルファイバコミュニケーションネットワーク等の電気通信／電話ネットワークを介した、またはファイバチャネルＳＡＮ等のストレージエリアネットワークを介した、または任意の他の好適な種類のネットワーク及び／またはプロトコルを介したコミュニケーションをサポートしうる。
【００７３】
いくつかの実施形態において、対応する方法及び装置の実施形態を実施するために図１から図１６を通して前述されたように、システムメモリ３０２０は、プログラム命令及びデータを記憶するように構成されたコンピュータアクセス可能媒体の一実施形態でありうる。しかしながら他の実施形態において、プログラム命令及び／またはデータは、異なる種類のコンピュータアクセス可能媒体上で受信され、送信され、保存される。一般的にコンピュータアクセス可能媒体には、磁気媒体または光学式媒体等の非一時的な記憶媒体およびメモリ媒体が含まれる。例えば、コンピューティングデバイス３０００に入出力インターフェイス３０３０を介してつながれるディスクまたはＤＶＤ／ＣＤがある。非一時的なコンピュータアクセス可能記憶媒体には、コンピューティングデバイス３０００のいくつかの実施形態にシステムメモリ３０２０または他の種類のメモリとして含まれるＲＡＭ（例、ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ、ＲＤＲＡＭ、ＳＲＡＭ等）、ＲＯＭ等の任意の揮発性または不揮発性媒体も含まれる。さらにコンピュータアクセス可能媒体には、送信媒体または信号が含まれる。前記信号にはネットワーク及び／または無線リンク等のコミュニケーション媒体を介して伝達される電気、電磁またはデジタル信号等があり、ネットワークインターフェイス３０４０を介して送信が実行される。図１７に示されるような多重コンピューティングデバイスの一部または全ては、様々な実施形態において記述された前記機能性を実行するために使用される。例えば、様々な異なるデバイス及びサーバ上で作動するソフトウェアコンポーネントは共同して前記機能性を提供する。いくつかの実施形態において、記述された前記機能性の一部は、汎用コンピュータシステムを使って実行されるのに加えて、または代わって、ストレージデバイス、ネットワークデバイスまたは特別目的コンピュータシステムを使って実行される。本文で使用される用語コンピューティングデバイスは、少なくとも全てのこれらの種類のデバイスに言及し、またこれらの種類のデバイスに限定されない。
【００７４】
前述の実施形態は以下の項を参照することで、より理解されるだろう。
１．  一以上のコンピューティングデバイスを備えるシステムであって、前記一以上のコンピューティングデバイスが、
一以上のランダムデータコンシューマによって利用可能なランダムデータプロデューサのプールの要素として、プロバイダネットワークの一以上のサーバを指定し、
前記プールの特定サーバに対し、ランダム現象の一以上の候補ソースの集合を決定し、前記集合の少なくとも一候補ソースのランダム現象表現に少なくとも一部基づいて前記特定サーバはランダムデータを生成するように構成可能であり、
ランダムデータコンシューマのために、（ａ）ランダムデータコンシューマ用のランダムデータ集を供給するために使用される前記プロデューサプールの部分集合で、前記特定サーバを含む前記部分集合、（ｂ）前記ランダムデータ集を生成するために使用される一以上のランダム現象ソース、及び（ｃ）前記ランダムデータコンシューマに前記ランダムデータ集を送信するために使用される一以上の配信パラメータ、以上を決定し、
そして前記一以上の配信パラメータに従って、前記ランダムデータコンシューマに対応付けられた配信先へ前記ランダムデータ集の送信を開始するように構成された、前記システム。
２．  第１項に詳述の前記システムにおいて、前記一以上のコンピューティングデバイスが、前記ランダムデータに対する希望の統計的特性の指示に少なくとも一部基づいて、前記ランダムデータ集を生成するために使用される前記一以上のランダム現象ソースを決定するように構成された、前記システム。
３．  第１項に詳述の前記システムにおいて、前記ランダムデータコンシューマが、前記プロバイダネットワークの特定ホスト上でインスタンス化された複数のゲスト仮想マシンの第一ゲスト仮想マシンにおいて作動する第一アプリケーションを備え、前記一以上のコンピューティングデバイスがさらに、
第二ゲスト仮想マシンにおいて作動する第二アプリケーションを含む、前記特定ホスト上でインスタンス化されたそれぞれのゲスト仮想マシンにおいて作動する複数のアプリケーションに対し、前記第一アプリケーションへ供給される前記ランダムデータ集と前記第二アプリケーションへ供給される第二ランダムデータ集間の希望する統計的独立性のレベルを示す一意性ポリシーに従って、それぞれのランダムデータ集の生成及び送信を調整するように構成された、
前記システム。
４．  第１項に詳述の前記システムにおいて、前記ランダムデータコンシューマが特定ホスト上で作動するソフトウェアコンポーネントを備え、前記配信パラメータが、前記ランダムデータコンシューマのために前記ランダムデータ集を受信するように構成された前記特定ホスト上のローカルランダムデータアグリゲータの指示を含み、前記ローカルランダムデータアグリゲータが、
前記ランダムデータ集と、前記特定ホストに対応付けられたローカルランダム現象ソースの少なくとも一部から得た追加ランダムデータを、アグリゲーションポリシーに従って結合し、
そして前記ランダムデータ集と前記追加ランダムデータの結合結果を、前記ランダムデータコンシューマに提供するように構成された、前記システム。
５．  第１項に詳述の前記システムにおいて、前記一以上の配信パラメータには、（ａ）前記ランダムデータコンシューマからの明示的なデータ要求がない状態で前記ランダムデータコンシューマのために一以上のランダムデータ集を送信することを指示するプッシュポリシー、（ｂ）前記ランダムデータコンシューマからのデータ要求に応じて前記ランダムデータコンシューマのために前記ランダムデータ集を送信することを指示するプルポリシー、（ｃ）機密性、真正性、データ完全性またはリプレイ防護仕様の集合に従って、前記ランダムデータ集を送信するのに使用されるセキュリティポリシー、（ｄ）前記ランダムデータ集のサイズ、または（ｅ）前記ランダムデータ集を送信する速度、以上の一以上の表明が含まれる、前記システム。
６．  ランダムデータプロデューサのプールの要素として、プロバイダネットワークの一以上のサーバを指定し、
前記プールの特定サーバに対し、ランダム現象の一以上の候補ソースの集合を決定し、前記集合の少なくとも一候補ソースのランダム現象表現に少なくとも一部基づいて前記特定サーバはランダムデータを生成するように構成可能であり、
ランダムデータコンシューマ用のランダムデータ集を供給するために使用される前記プロデューサプールの部分集合を決定し、
そして前記ランダムデータコンシューマに対応付けられた配信先へ前記ランダムデータ集の送信を開始することを含む方法。
７．  第６項に詳述の前記方法において、希望するランダムデータ品質の指示に少なくとも一部基づいて、前記ランダムデータ集を生成するために使用される一以上のランダム現象ソースを決定することをさらに含む前記方法。
８．  第６項に詳述の前記方法において、前記ランダムデータコンシューマが、前記プロバイダネットワークの特定ホスト上でインスタンス化された複数のゲスト仮想マシンの第一ゲスト仮想マシンにおいて作動する第一アプリケーションを備え、前記方法はさらに、
第二ゲスト仮想マシンにおいて作動する第二アプリケーションを含む、前記特定ホスト上でインスタンス化されたそれぞれのゲスト仮想マシンにおいて作動する複数のアプリケーションに対し、前記第一アプリケーションへ供給される前記ランダムデータ集と前記第二アプリケーションへ供給される第二ランダムデータ集間の希望する統計的独立性のレベルを示す一意性ポリシーに従って、それぞれのランダムデータ集の生成及び送信を調整することを含む前記方法。
９．  第６項に詳述の前記方法において、前記ランダムデータコンシューマが特定ホスト上で作動するソフトウェアコンポーネントを備え、前記配信先が、前記ランダムデータコンシューマのために前記ランダムデータ集を受信するように構成された前記特定ホスト上のローカルランダムデータアグリゲータを含み、前記方法はさらに、
前記ランダムデータ集と、前記特定ホストに対応付けられたローカルランダム現象ソースの少なくとも一部から得た第二ランダムデータ集を、前記ローカルランダムデータアグリゲータによって結合し、
そして前記ランダムデータ集と前記第二ランダムデータ集の結合結果を、前記ローカルランダムデータアグリゲータによって前記ランダムデータコンシューマに提供することを含む前記方法。
１０．  第６項に詳述の前記方法において、
前記ランダムデータ集を送信するのに使用される配信パラメータを決定することをさらに含み、前記配信パラメータには（ａ）前記ランダムデータコンシューマからの明示的なデータ要求がない状態で前記配信先に一以上のランダムデータ集を送信することを指示するプッシュポリシー、（ｂ）前記ランダムデータコンシューマからのデータ要求に応じて前記配信先に前記ランダムデータ集を送信することを指示するプルポリシー、（ｃ）機密性、真正性、データ完全性またはリプレイ防護仕様の集合に従って、前記ランダムデータ集を送信するのに使用されるセキュリティポリシー、（ｄ）前記ランダムデータ集のサイズ、または（ｅ）前記ランダムデータ集を送信する速度が一以上含まれる、前記方法。
１１．  第６項に詳述の前記方法において、
複数のランダムデータコンシューマによってランダムデータが消費される速度を決定し、
そして一以上の（ａ）決定された速度及び（ｂ）予想されるランダムデータコンシューマの数、の少なくとも一部に基づいて、前記プロデューサプールに含まれるべきサーバの数を決定することをさらに含む前記方法。
１２．  第６項に詳述の前記方法において、前記プロデューサプールは複数のサーバを備え、前記プロバイダネットワークは複数のアベイラビリティコンテナを備え、前記方法はさらに、
ランダムデータの前記プロデューサプールに対する可用性要件を決定し、
そして前記可用性要件の少なくとも一部に基づいて、前記複数のサーバの前記複数のアベイラビリティコンテナへのマッピングを示す配置図を生成することを含む前記方法。
１３．  第６項に詳述の前記方法において、前述の前記ランダムデータコンシューマ用のランダムデータ集を供給するのに使用される前記プロデューサプールの部分集合を決定することは、ランダム選択ポリシーを使って前記部分集合に含まれるべき前記プールの一以上のサーバを特定することを含む、前記方法。
１４．  第６項に詳述の前記方法において、
別のランダムデータコンシューマ用のランダムデータ集を供給するために使用される前記プロデューサプールの別の部分集合を決定し、前記別の部分集合がアグリゲーションサーバを含む複数のサーバを備え、
前記別の部分集合の一以上のサーバから得られた各ランダムデータ集を、前記アグリゲーションサーバにおいて結合し、
そして前記別のランダムデータコンシューマに対し、前記各ランダムデータ集の前記結合結果の送信を開始することをさらに含む前記方法。
１５．  第６項に詳述の前記方法において、前記ランダムデータコンシューマが前記プロバイダネットワークの外部にあるコンピューティングデバイスで作動するアプリケーションを備え、そして前記ランダムデータ集の送信には前記プロバイダネットワークの外部にあるネットワークリンクが使用される、前記方法。
１６．  第６項に詳述の前記方法において、前記一以上の候補ソース集合には、熱雑音源、放射性崩壊が起きている存在、電子雑音源、ショット雑音源、検知可能な量子力学的変化が起きている存在、クロック変動、ディスク読取り／書込みヘッド動作、電波雑音源、天候変化、一連の割込み、一連のマウスクリック、または一連のキーボード入力が一以上含まれる、前記方法。
１７．  第６項に詳述の前記方法において、前記ランダムデータコンシューマが、暗号アプリケーション、セキュリティ証明書ジェネレータ、ギャンブルアプリケーション、ランダムデータの少なくとも一部に基づいてトークンを生成するように構成された権限アプリケーション、シーケンス番号を使用するように構成されたアプリケーション、前記プロバイダネットワークのホストの一次エントロピープールから乱数を生成するように構成されたエントロピーエクストラクタ、乱数要求を傍受するように構成されたデーモン、一以上の乱数ルーチンを備えるライブラリをサポートするように構成されたオペレーティングシステムコンポーネント、または一以上のゲスト仮想マシンにランダムデータを提供するように構成された仮想化ソフトウェアコンポーネントを一以上含む、前記方法。
１８．  プログラム命令を記憶する非一時的コンピュータアクセス可能記憶媒体であって、一以上のプロセッサ上で実行された前記プログラム命令が、
一以上のランダムデータコンシューマによって利用可能なランダムデータプロデューサのプールの要素として、プロバイダネットワークの一以上のサーバを指定し、
ランダムデータコンシューマ用のランダムデータ集を提供するために使用される前記プロデューサプールの部分集合、及び前記ランダムデータ集を生成するために使用される一以上のランダム現象ソースを決定し、
そして前記ランダムデータコンシューマへ前記ランダムデータ集の送信を開始する、前記非一時的コンピュータアクセス可能記憶媒体。
１９．  第１８項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、前記一以上のプロセッサ上で実行された前記命令が、
前記プールの部分集合の特定サーバに対し、ランダム現象の一以上の候補ソースの集合を決定し、前記特定サーバは前記集合の少なくとも一候補ソースのランダム現象の表現に少なくとも一部基づいてランダムデータを生成するように構成可能である、前記非一時的コンピュータアクセス可能記憶媒体。
２０．  第１８項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、前記ランダムデータコンシューマが、前記プロバイダネットワークの特定ホスト上でインスタンス化された複数のゲスト仮想マシンの第一ゲスト仮想マシンにおいて作動する第一アプリケーションを備え、前記一以上のプロセッサ上で実行された前記命令が、
第二ゲスト仮想マシンにおいて作動する第二アプリケーションを含む、前記特定ホスト上でインスタンス化されたそれぞれのゲスト仮想マシンにおいて作動する複数のアプリケーションに対し、前記第一アプリケーションへ供給される前記ランダムデータ集と前記第二アプリケーションへ供給される第二ランダムデータ集間の希望する統計的独立性のレベルを示す一意性ポリシーに従って、それぞれのランダムデータ集の生成及び送信を調整する、前記非一時的コンピュータアクセス可能記憶媒体。
２１．  第１８項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、前記ランダムデータコンシューマが特定ホスト上で作動するソフトウェアモジュールを備え、前記配信先が前記特定ホスト上のローカルランダムデータアグリゲータを備え、前記アグリゲータが（ａ）前記ランダムデータ集と、前記特定ホストに対応付けられたローカルランダム現象ソースの少なくとも一部から得た追加ランダムデータを結合し、そして（ｂ）前記ランダムデータ集と前記追加ランダムデータの結合結果を、前記ランダムデータコンシューマに提供するように構成された、前記非一時的コンピュータアクセス可能記憶媒体。
２２．  第１８項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、前記一以上のプロセッサ上で実行された前記命令が、
前記ランダムデータ集を送信するのに使用される配信パラメータを決定し、前記配信パラメータには、（ａ）前記ランダムデータコンシューマからの明示的なデータ要求がない状態で前記配信先に一以上のランダムデータ集を送信することを指示するプッシュポリシー、（ｂ）前記ランダムデータコンシューマからのデータ要求に応じて前記配信先に前記ランダムデータ集を送信することを指示するプルポリシー、（ｃ）機密性、真正性、データ完全性またはリプレイ防護要件の集合に従って、前記ランダムデータ集を送信するのに使用されるセキュリティポリシー、（ｄ）前記ランダムデータ集のサイズ、または（ｅ）前記ランダムデータ集を送信する速度が一以上含まれる、前記非一時的コンピュータアクセス可能記憶媒体。
２３．  第１８項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、前記ランダムデータコンシューマ用のランダムデータ集を供給するのに使用される前記プロデューサプールの前記部分集合を決定するために、前記一以上のプロセッサ上で実行された前記命令が、ランダム選択ポリシーを使って前記部分集合に含まれるべき前記プールの一以上のサーバを特定する、前記非一時的コンピュータアクセス可能記憶媒体。
２４．  第１８項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、前記一以上のプロセッサ上で実行された前記命令が、
別のランダムデータコンシューマ用のランダムデータ集を供給するために使用される前記プロデューサプールの別の部分集合を決定し、前記別の部分集合がアグリゲーションサーバを含む複数のサーバを備え、前記アグリゲーションサーバが前記別の部分集合の一以上のサーバから得られた各ランダムデータ集を結合するように構成され、
そして前記別のランダムデータコンシューマに対し、前記各ランダムデータ集の前記結合結果の送信を開始する、前記非一時的コンピュータアクセス可能記憶媒体。
２５．  プログラム命令を記憶する非一時的コンピュータアクセス可能記憶媒体であって、一以上のプロセッサ上で実行された前記プログラム命令が、
ランダムデータコンシューマに提供されるランダムデータ集は、プロバイダネットワークのランダムデータプロデューサとして指定されたサーバのプールの一以上の要素から取得されたランダムデータに少なくとも一部基づいて生成されるべきかを決定し、
前記データ集は前記サーバプールの一以上の要素から取得されたランダムデータに少なくとも一部基づいて生成されるべきという決定に応じて、
プログラム的インターフェイスを介して、前記プールの特定要素により少なくとも一部生成されたランダムデータを取得し、
前記プログラム的インターフェイスを介して取得された前記ランダムデータに少なくとも一部基づいた前記ランダムデータ集のコンテンツを決定し、
そして前記ランダムデータ集を、前記ランダムデータコンシューマに提供する、前記非一時的コンピュータアクセス可能記憶媒体。
２６．  第２５項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、一以上のプロセッサ上で実行された前記命令が、
前記ランダムデータコンシューマに提供される前記データ集の希望する一以上の統計的特性を決定し、
そして前記ランダムデータ集は、前記希望の統計的特性に従って、前記サーバプールの一以上の要素から取得されたランダムデータに少なくとも一部基づいて生成されるべきかを決定する、前記非一時的コンピュータアクセス可能記憶媒体。
２７．  第２５項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、前記ランダムデータ集の前記コンテンツを決定するために、一以上のプロセッサ上で実行された前記命令が、
前記プールの特定要素によって少なくとも一部生成された前記ランダムデータと、前記ランダムデータコンシューマが作動するホストにおいてローカルに生成されたランダムデータを結合する、前記非一時的コンピュータアクセス可能記憶媒体。
２８．  第２５項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、一以上のプロセッサ上で実行された前記命令が、
前記ランダムデータコンシューマに提供される前記ランダムデータ集は、プロバイダネットワークのランダムデータプロデューサとして指定されたサーバの前記プールから取得されたランダムデータに基づいて生成されるべきでないという決定に応じて、前記ランダムデータコンシューマが作動するホストにおいてローカルに生成されたランダムデータを前記ランダムデータコンシューマに提供する、前記非一時的コンピュータアクセス可能記憶媒体。
【００７５】
前述の内容は以下の追加項の一式を参照することで、より理解されるだろう。
１．  ランダムデータを生成するネットワークアクセス可能なサービスを実施するように動作可能なプロバイダネットワークの一以上のコンピューティングデバイスを備えるシステムであって、前記一以上のコンピューティングデバイスが、
前記サービスの一以上のクライアントに提供されるランダムデータのそれぞれの特性を決定することを可能とする一以上のプログラム的インターフェイスを実行し、
前記プロバイダネットワーク内の一以上のデバイスにおける信頼性のあるクライアントへランダムデータを送信するためのセキュリティプロトコルを少なくとも一つ含む、前記一以上のクライアントへランダムデータを送信するための一以上のセキュリティプロトコルを実行し、
そして前記一以上のクライアントの特定クライアントに提供されるランダムデータの決定された特性集合に従って、
前記一以上のクライアント用のランダムデータプロデューサとして指定された前記プロバイダネットワークの一以上のサーバから、前記特定クライアントのためにランダムデータを取得し、
そして前記一以上のサーバから取得した前記ランダムデータの送信を、前記送信用に決定されたセキュリティプロトコルに従って、前記特定クライアントに対応付けられた配信先に宛てて開始するように構成された、
前記システム。
２．  第１項に詳述の前記システムにおいて、前記一以上のプログラム的インターフェイスは、前記特定クライアントに配信される前記ランダムデータの希望する統計的特性を前記特定クライアントが指示可能な特定プログラム的インターフェイスを含む、前記システム。
３．  第１項に詳述の前記システムにおいて、前記一以上のコンピューティングデバイスが、
前記一以上のプログラム的インターフェイスの特定プログラム的インターフェイスを介したインタラクションに少なくとも一部基づいて、前記特定クライアントのために前記ランダムデータが使用されるアプリケーションの種類を決定し、
そして前記アプリケーションの種類に基づいて、前記特定クライアントに提供される前記ランダムデータの一以上の特性を決定するように構成された、
前記システム。
４．  第１項に詳述の前記システムにおいて、前記一以上のコンピューティングデバイスが、
前記特定クライアントのために前記ランダムデータを生成する前記一以上のサーバのうち少なくとも一サーバによって使用される一以上のエントロピーソースを決定するように構成された、
前記システム。
５．  第１項に詳述の前記システムにおいて、前記一以上のコンピューティングデバイスが、
前記ランダムデータを送信するために使用される前記セキュリティプロトコルを、一以上の（ａ）前記特定クライアントによって指示されたセキュリティ選好、（ｂ）前記特定クライアントに対応付けられた推測セキュリティ要件特性、または（ｃ）前記配信先に対応付けられたネットワークアドレス、に少なくとも一部基づいて、機密性、真正性、データ完全性及びリプレイ防護の目標レベルに従って決定するように構成された、
前記システム。
６．  プロバイダネットワークのランダムデータサービスの一以上のクライアントに配信されるランダムデータのそれぞれの特性を決定することを可能とする一以上のプログラム的インターフェイスを実行し、
前記プロバイダネットワーク内の一以上のデバイスにおける信頼性のあるクライアントへランダムデータを送信するためのセキュリティプロトコルを少なくとも一つ含む、前記一以上のクライアントへランダムデータを送信するための一以上のセキュリティプロトコルを実行し、
そして前記一以上のクライアントの特定クライアントに提供されるランダムデータの決定された特性集合に従って、
前記プロバイダネットワークの一以上のサーバから、前記特定クライアントのためにランダムデータを取得し、
そして前記一以上のサーバから取得した前記ランダムデータの送信を、前記特定クライアントに対応付けられた配信先に宛てて開始する
ことを含む方法。
７．  第６項に詳述の前記方法において、前記一以上のプログラム的インターフェイスは、前記特定クライアントに配信される前記ランダムデータの希望する統計的特性を前記特定クライアントが指示可能な特定プログラム的インターフェイスを含む、前記方法。
８．  第６項に詳述の前記方法において、
前記一以上のプログラム的インターフェイスの特定プログラム的インターフェイスを介したインタラクションに少なくとも一部基づいて、前記特定クライアントのために前記ランダムデータが使用されるアプリケーションの種類を決定し、
そして前記アプリケーションの種類に基づいて、前記特定クライアントに提供される前記ランダムデータの一以上の特性を決定する
ことをさらに含む前記方法。
９．  第６項に詳述の前記方法において、
前記特定クライアントのために前記ランダムデータを生成する前記一以上のサーバのうち少なくとも一サーバによって使用可能な一以上のエントロピーソース候補を決定する
ことをさらに含む前記方法。
１０．  第９項に詳述の前記方法において、
前記決定された特性集合に少なくとも一部基づいて前記ランダムデータを生成するのに使用される特定エントロピーソースを、前記一以上のエントロピーソース候補の中から選択する
ことをさらに含む前記方法。
１１．  第６項に詳述の前記方法において、
複数のクライアントにランダムデータを提供するように構成されたランダムデータプロデューサのプールの要素として、前記一以上のサーバを含む、前記プロバイダネットワークのサーバの集合を指定し、
そしてプロデューサ選択基準に従って、前記プールから前記一以上のサーバを選択する
ことをさらに含む前記方法。
１２．  第６項に詳述の前記方法において、
前記ランダムデータを送信するために使用される前記一以上のセキュリティプロトコルの特定セキュリティプロトコルを、一以上の（ａ）前記特定クライアントによって指示されたセキュリティ選好、（ｂ）前記特定クライアントに対応付けられた推測セキュリティ要件特性、または（ｃ）前記配信先に対応付けられたネットワークアドレス、に少なくとも一部基づいて決定することをさらに含み、前記特定セキュリティプロトコルが、機密性、真正性、データ完全性またはリプレイ防護の目標レベルに対するサポートを提供する業界標準セキュリティ機構に少なくとも一部基づいた、
前記方法。
１３．  第６項に詳述の前記方法において、
複数のサポートされている価格設定ポリシーの中からランダムデータに対する価格設定ポリシーを前記サービスのクライアントが選択可能なプログラム的インターフェイスを実行し、
そして前記プログラム的インターフェイスを使って前記特定クライアントが選択した特定価格ポリシーに少なくとも一部基づいて、前記配信先への前記ランダムデータの提供に対する請求額を決定する
ことをさらに含む前記方法。
１４．  第６項に詳述の前記方法において、
前記特定クライアントに対応付けられた前記配信先へ前記ランダムデータを送信するための特定プログラム的インターフェイスを実行し、
そして前記特定プログラム的インターフェイスに対応付けられた前記ランダムデータの送信を開始する
ことをさらに含む方法。
１５．  第１４項に詳述の前記方法において、前記特定クライアントのクライアントアプリケーションが作動するホストにおいて前記配信先が媒体コンポーネントを備え、前記クライアントアプリケーションが、別のプログラム的インターフェイスを使って前記媒体コンポーネントからのランダムデータを取得するように構成され、前記方法はさらに、
前記媒体コンポーネントによって、前記ランダムデータを取得するための前記特定プログラム的インターフェイスに基づいて要求を送信し、
そして前記クライアントアプリケーションに変更を施すことなく、前記媒体コンポーネントにより前記別のプログラム的インターフェイスを介して前記クライアントアプリケーションに対し、少なくとも前記ランダムデータの部分を提供する
ことを含む前記方法。
１６．  第１４項に詳述の前記方法において、前記配信先は前記特定クライアントのクライアントアプリケーションを備え、前記方法はさらに、
前記クライアントアプリケーションによって、前記ランダムデータを取得するための前記特定プログラム的インターフェイスに基づいて要求を送信する
ことを含む前記方法。
１７．  第６項に詳述の前記方法において、
前記一以上のクライアントへランダムデータを提供するのに対応付けられた一意性ポリシーを実施することをさらに含み、前記一意性ポリシーが、前記ランダムデータサービスにより提供された一ランダムデータ集合のコンテンツを、前記サービスにより提供された任意の他のランダムデータ集合のコンテンツに基づいて予測されるのを防ぐことを対象とする、
前記方法。
１８．  第６項に詳述の前記方法において、前記特定クライアントが特定ホスト上で作動するソフトウェアコンポーネントを備え、前記特定クライアントに対応付けられた前記配信先が、前記特定ホスト上で作動するローカルアグリゲータを備え、前記方法はさらに、
前記サービスによって送信された前記ランダムデータと、前記特定ホストにおいてローカルに生成された追加ランダムデータを、前記特定ホストの前記ローカルアグリゲータによって結合し、
そして前記サービスによって送信された前記ランダムデータとローカル生成された前記ランダムデータの前記結合結果を、前記ローカルアグリゲータによって前記アプリケーションに提供する
ことを含む前記方法。
１９．  第１８項に詳述の前記方法において、前記追加ランダムデータはローカルエントロピーソースから取得されたデータ値シーケンスの少なくとも一部に基づいてローカルに生成され、前述の結合処理には、前記サービスによって送信された前記ランダムデータを前記シーケンスに含めることも含む、前記方法。
２０．  第６項に詳述の前記方法において、前記ランダムデータが取得された元の前記一以上のサーバは複数のサーバを備え、前記方法はさらに、
前記プロバイダネットワークのアグリゲータサーバにおいて、前記複数のサーバの第一サーバにおいて生成されたランダムデータと前記複数のサーバの第二サーバにおいて生成されたランダムデータを結合し、
そして前記第一及び第二サーバによって送信された前記ランダムデータの前記結合結果を、前記アグリゲータサーバから前記配信先に提供する
ことを含む前記方法。
２１．  プログラム命令を記憶する非一時的コンピュータアクセス可能記憶媒体であって、一以上のプロセッサ上で実行された前記プログラム命令が、
プロバイダネットワークのランダムデータサービスの一以上のクライアントに配信されるランダムデータのそれぞれの特性を決定することを可能とする一以上のプログラム的インターフェイスを実行し、
前記プロバイダネットワーク内の一以上のデバイスにおける信頼性のあるクライアントへランダムデータを送信するためのセキュリティプロトコルを少なくとも一つ含む、前記一以上のクライアントへランダムデータを送信するための一以上のセキュリティプロトコルを実行し、
そして前記一以上のクライアントの特定クライアントに提供されるランダムデータの決定された特性集合に従って、
前記プロバイダネットワークの一以上のサーバから、前記特定クライアントのためにランダムデータを取得し、
そして前記一以上のサーバから取得した前記ランダムデータの送信を、前記特定クライアントに対応付けられた配信先に宛てて開始する、
前記非一時的コンピュータアクセス可能記憶媒体。
２２．  第２１項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、前記一以上のセキュリティプロトコルが、前記プロバイダネットワークの外部の一以上のデバイスにおける信頼性のないクライアントへランダムデータを送信するためのセキュリティプロトコルを少なくとも一つ含む、前記非一時的コンピュータアクセス可能記憶媒体。
２３．  第２１項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、前記一以上のプログラム的インターフェイスは、前記特定クライアントに配信される前記ランダムデータの希望する統計的特性を前記特定クライアントが指示可能な特定プログラム的インターフェイスを含む、前記非一時的コンピュータアクセス可能記憶媒体。
２４．  第２１項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、前記一以上のプロセッサ上で実行された前記命令が、
前記一以上のプログラム的インターフェイスの特定プログラム的インターフェイスを介したインタラクションに少なくとも一部基づいて、前記特定クライアントのために前記ランダムデータが使用されるアプリケーションの種類を決定し、
そして前記アプリケーションの種類に基づいて、前記特定クライアントに提供される前記ランダムデータの一以上の特性を決定する、
前記非一時的コンピュータアクセス可能記憶媒体。
２５．  第２１項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、前記一以上のプロセッサ上で実行された前記命令が、
前記特定クライアントのために前記ランダムデータを生成する前記一以上のサーバのうち少なくとも一サーバによって使用可能な一以上のエントロピーソース候補を決定する、
前記非一時的コンピュータアクセス可能記憶媒体。
２６．  第２５項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、前記一以上のプロセッサ上で実行された前記命令が、
前記決定された特性集合に少なくとも一部基づいて前記ランダムデータを生成するのに使用される特定エントロピーソースを、前記一以上のエントロピーソース候補の中から選択する、
前記非一時的コンピュータアクセス可能記憶媒体。
２７．  第２１項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、前記一以上のプロセッサ上で実行された前記命令が、
複数のクライアントにランダムデータを提供するように構成されたランダムデータプロデューサのプールの要素として、前記一以上のサーバを含む、前記プロバイダネットワークのサーバの集合を指定し、
そしてプロデューサ選択基準に従って、前記プールから前記一以上のサーバを選択する、
前記非一時的コンピュータアクセス可能記憶媒体。
２８．  第２１項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、前記一以上のプロセッサ上で実行された前記命令が、
前記ランダムデータを送信するために使用される前記一以上のセキュリティプロトコルの特定セキュリティプロトコルを、一以上の（ａ）前記特定クライアントによって指示されたセキュリティ選好、（ｂ）前記特定クライアントに対応付けられた推測セキュリティ要件特性、または（ｃ）前記配信先に対応付けられたネットワークアドレス、に少なくとも一部基づいて決定する、
前記非一時的コンピュータアクセス可能記憶媒体。
２９．  第２１項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、前記一以上のプロセッサ上で実行された前記命令が、
複数のサポートされている価格設定ポリシーの中からランダムデータに対する価格設定ポリシーを前記サービスのクライアントが選択可能な特定のプログラム的インターフェイスを実行し、
そして前記特定プログラム的インターフェイスを使って前記特定クライアントが選択した特定価格ポリシーに少なくとも一部基づいて、前記配信先への前記ランダムデータの提供に対する請求額を決定する、
前記非一時的コンピュータアクセス可能記憶媒体。
３０．  第２９項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、前記複数のサポートされている価格設定ポリシーには、一以上の（ａ）前記配信先に提供されたランダムデータ量に基づいて前記特定クライアントの請求金額を決定する価格設定ポリシー、（ｂ）前記配信先にランダムデータが提供された速度に基づいて前記特定クライアントの請求金額を決定する価格設定ポリシー、（ｃ）前記配信先に提供された少なくとも前記ランダムデータの部分に対応付けられた品質基準に基づいて前記特定クライアントの請求金額を決定する価格設定ポリシー、または（ｄ）前記配信先に提供された少なくとも前記ランダムデータの部分を取得するのに使用されたエントロピーソースに基づいて前記特定クライアントの請求金額を決定する価格設定ポリシー、以上が含まれる、前記非一時的コンピュータアクセス可能記憶媒体。
３１．  第２１項に詳述の前記非一時的コンピュータアクセス可能記憶媒体において、前記一以上のプロセッサ上で実行された前記命令が、
前記特定クライアントに対応付けられた前記配信先へ前記ランダムデータを送信するための特定プログラム的インターフェイスを実行し、
そして前記特定プログラム的インターフェイスに対応付けられた前記ランダムデータの送信を開始する、
前記非一時的コンピュータアクセス可能記憶媒体。
結論
【００７６】
様々な実施形態はさらに、コンピュータアクセス可能媒体に関する前述の説明に従って実行される命令及び／またはデータの受信、送信または記憶処理も含みうる。一般的にコンピュータアクセス可能媒体には、磁気媒体または光学式媒体等の記憶媒体またはメモリ媒体が含まれる。例えば、ディスクまたはＤＶＤ／ＣＤ‐ＲＯＭ、そしてＲＡＭ（例、ＳＤＲＡＭ、ＤＤＲ、ＲＤＲＡＭ、ＳＲＡＭ等）、ＲＯＭ等の揮発性または不揮発性媒体、同様に送信媒体や、ネットワーク及び／または無線リンク等のコミュニケーション媒体を介して伝達される電気、電磁またはデジタル信号等の信号が含まれる。
【００７７】
本文で図示及び記述された様々な前記方法は、方法の例示的実施形態を表す。前記方法は、ソフトウェア、ハードウェアまたはそれらの組合せにおいて実施される。前記方法の順序は変更され、そして様々な要素が追加、並替、結合、省略、修正等される。
【００７８】
本開示の恩恵を受ける当業者に明らかであろう様々な修正及び変更が行われる。全てのそのような修正及び変更を含み、そして前述の説明は適宜、制限的な意味ではなく実例的な意味で見られるものとする。
【図１】
2016510137.tif 000003
【図２】
2016510137.tif 000004
【図３】
2016510137.tif 000005
【図４】
2016510137.tif 000006
【図５】
2016510137.tif 000007
【図６】
2016510137.tif 000008
【図７】
2016510137.tif 000009
【図８】
2016510137.tif 000010
【図９】
2016510137.tif 000011
【図１０】
2016510137.tif 000012
【図１１】
2016510137.tif 000013
【図１２】
2016510137.tif 000014
【図１３】
2016510137.tif 000015
【図１４】
2016510137.tif 000016
【図１５】
2016510137.tif 000017
【図１６】
2016510137.tif 000018
【図１７】
2016510137.tif 000019
【国際調査報告】
2016510137.tif 000020