トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 フューチャデリバリマルチキャストのための時間窓によって制約されたマルチキャスト
【発明者】 【氏名】ベンカタ エヌ.パッドマナブハン

【氏名】ルイス フェリペ カブレラ

【要約】 【課題】必要なだけの数の多様なクライアントにできる限り公正に所与の時間フレーム内でイベントを送信する。

【解決手段】イベントのリリース時刻より前に暗号化したイベントを送信し、そのイベントをイベントのリリース時刻に、または別の時刻に暗号解読するための小さく効率的に伝送される鍵を配信して、各クライアントが、リリース時刻の後、ほぼ同時刻にイベントを受け取るようにすることにより、多様な帯域幅を有するクライアントにイベントを配信する。
【特許請求の範囲】
【請求項1】 所定のリリース時刻にリリースされることを意図する情報を有するイベントをネットワーク環境を介して少なくとも2つのクライアントに公正に配信するための方法であって、前記リリース時刻より前に起点のサーバから少なくとも2つのクライアントに暗号化されたイベントを送信するステップ、および前記リリース時刻より後に鍵サーバから前記少なくとも2つのクライアントに暗号解読の鍵を送信するステップを含むことを特徴とする方法。
【請求項2】 前記暗号解読の鍵を送信するステップは、前記リリース時刻の直後に行われることを特徴とする請求項1に記載の方法。
【請求項3】 前記暗号解読の鍵を送信するステップは、前記少なくとも2つのクライアントのすべてが、前記暗号化されたイベントを受信するのを完了した後に行われることを特徴とする請求項1に記載の方法。
【請求項4】 前記イベントが、所定の終了時刻より前にリリースされることを意図し、また前記少なくとも2つのクライアントのすべてが、最終の鍵送信時刻より後に前記暗号化されたイベントの受信を完了する場合、前記少なくとも2つのクライアントのすべてが、前記暗号化されたイベントの受信を完了するのに先立って前記暗号解読の鍵を送信するステップが行われ、前記最終の鍵送信時刻は、前記少なくとも2つのクライアントのすべてへの前記鍵の伝送を可能にするのに十分なだけ前記終了時刻より前の時刻であることを特徴とする請求項1に記載の方法。
【請求項5】 前記リリース時刻より前に、前記基点のサーバから信頼されるエッジサーバに暗号化されていないイベントを送信するステップであって、そこでは前記信頼されるエッジサーバは、前記起点のサーバと接続のクライアントとの間の通信パス中のサーバであり、前記信頼されるエッジサーバは適切な時刻より前に情報をリリースすることがないと信頼されるステップ、および前記暗号解読の鍵が前記少なくとも2つのクライアントによって受信されるのとほぼ同時刻に、前記暗号化されていないイベントを第2のクライアントによって受信可能にする第2のクライアント送信時刻に、前記暗号化されていないイベントを前記第2のクライアントに送信するステップをさらに含むことを特徴とする請求項1に記載の方法。
【請求項6】 前記暗号解読の鍵が前記少なくとも2つのクライアントによって受信されるのとほぼ同時刻に、前記暗号化されていないイベントが第3のクライアントによって受信可能にする第3のクライアント送信時刻に、前記暗号化されていないイベントを前記第3のクライアントに送信するステップをさらに含むことを特徴とする請求項5に記載の方法。
【請求項7】 前記第2のクライアント送信時刻は、前記暗号化されていないイベントが、前記少なくとも2つのクライアントによって前記暗号解読の鍵が受信されるのとほぼ同時刻に、前記第2のクライアントまたは前記第3のクライアントのどちらか前記暗号化されていないイベントを先に受信すると予期される方によって受信可能となし、前記第2のクライアント送信時刻に前記第3のクライアントに前記暗号化されていないイベントを送信するステップをさらに含むことを特徴とする請求項5に記載の方法。
【請求項8】 前記鍵サーバは、2つまたはそれより多くの鍵サーバを含むことを特徴とする請求項1に記載の方法。
【請求項9】 前記暗号解読の鍵を送信するステップは、調整された鍵送信時刻に行われ、該鍵送信時刻は前記ネットワーク環境の中のすべてのクライアントが前記暗号化されたイベントをいつ受信するかに基づくことを特徴とする請求項1に記載の方法。
【請求項10】 前記暗号解読の鍵を送信するステップは、前記暗号解読の鍵の少なくとも1つのコピーを含む鍵メッセージをマルチキャストするステップを含むことを特徴とする請求項1に記載の方法。
【請求項11】 所定のリリース時刻にリリースされることを意図する情報を有するイベントをネットワーク環境を介して第1のクライアントに公正に配信するための方法であって、起点のサーバから、信頼されるエッジサーバに暗号化されたイベントを送信するステップであって、そこでは、前記信頼されるサーバは前記起点のサーバと、接続のクライアントとの間の通信パス中のサーバであり、前記信頼されるエッジサーバは適切な時刻より前に情報をリリースすることがないと信頼されるステップ、前記信頼されるエッジサーバにおいて前記暗号化されたイベントを暗号解読すること、および第1のクライアント送信時刻に前記信頼されるエッジサーバから前記第1のクライアントに暗号解読されたイベントを送信するステップであって、前記第1のクライアント送信時刻は、前記暗号解読されたイベントの前記第1のクライアントへの第1の予期される伝送時間、および前記第1のクライアントが前記暗号解読されたイベントを受信する第1のクライアント着信時刻に相関し、前記第1のクライアント着信時刻は、前記リリース時刻より後であるステップを含むことを特徴とする方法。
【請求項12】 前記第1の予期される伝送時間が、前記信頼されるエッジサーバと前記第1のクライアントの間の接続履歴を参照して判定されることを特徴とする請求項11に記載の方法。
【請求項13】 前記第1の予期される伝送時間が、前記信頼されるエッジサーバと前記第1のクライアントの間の第1のクライアント待ち時間をテストするネットワーク機能の結果を参照して判定されることを特徴とする請求項11に記載の方法。
【請求項14】 前記第1のクライアント着信時刻は、前記リリース時刻であることを特徴とする請求項11に記載の方法。
【請求項15】 第2のクライアント送信時刻に前記信頼されるエッジサーバから第2のクライアントに前記暗号解読されたイベントを送信するステップであって、そこでは、前記第2のクライアント送信時刻は、前記第2のクライアントへの前記暗号解読されたイベントの第2の予期される伝送時間、および前記第2のクライアントが前記暗号解読されたイベントを受信する第2のクライアント着信時刻に相関し、前記第2のクライアント着信時刻は、前記リリース時刻より後であるステップをさらに含むことを特徴とする請求項11に記載の方法。
【請求項16】 前記第1のクライアント送信時刻は前記第2のクライアント送信時刻であることを特徴とする請求項15に記載の方法。
【請求項17】 前記第1のクライアント着信時刻は、前記第2のクライアント着信時刻であることを特徴とする請求項15に記載の方法。
【請求項18】 前記第1のクライアント着信時刻は、第2のクライアント鍵受信時刻とほぼ同一であり、前記リリース時刻より前に前記起点のサーバから第2のクライアントに前記暗号化されたイベントを送信するステップ、および前記リリース時刻より後に鍵サーバから前記第2のクライアントに暗号解読の鍵を送信し、前記第2のクライアントは、前記第2のクライアント鍵受信時刻に前記暗号解読の鍵を受信するステップをさらに含むことを特徴とする請求項11に記載の方法。
【請求項19】 少なくとも2つのクライアントにネットワーク環境を介してイベントを公正に配信するための方法であって、前記少なくとも2つのクライアントに暗号化されたイベントを送信するステップ、および前記少なくとも2つのクライアントのすべてが前記暗号化されたイベントを受信した後、前記少なくとも2つのクライアントに暗号解読の鍵を送信するステップを含むことを特徴とする方法。
【請求項20】 信頼されるエッジサーバに暗号化されていないイベントを送信するステップであって、そこでは、信頼されるエッジサーバは前記ネットワーク環境の中のサーバであり、前記信頼されるエッジサーバは適切な時刻より前に情報をリリースすることがないと信頼されるステップ、および前記暗号解読の鍵が前記少なくとも2つのクライアントによって受信されるのとほぼ同時刻に、前記暗号化されていないイベントを第2のクライアントによって受信可能にする第2のクライアント送信時刻に、前記暗号化されていないイベントを前記第2のクライアントに送信するステップをさらに含むことを特徴とする請求項19に記載の方法。
【請求項21】 信頼されるエッジサーバに暗号化されたイベントを送信するステップであって、そこでは、前記信頼されるエッジサーバは前記ネットワーク環境の中のサーバであり、前記信頼されるエッジサーバは適切な時刻より前に情報をリリースすることがないと信頼されるステップ、前記信頼されるエッジサーバにおいて前記暗号化されたイベントを暗号解読するステップ、および第2のクライアント送信時刻に前記信頼されるエッジサーバから第2のクライアントに暗号解読されたイベントを送信するステップであって、そこでは、前記第2のクライアント送信時刻は、前記暗号解読されたイベントの前記第2のクライアントへの第2の予期される伝送時間、および前記第2のクライアントが前記暗号解読されたイベントを受信する第2のクライアント着信時刻に相関し、前記第2のクライアント着信時刻は、前記暗号解読の鍵が前記少なくとも2つのクライアントによって受信されるのとほぼ同時刻であるステップをさらに含むことを特徴とする請求項19に記載の方法。
【請求項22】 前記第2の予期される伝送時間が、前記信頼されるエッジサーバと前記第2のクライアントの間の接続履歴を参照して判定されることを特徴とする請求項21に記載の方法。
【請求項23】 前記第2の予期される伝送時間が、前記信頼されるエッジサーバと前記第2のクライアントの間の第2のクライアント待ち時間をテストするネットワーク機能の結果を参照して判定されることを特徴とする請求項21に記載の方法。
【請求項24】 所定のリリース時刻にリリースされることを意図する情報を有するイベントを少なくとも2つのクライアントにネットワーク環境を介して公正に配信するためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、前記リリース時刻より前に起点のサーバから前記少なくとも2つのクライアントに暗号化されたイベントを送信するステップ、および前記リリース時刻より後に鍵サーバから前記少なくとも2つのクライアントに暗号解読の鍵を送信するステップを実行することを特徴とするコンピュータ可読媒体。
【請求項25】 前記暗号解読の鍵を送信するステップは、前記少なくとも2つのクライアントが前記暗号化されたイベントの受信を完了した後に行われることを特徴とする請求項24に記載のコンピュータ可読媒体。
【請求項26】 前記コンピュータ実行可能命令は、前記リリース時刻より前に前記起点のサーバから、信頼されるエッジサーバに暗号化されていないイベントを送信するステップであって、そこでは、前記信頼されるエッジサーバは前記起点のサーバと、接続のクライアントとの間の通信パス中のサーバであり、前記信頼されるエッジサーバは適切な時刻より前に情報をリリースすることがないと信頼されるステップ、および前記暗号解読の鍵が前記少なくとも2つのクライアントによって受信されるのとほぼ同時刻に、前記暗号化されていないイベントが第2のクライアントによって受信可能にする第2のクライアント送信時刻に、前記暗号化されていないイベントを前記第2のクライアントに送信するステップをさらに実行することを特徴とする請求項24に記載のコンピュータ可読媒体。
【請求項27】 前記コンピュータ実行可能命令は、前記暗号解読の鍵が前記少なくとも2つのクライアントによって受信されるのとほぼ同時刻に、前記暗号化されていないイベントが第3のクライアントによって受信可能にする第3のクライアント送信時刻に、前記暗号化されていないイベントを前記第3のクライアントに送信するステップをさらに実行することを特徴とする請求項26に記載のコンピュータ可読媒体。
【請求項28】 前記第2のクライアント送信時刻は、前記暗号化されていないイベントが、前記少なくとも2つのクライアントによって前記暗号解読の鍵が受信されるのとほぼ同時刻に、前記第2のクライアントまたは前記第3のクライアントのどちらか前記暗号化されていないイベントを先に受信すると予期される方によって受信可能となし、前記コンピュータ実行可能命令は、前記第2のクライアント送信時刻に前記第3のクライアントに前記暗号化されていないイベントを送信するステップをさらに実行することを特徴とする請求項26に記載のコンピュータ可読媒体。
【請求項29】 前記鍵サーバは、2つまたはそれより多くの鍵サーバを含むことを特徴とする請求項24に記載のコンピュータ可読媒体。
【請求項30】 前記暗号解読の鍵を送信するステップは、調整された鍵送信時刻に行われ、前記鍵送信時刻は前記ネットワーク環境の中のすべてのクライアントが前記暗号化されたイベントをいつ受信するかに基づくことを特徴とする請求項24に記載のコンピュータ可読媒体。
【請求項31】 所定のリリース時刻にリリースされることを意図する情報を有するイベントを第1のクライアントにネットワーク環境を介して公正に配信するためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、起点のサーバから、信頼されるエッジサーバに暗号化されたイベントを送信するステップであって、そこでは、前記信頼されるエッジサーバは前記起点のサーバと、接続のクライアントの間との通信パス中のサーバであり、前記信頼されるエッジサーバは適切な時刻より前に情報をリリースすることがないと信頼されるステップ、前記信頼されるエッジサーバにおいて前記暗号化されたイベントを暗号解読するステップ、および第1のクライアント送信時刻に前記信頼されるエッジサーバから前記第1のクライアントに暗号解読されたイベントを送信するステップであって、そこでは、前記第1のクライアント送信時刻は、前記暗号解読されたイベントの前記第1のクライアントへの第1の予期される伝送時間、および前記第1のクライアントが前記暗号解読されたイベントを受信する第1のクライアント着信時刻に相関し、前記第1のクライアント着信時刻は、前記リリース時刻より後であるステップを実行することを特徴とするコンピュータ可読媒体。
【請求項32】 前記第1の予期される伝送時間が、前記信頼されるエッジサーバと前記第1のクライアントの間の接続履歴を参照して判定されることを特徴とする請求項31に記載のコンピュータ可読媒体。
【請求項33】 前記第1の予期される伝送時間が、前記信頼されるエッジサーバと前記第1のクライアントの間の第1のクライアント待ち時間をテストするネットワーク機能の結果を参照して判定されることを特徴とする請求項31に記載のコンピュータ可読媒体。
【請求項34】 前記コンピュータ実行可能命令は、第2のクライアント送信時刻に前記信頼されるエッジサーバから第2のクライアントに前記暗号解読されたイベントを送信するステップであって、そこでは、前記第2のクライアント送信時刻は、前記第2のクライアントへの前記暗号解読されたイベントの第2の予期される伝送時間、および前記第2のクライアントが前記暗号解読されたイベントを受信する第2のクライアント着信時刻に相関し、前記第2のクライアント着信時刻は、前記リリース時刻より後であるステップをさらに実行することを特徴とする請求項31に記載のコンピュータ可読媒体。
【請求項35】 前記第1のクライアント送信時刻は、前記第2のクライアント送信時刻であることを特徴とする請求項34に記載のコンピュータ可読媒体。
【請求項36】 前記第1のクライアント着信時刻は、前記第2のクライアント着信時刻であることを特徴とする請求項34に記載のコンピュータ可読媒体。
【請求項37】 前記第1のクライアント着信時刻は、第2のクライアント鍵受信時刻とほぼ同一であり、前記コンピュータ実行可能命令は、前記リリース時刻より前に前記起点のサーバから第2のクライアントに前記暗号化されたイベントを送信するステップ、および前記リリース時刻より後に鍵サーバから前記第2のクライアントに暗号解読の鍵を送信ステップであって、前記第2のクライアントは前記第2のクライアント鍵受信時刻に前記暗号解読の鍵を受信するステップを実行することを特徴とする請求項31に記載のコンピュータ可読媒体。
【請求項38】 イベントを少なくとも2つのクライアントにネットワーク環境を介して公正に配信するためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、前記少なくとも2つのクライアントに暗号化されたイベントを送信するステップ、および前記少なくとも2つのクライアントのすべてが前記暗号化されたイベントを受信した後、前記少なくとも2つのクライアントに暗号解読の鍵を送信するステップを実行することを特徴とするコンピュータ可読媒体。
【請求項39】 前記コンピュータ実行可能命令は、信頼されるエッジサーバに暗号化されたイベントを送信するステップであって、そこでは、前記信頼されるエッジサーバは前記ネットワーク環境の中のサーバであり、前記信頼されるエッジサーバは適切な時刻より前に情報をリリースすることがないと信頼されるステップ、前記信頼されるエッジサーバにおいて前記暗号化されたイベントを暗号解読するステップ、および第2のクライアント送信時刻に前記信頼されるエッジサーバから第2のクライアントに暗号解読されたイベントを送信するステップであって、そこでは、前記第2のクライアント送信時刻は、前記暗号解読されたイベントの前記第2のクライアントへの第2の予期される伝送時間、および前記第2のクライアントが前記暗号解読されたイベントを受信する第2のクライアント着信時刻に相関し、前記第2のクライアント着信時刻は、前記暗号解読の鍵が前記少なくとも2つのクライアントによって受信されるのとほぼ同時刻であるステップを実行することを特徴とする請求項38に記載のコンピュータ可読媒体。
【請求項40】 所定のリリース時刻にリリースされることを意図する情報を有するイベントを公正に配信するためのシステムであって、起点のサーバと、適切な時刻より前に情報をリリースすることがないと信頼され、前記起点のサーバと、接続されたクライアントとの間の通信パス中のサーバである、信頼されるエッジサーバと、鍵サーバと、少なくとも2つのクライアントとを含み、前記起点のサーバは、前記リリース時刻より前に前記少なくとも2つのクライアントに暗号化されたイベントを送信し、また前記鍵サーバは、前記リリース時刻より後に前記少なくとも2つのクライアントに暗号解読の鍵を送信することを特徴とするシステム。
【請求項41】 前記鍵サーバは、前記少なくとも2つのクライアントのすべてが前記暗号化されたイベントを受信するのを完了した後に前記暗号解読の鍵を送信することを特徴とする請求項40に記載のシステム。
【請求項42】 第2のクライアントをさらに含み、前記起点のサーバは、前記信頼されるエッジサーバに暗号化されていないイベントを送信し、また前記信頼されるエッジサーバは、前記暗号解読の鍵が前記少なくとも2つのクライアントによって受信されるのとほぼ同時刻に、前記暗号化されていないイベントが前記第2のクライアントによって受信されるのを可能にする第2のクライアント送信時刻に、前記暗号化されていないイベントを前記第2のクライアントに送信することを特徴とする請求項40に記載のシステム。
【請求項43】 前記少なくとも2つのクライアントに前記暗号化されたイベントを送信する前記起点のサーバは、前記信頼されるエッジサーバに暗号解読されていないイベントを送信する起点のサーバ、、前記暗号化されていないイベントを暗号化する、信頼されるエッジサーバ、および前記暗号化されたイベントを前記少なくとも2つのクライアントに送信する、信頼されるエッジサーバを含むことを特徴とする請求項40に記載のシステム。
【請求項44】 前記鍵サーバは調整された鍵送信時刻に前記暗号解読の鍵を送信し、前記調整された鍵送信時刻は前記少なくとも2つのクライアントが前記暗号化されたイベントをいつ受信するかに基づくことを特徴とする請求項40に記載のシステム。
【請求項45】 第2のクライアントをさらに含み、前記起点のサーバは前記信頼されるエッジサーバに前記暗号化されたイベントを送信し、前記鍵サーバは前記信頼されるエッジサーバに前記暗号解読の鍵を送信し、前記信頼されるエッジサーバは、前記暗号化されたイベントを暗号解読し、前記信頼されるエッジサーバは、前記暗号解読の鍵が前記少なくとも2つのクライアントによって受信されるのとほぼ同時刻に、前記暗号解読されたイベントが前記第2のクライアントによって受信可能にする第2のクライアント送信時刻に、前記暗号解読されたイベントを前記第2のクライアントに送信することを特徴とする請求項40に記載のシステム。
【請求項46】 前記鍵サーバは、前記暗号解読の鍵の少なくとも1つのコピーを含む鍵メッセージをマルチキャストすることを特徴とする請求項40に記載のシステム。
【請求項47】 所定のリリース時刻にリリースされることを意図する情報を有するイベントを公正に配信するためのシステムであって、起点のサーバと、適切な時刻より前に情報をリリースすることがないものと信頼することができる、前記起点のサーバと接続されたクライアントの間の通信パス中のサーバである、信頼されるエッジサーバと、第1のクライアントとを含み、前記信頼されるエッジサーバは、第1のクライアント送信時刻に前記第1のクライアントに暗号化されていないイベントを送信し、前記第1のクライアント送信時刻は、前記暗号解読されたイベントの前記第1のクライアントへの第1の予期される伝送時間、および前記第1のクライアントが前記暗号解読されたイベントを受信する第1のクライアント着信時刻に相関し、前記第1のクライアント着信時刻は、前記リリース時刻より後であることを特徴とするシステム。
【請求項48】 第2のクライアントをさらに含み、前記起点のサーバは、前記信頼されるエッジサーバに暗号化されたイベントを送信し、前記信頼されるエッジサーバは、前記暗号化されたイベントを暗号解読し、また前記信頼されるエッジサーバは、前記暗号解読されたイベントを前記第2のクライアントに送信して、前記第2のクライアントが、ほぼ前記第1のクライアント着信時刻に前記暗号解読されたイベントを受信するようにすることを特徴とする請求項47に記載のシステム。
【請求項49】 前記第1の予期される伝送時間が、前記信頼されるエッジサーバと前記第1のクライアントの間の接続履歴を参照して判定されることを特徴とする請求項47に記載のシステム。
【請求項50】 前記第1の予期される伝送時間が、前記信頼されるエッジサーバと前記第1のクライアントの間の第1のクライアント待ち時間をテストするネットワーク機能の結果を参照して判定されることを特徴とする請求項47に記載のシステム。
【請求項51】 第2のクライアント送信時刻に前記信頼されるエッジサーバから第2のクライアントに前記暗号化されていないイベントを送信し、前記第2のクライアント送信時刻は、前記第2のクライアントへの前記暗号化されていないイベントの第2の予期される伝送時間、および前記第2のクライアントが前記暗号化されていないイベントを受信する第2のクライアント着信時刻に相関し、前記第2のクライアント着信時刻は、前記リリース時刻より後であることを特徴とする請求項47に記載のシステム。
【請求項52】 前記第1のクライアント送信時刻は、前記第2のクライアント送信時刻であることを特徴とする請求項51に記載のシステム。
【請求項53】 前記第1のクライアント着信時刻は、前記第2のクライアント着信時刻であることを特徴とする請求項51に記載のシステム。
【請求項54】 鍵サーバをさらに含み、前記起点のサーバは、前記リリース時刻より前に第2のクライアントに暗号化されたイベントを送信し、また前記鍵サーバは、前記リリース時刻より後に前記第2のクライアントに暗号解読の鍵を送信し、前記第2のクライアントは、前記第1のクライアント着信時刻に前記暗号解読の鍵を受信することを特徴とする請求項47に記載のシステム。
【請求項55】 イベントを公正に配信するためのシステムであって、サーバと、少なくとも2つのクライアントとを含み、前記サーバは、前記少なくとも2つのクライアントに暗号化されたイベントを送信し、また前記サーバは、前記少なくとも2つのクライアントのすべてが前記暗号化されたイベントを受信した後に前記少なくとも2つのクライアントに暗号解読の鍵を送信することを特徴とするシステム。
【請求項56】 第2のクライアントをさらに含み、前記サーバは、適切な時刻より前に情報をリリースすることがないものと信頼することができるサーバである信頼されるエッジサーバであり、前記信頼されるエッジサーバは、前記暗号解読の鍵が前記少なくとも2つのクライアントによって受信されるのとほぼ同時刻に、前記暗号化されていないイベントが前記第2のクライアントによって受信可能にする第2のクライアント送信時刻に、暗号化されていないイベントを前記第2のクライアントに送信することを特徴とする請求項55に記載のシステム。
【請求項57】 第2のクライアントをさらに含み、前記サーバは、適切な時刻より前に情報をリリースすることがないものと信頼することができるサーバである信頼されるエッジサーバであり、またさらに前記信頼されるエッジサーバは、暗号化されたイベントを受信し、前記暗号化されたイベントを暗号解読し、前記暗号解読の鍵が前記少なくとも2つのクライアントによって受信されるのとほぼ同時刻に、前記暗号解読されたイベントが前記第2のクライアントによって受信されるのを可能にする第2のクライアント送信時刻に、前記暗号解読されたイベントを前記第2のクライアントに送信することを特徴とする請求項55に記載のシステム。
【請求項58】 前記第2のクライアント送信時刻が、前記信頼されるエッジサーバと前記第2のクライアントの間の接続履歴を参照して判定されることを特徴とする請求項57に記載のシステム。
【請求項59】 前記第2のクライアント送信時刻が、前記信頼されるエッジサーバと前記第2のクライアントの間の第2のクライアント待ち時間をテストするネットワーク機能の結果を参照して判定されることを特徴とする請求項57に記載のシステム。
【請求項60】 所定のリリース時刻にリリースされることを意図する情報を有するイベントをネットワーク環境を介して少なくとも2つのクライアントに公正に配信するための方法であって、前記リリース時刻より前に起点のサーバから前記少なくとも2つのクライアントに暗号化されたイベントを送信するステップと、前記リリース時刻より後に鍵サーバから前記少なくとも2つのクライアントに暗号解読の鍵を送信するステップとを含むことを特徴とする方法。
【請求項61】 前記暗号解読の鍵を前記送信するステップは、前記少なくとも2つのクライアントのすべてが前記暗号化されたイベントを受信した後に行われることを特徴とする請求項60に記載の方法。
【請求項62】 前記リリース時刻より前に前記起点のサーバから信頼されるエッジサーバに暗号化されていないイベントを送信するステップであって、そこでは、前記信頼されるエッジサーバは前記起点のサーバと、接続されたクライアントとの間の通信パス中のサーバであり、前記信頼されるエッジサーバは、適切な時刻より前に情報をリリースすることがないと信頼されるステップと、前記暗号解読の鍵が前記少なくとも2つのクライアントによって受信されるのとほぼ同時刻に、前記暗号化されていないイベントが第2のクライアントによって受信可能にする第2のクライアント送信時刻に、前記暗号化されていないイベントを前記第2のクライアントに送信するステップとをさらに含むことを特徴とする請求項60に記載の方法。
【請求項63】 適切な時刻より前に情報をリリースすることがないと信頼することができ、前記起点のサーバと、接続されたクライアントの間の通信パス中のサーバである、信頼されるエッジサーバであって、リリース時刻より前に、前記リリース時刻にリリースされることを意図する情報を有する暗号化されたイベントを前記第1のクライアントに送信するための手段と、前記リリース時刻より後に前記第1のクライアントに暗号解読の鍵を送信するための手段とを含むことを特徴とするサーバ。
【請求項64】 前記暗号解読の鍵の送信は、前記第1のクライアントが前記暗号化されたイベントを受信するのを完了した後に行われることを特徴とする請求項63に記載の信頼されるエッジサーバ。
【請求項65】 前記暗号化されたイベントを暗号解読するための手段と、前記暗号解読の鍵が前記第1のクライアントによって受信されるのとほぼ同時刻に、前記暗号解読されたイベントが第2のクライアントによって受信可能にする第2のクライアント送信時刻に、前記暗号解読されたイベントを前記第2のクライアントに送信するための手段とをさらに含むことを特徴とする請求項63に記載の信頼されるエッジサーバ。
【請求項66】 前記第2のクライアント送信時刻が、前記信頼されるエッジサーバと前記第2のクライアントの間の接続履歴を参照して判定されることを特徴とする請求項65に記載の信頼されるエッジサーバ。
【請求項67】 前記第2のクライアント送信時刻が、前記信頼されるエッジサーバと前記第2のクライアントの間の第2のクライアント待ち時間をテストするネットワーク機能の結果を参照して判定されることを特徴とする請求項65に記載の信頼されるエッジサーバ。
【請求項68】 前記暗号解読の鍵が前記第1のクライアントによって受信されるのとほぼ同時刻に、前記暗号化されていないイベントが第2のクライアントによって受信されるのを可能にする第2のクライアント送信時刻に、前記暗号化されていないイベントを前記第2のクライアントに送信するための手段をさらに含むことを特徴とする請求項63に記載の信頼されるエッジサーバ。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、一般に、ネットワークを介するコンテンツ配信に関し、より詳細には、所与の時間フレーム内に複数のクライアントにコンテンツを配信することに関する。
【0002】
【従来の技術】ここ30年間でインターネットは、政府およびいくつかの教育機関によって管理されるいくつかのサーバから、サーバおよびクライアントの巨大な多様なネットワークに成長した。インターネット上のサーバは、自動車の広告や販売から古代ギリシア語のチュートリアルに至るまでを範囲に含む、かつてないほど多くの機能を提供している。インターネットの範囲および影響力は、次の少なくとも3つの相互関連する要因により着実に成長している。すなわち、ますます増大するコンピュータ能力、ますます増加する帯域幅、およびますます増加するユーザ数である。残念ながら、計算能力がユーザの要求とともに一般に成長する一方で、ほとんどの通信が送られる際の限られた帯域幅が、ユーザ数の急激な成長に追い越される可能性があり、またときとして追い越されている。
【0003】この問題は、より小さいイントラネットおよびローカルエリアネットワークにおいて顕著である可能性があるが、インターネットではより大きくなる。例えば、政府または裁判所の告知または新しい音楽ビデオクリップなどの重要なニュースまたはエンターテイメントのリリース、により、リリースを行うWebサイトに毎分数百万のヒットがもたらされる可能性がある。サービスプロバイダおよびWebサーバの帯域幅が必然的に有限であるため、そのような大量の要求によってサイトが圧倒される可能性があり、また通常、数秒間かかるダウンロードに、数分間、またさらには数時間もかかる可能性がある。ユーザの接続速度が向上し、またユーザが、より高速のダウンロードに慣れてくるにつれ、サービスのこの遅延は、ますます重要性を帯びている。
【0004】この問題の解決策の1つは、マルチキャスティングである。マルチキャスティングは、データの1つのストリームだけを送信するサーバによって同時に多数の異なるユーザにストリーミングコンテンツを送信するのを可能にするインターネットプロトコルである。次のとおり、特定のポートがマルチキャスティングのために使用される。サーバが、ストリーミングデータをこのポートに送信し、マルチキャストを受信するのを望むクライアントが、その指定されたポートを「聴取」する。この方法を使用して、通常の「ユニキャスティング」の帯域幅問題のいくつかを克服することができ、またユーザは、より適時にデータを受け取ることができる。残念ながら、このより効率的な方法でさえ、多数のユーザが、マルチキャストを聴取しようと試みている場合、圧倒される可能性がある。さらに、多様な接続速度のユーザが、マルチキャスティングプロトコルを同等に活用することは困難である。ダイヤル呼出しのインターネットサービスプロバイダ(ISP)を介するなどしてインターネットへの一般的なアナログ接続を有するユーザは、常に、ケーブルモデムまたはデジタル加入者回線(DSL)モデムなどのブロードバンドインターネット接続を有するユーザの後でデータを受け取る。
【0005】インターネットによって配信される一部の情報は、多数のユーザができる限り迅速にコンテンツをダウンロードするのが重要なだけでなく、ユーザが、コンテンツを同時刻に受け取る、または指定された時間量の範囲内で受け取ることも重要であることで、さらなる厄介な問題を有する。情報の受取りのタイミングが重要である可能性がある状況の一例は、金融市場に影響を与える可能性がある政府データのリリースである。そのような状況では、情報を最初に受け取る人々が、その情報をまだ受け取っていない人々から利益を得る立場にある。別の例は、人気のある音楽家または音楽グループからの音楽ビデオクリップのリリースであることが可能である。この例は、そのようなリリースが、多数のメガバイトのサイズである可能性があり、配信が困難になるというさらなる問題を有する。さらに、一般に、政府データまたは音楽ビデオクリップが最初にリリースされる最初の時刻が存在する。したがって、問題は、どのようにして、このリリースの時刻にできる限り近く、ただし、その情報が無用または陳腐になる何らかの後の時点の後ではなく、グループのクライアントにイベントを送るかということになる。この問題は、効率と公正さの両方の点で意味がある。
【0006】このタスクを達成する際の1つの困難は、前述したネットワーク帯域幅の問題である。ほとんどの企業ネットワークは、現在、高速バックボーンでインターネットに接続されているが、アナログモデムを使用してインターネットに接続する多数のユーザが、まだ存在する。DSL接続などのブロードバンド接続を介してインターネットに接続されるユーザが、56Kbpsのダイヤル呼出し接続を介して接続されるユーザと同時刻に情報にアクセスするのを開始できたとすると、ブロードバンド接続を有するユーザは、遅い方の接続上のユーザよりはるかに前にその情報を受け取るのを終えることになる。例えば、ダウンロードされるイベントのサイズが、10MBであったとすると、56Kbpsの接続では、そのイベントをダウンロードするにはおよそ24分間かかり、1Mbpsのデジタル加入者回線では、80秒間だけかかる。
【0007】
【発明が解決しようとする課題】コンテンツ配信の現在の方法は、必要なだけの数の多様なクライアントにできる限り公正に所与の時間フレーム内でイベントを送信することを容易にするツールをほとんど提供していない。コンテンツプロバイダおよびサービスプロバイダは、一般に、配信の公正さ、または特定の時刻におけるアクセスに全く注意を払わない。したがって、最も高速のもっとも恵まれたユーザが、早い時刻にコンテンツを受け取り、しばしば、そのようなユーザが、他のユーザ、すなわち、ネットワーク帯域幅および自らの接続速度に比例して後の時刻にその情報を受け取る他のユーザから不当に利益を得ることを許している。
【0008】本発明は、イベントのリリース時刻より前に暗号化したイベントを送信し、そのイベントをイベントのリリース時刻に、または別の時刻に暗号解読するための小さく効率的に伝送される鍵を配信して、各クライアントが、リリース時刻の後、ほぼ同時刻にイベントを受け取るようにすることにより、多様な帯域幅を有するクライアントにイベントを配信するための方法、コンピュータ可読媒体、およびシステムを目的とする。
【0009】本発明は、1つまたは複数のクライアントに接続された信頼されるサーバに、イベントのリリース時刻より前に暗号化されたイベントを送信し、イベントのリリース時刻に、またはより早期にそのイベントを暗号解読する鍵を配信し、サーバにおいてイベントを暗号解読し、イベントのリリース時刻または別の時刻に、接続されたクライアントにサーバからそのイベントを配信し、各クライアントが、リリース時刻の後、ほぼ同時刻にイベントを受け取ることにより、多様な帯域幅を有するクライアントにイベントを配信するための方法、コンピュータ可読媒体、およびシステムをさらに目的とする。
【0010】また、本発明は、イベントのリリース時刻に先立つか、またはリリース時刻に暗号化されたイベントを送信し、また時間フレームの終了、すなわち、その時点を過ぎるとイベントが、もはや有用ではなくなる時間フレームの終了、またはもはや有意義ではない時間フレームの終了に十分に先立つ時刻にイベントを暗号解読するための小さく効率的に伝送される鍵を送信することにより、コンテンツ配信の公正さを確実にするための方法、コンピュータ可読媒体、およびシステムも目的とする。
【0011】さらに、本発明は、複数のユニキャストコピーまたはマルチキャストコピーを介して小さく効率的に伝送される鍵を送信する方法、コンピュータ可読媒体、およびシステムを対象とする。そのようなコピーは、単一の信頼されるサーバにより、鍵を送信することに専用の特殊化されたサーバにより、または複数の信頼されるサーバによって同時刻に送信することができる。異なるサーバからなど、複数のネットワークパスを介して鍵を送信することにより、鍵の少なくとも1つのコピーが、適切な時刻に各クライアントによって受け取られる可能性が大幅に高くなる。
【0012】
【課題を解決するための手段】本発明は、関心を有するクライアントが、クライアントの接続帯域幅の違いにも関わらず、所与のリリース時刻にリリースされたイベントをほぼ同時刻に受け取ることができるようにすることにより、配信の公正さを提供しようと試みるメカニズムを企図している。接続帯域幅の違いは、クライアントがサーバに接続されている速度、サーバ間接続の輻輳等を含め、いくつかの要因に起因する可能性がある。少なくとも1つの起点のサーバが、リリースされるべきデータを含む。起点のサーバは、いくつかの信頼されるエッジサーバに接続されていることが可能であり、信頼されるエッジサーバは、自らに接続された信頼されないサーバおよびクライアントにコンテンツをさらに配信する。替わりに、起点のサーバは、信頼されないサーバまたはクライアントに直接に接続することが可能である。信頼されるエッジサーバは、選択されたリリース時刻の前に情報をリリースしないものと信頼することができるサーバである。したがって、信頼されるエッジサーバは、信頼されるサーバ、少なくとも1つの起点のサーバ、および信頼されるサーバと起点のサーバの間の接続を含む配信ネットワークの「エッジ」に存在する。
【0013】データがクライアントにリリースされる時刻より前に、1つまたは複数の起点のサーバからクライアントに暗号化されたデータを配信することができ、クライアントは、そのデータをローカルで記憶し、暗号解読する。その後、リリース時刻に、またはリリース時刻の後、暗号化されたデータを暗号解読することができる小さく効率的に伝送される鍵をクライアントに送信することができる。鍵は、一般に、十分に小さいサイズのものであるため、クライアントまたはサーバのそれぞれが、狭い時間範囲内でその鍵を受け取ることができ、各クライアントが、ほぼ同時刻にデータへのアクセスを得るのが確実になるはずである。
【0014】また、暗号化されたデータをサーバにおいて暗号解読してから、暗号化されていない形態でクライアントに送信することもできる。暗号解読を行うサーバが、信頼されるエッジサーバである場合、暗号化されたデータおよび鍵は、リリース時刻より前に送信することができる。信頼されるエッジサーバは、そのデータを暗号解読し、リリース時刻に、またはリリース時刻より前にそのデータをクライアントに送信して、クライアントがリリース時刻にデータを受け取るようにすることができる。あるいは、サーバが、信頼されるエッジサーバではない場合、データをやはりリリース時刻より前に送信するが、鍵はリリース時刻に送信し、できる限り迅速に、または調整された時刻にデータを暗号解読してクライアントに送信することが可能である。
【0015】また、本発明は、暗号化されたデータをリリース時刻に、またはリリース時刻の後にクライアントに送信することができるが、鍵は、各クライアントが、ほぼ同時に鍵を受け取るような時刻まで、またはデータが配布される時間窓が満了するより前にできる限り多数のクライアントが鍵を受け取るような時刻まで伝送されないようにすることも企図される。暗号化されたデータを、時間窓の満了より前にクライアントのすべてへの伝送が完了しているように送信することが可能な場合、鍵の伝送は、各クライアントが暗号化されたデータを受け取るまで遅延させることができる。替わりに、時間窓の満了より前に各クライアントに暗号化されたデータを配信することができない場合、鍵は、各クライアントへの暗号化されたデータの配信の完了より幾分前の時間に送信することができる。同様に、配信要件が、情報を公正に配布するよりも、迅速に配布することの方が重要であるようになっている場合も、鍵は、やはりより早い時刻に、各クライアントが暗号化されたデータを受け取る前に送信することができる。
【0016】さらに、本発明は、起点のサーバまたは信頼されるエッジサーバにかかる伝送の負担を最小限に抑えるマルチキャスティングプロトコルの使用を企図している。マルチキャスティングプロトコルを使用することにより、サーバは、いくつかのコピーを送信するだけでよく、次に、そのコピーが、ルータによって複製されてさらなるサーバまたはクライアントに転送される。マルチキャスティングプロトコルの特に適切な用法が、鍵の伝送であり得る。鍵は、非常に少量のデータである可能性があるため、クライアントからの再送要求を待つのではなく、鍵の冗長なコピーをマルチキャストすることにより、効率の向上を実現することができる。また、鍵を大量の冗長性を使用する誤り訂正とともにマルチキャストして、再送要求を回避することもできる。さらに、複数のサーバが、鍵を伝送することができる。可能な鍵のサーバには、起点のサーバ、特殊化された鍵サーバ、信頼されるエッジサーバ、または以上のサーバの任意の組み合わせが含まれる。
【0017】さらに、本発明は、データをクライアントに転送することができる速度の推定を企図している。起点のサーバと信頼されるエッジサーバの間、または信頼されるエッジサーバとクライアントの間、またはパス全体の接続の待ち時間を監視する、または計算することができる。接続待ち時間の経験上の推定値、または理論上の推定値に基づき、各クライアントに関して配信のための時間のデータベースを集約することができる。サーバが、この配信時間を使用して、暗号化されたデータ、暗号解読されたデータ、または鍵の伝送をどれだけすぐに開始する必要があるかを判定することができる。例えば、信頼されるエッジサーバが、ローカルでデータを記憶する、または暗号解読する能力を有していない自らのクライアントのすべてに対し、そのクライアントのすべての最小伝送時間をイベントがリリースされるべき時刻から引くことによって計算された時刻に、暗号解読されたデータの伝送を開始することが可能である。替わりに、信頼されるエッジサーバは、各クライアントへのイベントの伝送を、その特定のクライアントへの伝送時間だけをイベントがリリースされるべき時刻から引き、これにより、個々の接続の待ち行列を考慮に入れることによって計算された時刻に開始することができる。サーバが、この後者の演算を行うことができる場合、関心を有するクライアントはそれぞれ、イベントがリリースされるべき時刻に非常に近接してイベントを受け取り、一方、前者の演算は、より変化のある着信時刻をもたらす。公正さおよび効率をさらに高めるため、まず、クライアントをサーバ間で再配分して、待ち時間の一部の源の影響を減じること、および一部の状況で、同様の接続速度を有するクライアントを同じサーバに配置する(これにより、時差的な配信をより効果的にする)ことが可能である。これにより、特定のクライアント−サーバ伝送時間の推定値に応じて、いくつかの異なって配置され接続されたクライアントによるイベントのほぼ同時の獲得を可能にすることができる。
【0018】本発明のさらなる特徴および利点は、添付の図を参照して進められる例示の実施形態の以下の詳細な説明から明白となる。
【0019】
【発明の実施の形態】頭記の特許請求の範囲は、詳細とともに本発明を提示しているが、本発明、ならびに本発明の目的および利点は、添付の図面と合わせて考慮した以下の詳細な説明から理解することができる。
【0020】本発明は、クライアントが、できる限り同時刻にイベントを受け取り、またその時点を過ぎるとイベントがもはや有意義でなくなる、またはイベントに含まれる情報が陳腐になる時間フレームの終了の前に、できる限り多くのクライアントがイベントを受け取るような方法でクライアントの集合にイベントを配信するための方法、コンピュータ可読媒体、およびシステムを目的とする。具体的には、本発明は、イベントがリリースされる時刻より前に暗号化されたイベントを送信することを企図している。暗号化されたイベントは、クライアントまたはサーバにおいて記憶することができる。イベントがリリースされるべき時刻に、暗号解読の鍵を各クライアントまたはサーバに送信することができる。鍵は、小さい可能性が高いので、鍵の伝送時間は、比較的短く、各クライアントが、鍵を受け取り、これにより、ほぼ同時刻にデータを暗号解読する能力を受け取る。クライアントが、暗号化されたイベントを記憶する能力、または暗号化されたイベントを暗号解読する能力を有していない場合、暗号化されたイベントは、サーバにおいて記憶し、暗号解読して、次に、クライアントに送信することができる。信頼されるエッジサーバが、クライアントのためにイベントを暗号解読する場合、リリース時刻より前に鍵を送信することができる。また、クライアントと信頼されるエッジサーバの間の接続における計算された待ち時間、または測定された待ち時間を考慮に入れるようにリリース時刻より前にクライアントへの暗号解読されたイベントの送信を開始することができる。替わりに、クライアントのためにイベントを暗号解読するサーバが、信頼されるエッジサーバではない場合、サーバは、リリース時刻に、またはリリース時刻の後に鍵を受け取り、イベントの暗号解読を完了すると、クライアントに暗号解読されたイベントを送信することができる。暗号化されたイベントを十分に早期に送信することができない場合、すなわち、リリース時刻より前に暗号化されたイベントの受信を完了するだけ十分に早期に暗号化されたイベントを送信することができない場合、鍵の伝送を遅延させて、クライアントが、暗号化されたイベントの受信を終えることができるようにする。鍵は、遅い場合、終了時刻から鍵の伝送時間を引いたものに等しい時刻に送信することができる。マルチキャスティングプロトコルを使用して独立したセッションの数を最小限に抑えることができる。鍵のサイズが比較的小さいため、相当な冗長性を使用して、マルチキャスティングを介してでも鍵の適切な配信を確実にすることができる。
【0021】図を参照して、同様の符号が同様の要素を示すが、本発明をサーバ計算環境のコンテキストで以下に説明する。本発明を実施するのに必須ではないが、本発明は、サーバまたはクライアントの計算デバイスによって実行されるプログラムモジュールなどのコンピュータ実行可能命令によって実施されるものとして説明する。一般に、プログラムモジュールには、特定のタスクを行う、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等が含まれる。
【0022】本発明は、サーバ以外のコンピュータシステム構成で実施してもよい。例えば、本発明は、ルータ、マルチプロセッサシステム、パーソナルコンピュータ、家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ等において実現することもできる。また、本発明は、タスクが、通信網を介してリンクされた遠隔処理デバイスによって行われる分散計算環境で実施してもよい。分散計算環境では、プログラムモジュールが、ローカルのメモリ記憶デバイスと遠隔のメモリ記憶デバイスの両方に配置されていることが可能である。
【0023】本発明は、上述のように、多数のタイプの計算環境に組み込むことができるが、本発明の以下の詳細な説明は、従来のサーバ20の形態の例としての汎用計算デバイスのコンテキストで提示する。
【0024】本発明を詳細に説明する前に、本発明が機能する計算環境を図1に関連して説明する。サーバ20は、処理ユニット21と、システムメモリ22と、システムメモリから処理ユニットまでを含む様々なシステム構成要素を結合するシステムバス23とを含む。システムバス23は、様々なバスアーキテクチャの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造の任意のものとすることが可能である。システムメモリには、読取り専用メモリ(ROM)24およびランダムアクセスメモリ(RAM)25が含まれる。始動中などに、サーバ20内部の要素間で情報を転送するのを助ける基本ルーチンを含む基本入力/出力システム(BIOS)26が、ROM24の中に記憶される。サーバ20は、ハードディスク60に対して読取りおよび書込みを行うためのハードディスクドライブ27と、取外し可能な磁気ディスク29に対して読取りおよび書込みを行うための磁気ディスクドライブ28と、CD ROMまたはその他の光媒体などの取外し可能な光ディスク31に対して読取りおよび書込みを行うための光ディスクドライブ30とをさらに含む。
【0025】ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30はそれぞれ、ハードディスクドライブインターフェース32、磁気ディスクドライブインターフェース33、および光ディスクドライブインターフェース34でシステムバス23に接続される。以上のドライブおよび関連するコンピュータ可読媒体により、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストーレッジが、サーバ20に提供される。本明細書で説明する例としての環境は、ハードディスク60、取外し可能な磁気ディスク29、および取外し可能な光ディスク31を使用するが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ、読取り専用メモリなどの、コンピュータによってアクセス可能な、データを記憶することができる他のタイプのコンピュータ可読媒体も例としての動作環境において使用できることが、当分野の技術者には理解されよう。
【0026】オペレーティングシステム35、1つまたは複数のサーバプログラム36、他のプログラムモジュール37、およびプログラムデータ38を含め、いくつかのプログラムモジュールをハードディスク60、磁気ディスク29、光ディスク31、ROM24またはRAM25の上に記憶することができる。ユーザは、キーボード40やポインティングデバイス42などの入力デバイスを介してサーバ20にコマンドおよび情報を入力することができる。その他の入力デバイス(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ等が含まれることが可能である。以上の入力デバイスおよび他の入力デバイスは、しばしば、システムバスに結合されたシリアルポートインターフェース46を介して処理ユニット21に結合されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)ポートなどの他のインターフェースで接続してもよい。また、モニタ47、または他のタイプの表示デバイスも、ビデオアダプタ48などのインターフェースを介してシステムバス23に接続することができる。
【0027】サーバ20は、ルータ49のようなルータまたは他のネットワーク機器を介する1つまたは複数の遠隔クライアント50または追加のサーバ52への論理接続を使用するネットワーク化された環境で動作する。遠隔クライアント50は、パーソナルコンピュータ(PC)、ネットワークPC、ピアデバイス、他の一般的なネットワークノード、または他の計算デバイスであることが可能であり、通常、サーバ20に関連して前述した要素の多くを含む。遠隔サーバ52は、メールサーバ、ミラーサーバ、Webサーバ、または他の一般的なネットワークノードであることが可能であり、通常、サーバ20に関連して前述した要素の多く、またはすべてを含む。ネットワークルータ49は、ワンアームド(one−armed)ルータ、エッジルータ、マルチキャストルータ、ソフトウェアアプリケーション、または他の一般的なネットワークノードであることが可能であり、通常、パケットが転送されるべきネットワークにおける次のポイントを決定する。図1に描いた論理接続51は、ローカルエリアネットワーク(LAN)および/またはワイドエリアネットワーク(WAN)であることが可能である。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータ網、イントラネット、およびインターネットにおいて一般的である。
【0028】LANまたはWANのネットワーキング環境で使用されるとき、サーバ20は、ネットワークインターフェースまたはネットワークアダプタ53を介してネットワーク51に接続される。ネットワーク化された環境では、サーバ20に関連して描いたプログラムモジュール、またはプログラムモジュールの部分が、ネットワークルータ49を介してアクセスされる遠隔のメモリ記憶デバイスの中に記憶されることが可能である。図示したネットワーク接続は、例としてのものであり、コンピュータ間で通信リンクを確立する他の手段も使用できることを理解されたい。
【0029】以下の説明では、本発明は、特に明示しない限り、1つまたは複数のコンピュータによって行われる動作および記号表現のオペレーションに関連して説明する。このため、ときとして、コンピュータによって実行されるものとして述べられるそのような動作およびオペレーションには、コンピュータの処理ユニットによる、構造化された形態のデータを表す電気信号の操作が含まれることが理解されよう。この操作は、データを変形するか、またはコンピュータのメモリシステムの中の場所にデータを保持し、データは、当分野の技術者にはよく理解されている方法でコンピュータのオペレーションを再構成するか、または別の方法で変更する。データが保持されるデータ構造は、メモリ、すなわち、データフォーマットによって定義される特定のプロパティを有するメモリの物理的な場所である。ただし、本発明を以上のコンテキストで説明するが、以下に説明する種々の動作およびオペレーションをハードウェアで実施してもよいが当分野の技術者には認識されるとおり、これに、限定することを意図するものではない。
【0030】本発明の一態様によれば、ネットワークに接続された1組のクライアントに、イベントのリリース時刻より前に暗号化されたイベントが提供され、その後、リリース時刻に、またはリリース時刻の後に、そのイベントを暗号解読するために暗号解読の鍵が提供される。イベントは、大きい可能性が高く、ナローバンド接続を介して接続されたクライアントに送信するのに相当な時間を要し、一方、ブロードバンド接続を有するクライアントは、比較的速やかにそのイベントを受信することができる。ブロードバンドのクライアントは、ナローバンドのクライアントより前にイベントに含まれる情報へのアクセスを得ることになり、ナローバンドのクライアントにとって不利になるようにその情報を使用することができるので、暗号化されていないイベントの配信は、不公正である。しかし、イベントを暗号化し、リリース時刻より前にイベントを送信することにより、配信の公正さを実現することができる。というのは、暗号解読の鍵が比較的小さく、鍵の伝送は非常に短い時間量であることが可能であるため、大幅に異なる接続速度の間でも、クライアントのそれぞれが、狭い時間幅の中で暗号解読の鍵を受け取ることができるからである。したがって、各クライアントが、狭い時間幅の中でイベントに含まれる情報へのアクセスを得て、公正な配信が提供される。
【0031】明らかなように、配信の公正さを確実にするためには、暗号解読の鍵より前に暗号化されたイベントが受信されなければならない。そうでなければ、クライアントは、鍵を有するが、暗号解読するげきイベントを有さないからである。ただし、これは、すべてのケースで保証することができない。したがって、本発明は、クライアントに信頼できるように配信するのに十分なだけ前もって起点のサーバから暗号化されたイベントを入手できる場合、所望される場合は、リリース時刻に、またはリリース時刻の後に暗号解読の鍵を送信することを企図している。また、本発明は、リリース時刻の後、終了時刻から鍵を配信するのに必要な遅延時間を引いたものに等しい時刻までの任意の時刻に暗号解読の鍵を送信することも企図している。したがって、鍵を送信することを遅延させて、鍵を送信する前にできる限り多くのクライアントが暗号化されたイベントの受信を終えることができるようにすることが可能である。したがって、起点のサーバが、クライアントがリリース時刻より前に暗号化されたイベントを受信することができるようにするのに十分なだけ早い時刻に、暗号化されたイベントを送信することができない場合、またはそうすることが許されない場合、必要に応じて鍵を送信するのを遅延させて、イベントに含まれる情報への可能な限り公正なアクセスを提供することができる。
【0032】本発明の別の態様によれば、暗号化されたイベントをサーバに送信し、クライアントに送信する前にサーバにおいて暗号解読することができる。そのようにすると、個々のクライアントが、極めて大きい可能性がある暗号化されたイベントを保持する必要がなく、またイベントを暗号解読することによって自らの処理システムに負担をかける必要もない。信頼されるサーバは、ネットワーク中のサーバ、すなわち、リリース時刻より前にイベントをリリースしない起点のサーバにより信頼される、ネットワーク中のサーバである。信頼されるエッジサーバは、起点のサーバと信頼することができるクライアントの間の論理接続における最後のサーバであり、したがって、信頼されるネットワークのエッジと考えることができる。クライアントのためにイベントを暗号解読するサーバが、信頼されるエッジサーバである場合、その信頼されるエッジサーバが、リリース時刻より前に暗号化されたイベントおよび鍵の提供を受け、リリース時刻より前にイベントを暗号解読することが可能である。替わりに、クライアントのためにイベントを暗号解読するサーバが、信頼されるエッジサーバではない場合、鍵は、リリース時刻の後に、またはリリース時刻より十分に前に送信して、そのサーバが、イベントを暗号解読してクライアントに伝送できるようにすることが可能である。しかしながら、このサーバは暗号解読したイベントを保持して指定された時刻まで待機することを信頼することはできない。いずれの場合も、暗号解読されたイベントは大容量であろうが、ナローバンドのクライアントに伝送するのに相当な時間量を要するという問題が残る。ブロードバンドのクライアントがイベントを受信するときと、ナローバンドのクライアントがイベントを受信するときの間の時間の差を最小限に抑えるため、信頼されるエッジサーバは、ナローバンドのクライアントにリリース時刻より前にイベントを送信し、双方のクライアントが、ほぼ同時刻にイベントを受信することができるようにすることができる。
【0033】本発明のさらに別の態様によれば、暗号化されたイベントおよび暗号解読の鍵をマルチキャスティングプロトコルを使用して送信して、ネットワーク効率を高め、伝送の負担を分散させることができる。当分野の技術者には周知のとおり、マルチキャスティングは、しばしば、伝送されたデータが失われた場合、または壊れた場合、再送を要求する効率的なメカニズムを提供しない。鍵は、極めて小さい可能性があるため、相当な冗長性とともに鍵を送信し、これにより、再送が必要となる確率を最小限に抑える方が効率的である可能性がある。例えば、ナローバンドのクライアントにとってさえ、極めて小さく、効率的に伝送することが可能な単一のメッセージで鍵の複数のコピーを送信することができる。替わりに、起点のサーバ、信頼されるエッジサーバ、特殊化された鍵サーバ、または以上のサーバの任意の組み合わせを含め、異なる鍵サーバからなど、異なるネットワークルータを介して鍵の単一のコピーを送信することができる。
【0034】本発明によれば、図2は、例としてのネットワーク化された環境を示している。重要なことには、本発明は、何らかの特定のネットワークプロトコルでの実施に限定されないことである。本発明は、例えば、TCP/IPプロトコル、AppleTalkプロトコル、Novellプロトコルを使用して、またコンテンツ配信網で実施することができる。以上のプロトコルは、もちろん、様々なレベルの機能を提供する。したがって、一部のネットワークでは、サーバのソフトが、より多くの機能を行うことが可能であり、一方、他のネットワークでは、サーバのソフトウェアが、基礎のプロトコルに依拠してその機能を提供することが可能である。本発明の例としての実施形態を説明する際、必要とされる特定の情報または機能が、基礎のプロトコルにより、またはサーバ上またはクライアント上のソフトウェアにより提供されることが可能である。基礎の方法は、不変のままであり、単に既存の機能を組み込んで必要とされるタスクを完了することができる。
【0035】図2は、本発明の例としての実施形態を説明することができるネットワーク環境200を示している。起点のサーバ210が、信頼されるエッジサーバ220、221、および222、ならびにサーバ230、231、および232などの信頼されない追加のサーバを含むネットワークに接続されている。また、このネットワークは、クライアントマシンに論理接続されているパーソナル計算デバイス(PC)の形態でクライアントも含む。クライアント50は、例えば、ナローバンド接続238を介して接続されていることが可能であり、またクライアント150は、ブロードバンド接続239を介して接続されていることが可能である。当分野の技術者には周知のとおり、ナローバンド接続は、一般に、56kbpsまたは33.6kbpsなどの一般的に使用されるアナログモデム速度のダイヤル呼出し接続である。ブロードバンド接続は、ケーブルモデム、デジタル加入者回線(DSL)モデム、またはサテライトモデムなどの任意の数の技術を介して行うことができ、一般に、ナローバンド接続より格段に高いスループットを提供する。
【0036】好適実施形態では、イベントが、起点のサーバ210を起点とする。イベントは、クライアント50および150に配布されるデータの任意の集合であることが可能である。例えば、イベントは、単純な場合、政府の会計局または会計部門からの経済ニュースのリリースであることが可能であり、あるいは企業からの新しい製品またはサービスのリリースを供覧するデジタル動画、または人気のある音楽家または音楽グループからの新しい音楽ビデオのリリースのように、相当により大きく、より複雑であることが可能である。一般に、イベントは、リリース時刻に先立つ配布が、不適切であるような性質のものである。例えば、政府の経済データが、リリース時刻より前に配布されたとしたら、金融市場が混乱させられる可能性がある。同様に、新しい音楽ビデオが、リリース時刻より前にリリースされたとしたら、そのビデオのマーケティングが需要を生み出すのに十分な時間がとれていない可能性があり、ビデオが失敗であると見なされる可能性がある。また、イベントは、一般に、配信の公正さが重要であるような性質のものである。したがって、政府の経済データが、他のクライアントより前に一部のクライアントにリリースされたとしたら、そのデータを受け取っていたクライアントは、そのデータを使用して、そのデータをまだ受け取っていなかったクライアントから利益を上げる可能性がある。同様に、1つのグループのクライアントが、別のグループより前に新しい音楽ビデオを受け取ったとしたら、配信の不公正さに焦点を当てる何らかのメディアの注目により、ビデオ自体の品質に関するより好意的な世間の関心がそらされる可能性がある。したがって、本発明は、異なる帯域幅および異なる計算能力のクライアント間などにおける、公正な方法での情報またはイベントの配信を企図している。
【0037】また、クライアントに配信されるイベントに含まれる情報も、しばしば、その時点を過ぎると情報が陳腐になる、または有意義でなくなる終了時刻を有する。政府経済報告などの一部のデータの場合、情報は、次の報告が出されるまで、1ヶ月間、またはそれより長い期間、最新である可能性がある。同様に、新しい音楽ビデオは、数週間、最新であると見なされる可能性がある。あるいは、クライアントに配信されることが可能な一部のデータは、非常に急速にその意義を失う可能性がある。例えば、所与のエリアに関する気象レーダの時間経過を示す動画は、15分だけ最新であることが可能である。本発明は、公正な方法で、またその時点を過ぎるとイベントに含まれる情報が、クライアントにとって有用でなくなる可能性がある終了時刻より前にイベントを配信することを企図している。
【0038】図3を参照すると、本発明によって企図されるイベントの時系列が示されている。棒グラフ300は、特定のサーバのクライアントのグループを表している。したがって、例えば、このグラフは、ナローバンドのクライアント50とブロードバンドのクライアント150の両方が接続されている信頼されるエッジサーバ221、またはやはりナローバンドのクライアント50とブロードバンドのクライアント150が接続されている外部の(信頼されない)サーバ232を表していることが可能である。図2は、サーバ221および232に接続されたいくつかのそのようなクライアントだけを示しているが、同様のネットワーク接続を介してさらに多くのクライアントを接続できることを理解されたい。棒グラフ300で、通常は連続関数である配信の時間が、図示するカテゴリに入るように近似されている。したがって、左端に図示する第1のグループのクライアント310は、およそ5秒ないし15秒の時間範囲内にメッセージを受信し、第2のグループ312は、40秒から60秒の時間範囲内にメッセージを受信し、以下同様である。棒グラフ300で示した時間は、直線的に増分されていないことに留意するのが重要である。これは、伝送時間が、単に本発明の例示として提示されているためである。
【0039】棒グラフ300から明らかなように、図示したサーバには、ブロードバンドのクライアントおよびナローバンドのクライアントを含め、およそ100のクライアントが接続されている。棒グラフ300は、サーバが暗号化されたイベントの送信を開始する時刻350で開始する。サーバは、いくつもの理由で時刻350に暗号化されたイベントの送信を開始することが可能である。例えば、時刻350は、サーバが、図2に示した起点のサーバ210のような起点のサーバから暗号化されたイベントを受け取った最初の時刻であることが可能である。替わりに、時刻350は、サーバが、起点のサーバから暗号化されていない形態でイベントを受信した場合、イベントを暗号化するのを完了した最初の時刻であることが可能である。また、サーバは、起点のサーバからの明示的な命令の故に、時刻350で暗号化されたイベントの送信を開始していることも可能である。暗号化されたイベントの伝送は、特定の時刻を待つ必要がないため、信頼されるエッジサーバと信頼されないサーバの両方を使用してイベントを配信できることに留意されたい。
【0040】イベントを受信する最初のセットのクライアント310は、時刻350のおよそ10秒後に受信し、一方、最後のセットのクライアント326は、およそ700秒後にイベントを受信する。そのような大きい相違から明らかなように、リリース時刻にクライアントに単に暗号化されていないイベントを送信することにより、クライアント310のような最初のクライアントが既にイベントを受信してから11分間より長い時間が経ってからでないと、クライアント326のような一部のクライアントはイベントを受信しない。イベントが、政府の経済データのリリースであったとすると、クライアント310は、まだ情報を受信していないクライアント326から利益を上げるのに十分な時間を有していたことになる。当分野の技術者には理解されるとおり、棒グラフ300は、比較的小さいイベントの配信を示している。というのは、ブロードバンドのクライアントが、このイベントを10秒間ほどの短い時間でダウンロードすることが可能だからである。新しい製品を供覧するビデオなどのより大きいイベントの場合、最も高速のクライアント310でさえ、数分間、そのイベントを受信しない可能性があり、最も低速のクライアント326は、そのイベントを受信するのに数時間かかる可能性がある。
【0041】図3に示すとおり、サーバは、すべてのクライアントが、暗号化されたイベントを受信しているのに十分なだけリリース時刻360より前の時刻350に暗号化されたイベントの送信を開始する。次に、図3に示すとおり、時刻360に等しいか、または後の時刻であることが可能な時刻370に、以下にさらに説明するとおり、サーバが、時刻350に送信された暗号化されたイベントを暗号解読する鍵を送信することができる。当分野の技術者には認められるとおり、厳密に所与の時間に機能を行うのは非常に困難である。というのは、すべての計算デバイスが、別々のサイクルで動作するからである。それでも、本発明では、リリース時刻360直後の時刻をリリース時刻360にほぼ等しいものと見なしている。鍵のサイズが小さいため、ナローバンドのクライアントにとってさえ、鍵を受信するのにかかる時間の相違は、ほとんど存在しない。したがって、図3に示すとおり、クライアント330のすべてが、ほぼ同時刻に鍵を受信する可能性が高い。クライアントのセット330は、セット310ないし326で暗号化されたイベントを受信したのと同じ100のクライアントを示し、時刻370にこのクライアントに追加のデータ、すなわち、暗号解読の鍵が送信され、棒330で示されるとおり、クライアントのすべてがその鍵を2秒間以内に受信することだけが異なっている。したがって、各クライアントは、リリース時刻360のすぐ後にほぼ同時刻に暗号解読の鍵を使用してイベントを暗号解読することにより、イベントに含まれる情報へのアクセスを初めて受け取る。
【0042】イベントは暗号化されているので、信頼されるエッジサーバ221のような信頼されるエッジサーバと、信頼されないサーバ232のような信頼されないサーバの両方を使用して、リリース時刻360より前にイベントを配信することができる。ただし、以下により詳細に示すとおり、暗号解読された、または暗号化されていないイベントが伝送される場合、リリース時刻360より前に信頼されるエッジサーバが、そのイベントを保持することができる。ただし、信頼されないサーバが、リリース時刻より前にイベントをリリースする可能性がある。暗号化されたイベントの場合、信頼されないサーバがリリース時刻より前にイベントをリリースすることに起因してもたらされる不公正さは存在しない。というのは、クライアントが、イベントに含まれる情報にアクセスするのに必要な鍵を有さないからである。しかし、暗号解読された、または暗号化されていないイベントの場合、個々のサーバによるリリース時刻に先立つリリースにより、イベントに含まれる情報への不平等なアクセスがもたらされる可能性がある。したがって、明らかなように、データは、利用可能になるとすぐにクライアント50や150のようなクライアントに送信することができる。そのようなデータが、暗号解読の鍵、暗号化されていないイベント、またはクライアントがイベントに含まれる情報に対するアクセスを受取可能にするその他のデータを含むとき、そのデータを最も近接した信頼されるサーバにおいて保持し、適切なときにリリースすることができる。信頼されないサーバは、データをリリースするのに適切な時刻までデータを保持するものと信頼できない可能性がある。上記に説明したとおり、最も近接した信頼されるサーバが、信頼されるエッジサーバである。
【0043】暗号解読の鍵を、鍵サーバによって送信することが可能である。鍵サーバは、鍵を送信する任意のサーバとすることが可能であり、鍵サーバには、起点のサーバ、1つまたは複数の信頼されるエッジサーバ、特殊化された中央鍵サーバ、または分散されたグループの特殊化された鍵サーバ、または以上のサーバの任意の組み合わせを含むことが可能である。また、中央鍵サーバ、または分散型の特殊化された鍵サーバは、ネットワーク環境200の一部とすることも可能であり、時刻370にクライアントに直接に鍵を伝送することができるか、または時刻370より前の時刻に信頼されるエッジサーバ221に対して鍵を配信することができ、鍵の送信時刻に関する命令を提供することができる。ただし、信頼されないサーバ232に対しては、時刻370より前にではなく、時刻370に鍵を送信することができる。というのは、サーバ232は、時刻370まで鍵を保持すると信頼することができないからである。できる限り多くのクライアントにできる限り効率的に鍵が着信することを確実にするのに、鍵をクライアントに配信する多数の異なるネットワークパスを使用して、前述したサーバのような複数のサーバから鍵を伝送することが有益である。複数のパスを使用することにより、何らかの単一のパスに輻輳が生じ、鍵の受信を遅延させる可能性のリスクが小さくなる。以下に説明するとおり、鍵の伝送は、クライアントによる暗号化されたイベントの受信に依存する可能性があるので、サーバ群と中央鍵サーバの間の通信、またはサーバ群と鍵サーバのネットワークの間の通信が、クライアントへの鍵の送信を調整するように企図される。
【0044】イベントに関して使用される暗号化は、データ暗号化標準(Data Encryption Standard)(DES)、セキュアアンドファースト暗号化ルーチン(Secure And Fast Encryption Routine)(SAFER)、国際データ暗号化アルゴリズム(International Data Encryption Algorithm)(IDEA)、ならびにTwofish、SERPENT、RC6、およびMARSなどのアドバンスト暗号化標準(Advanced Encryption Standard)(AES)候補のいずれかを含め、普及している暗号化方法のいずれか1つ、または組み合わせとすることが可能である。本発明は、様々なブロードバンドのクライアントおよびナローバンドのクライアントへの伝送時間に大きな違いが存在しないように、サイズが比較的小さい1つまたは複数の暗号解読の鍵で暗号解読することができる任意の暗号化方法の使用を企図している。
【0045】図4を参照すると、イベント配信が、棒グラフ400として示されている。図3と同様に、サーバは、信頼されるエッジサーバ221のような信頼されるエッジサーバであるか、または配信されるイベントが暗号化されているため、信頼されないサーバ232のような信頼されないサーバであることが可能である。明らかなように、サーバが、イベントの送信を開始した時刻450は、各クライアントが、暗号化されたイベントを受信できるようにするだけ十分にリリース時刻460より前ではなかった。時刻450は、サーバによって起点のサーバからイベントが受信された時刻に依存している可能性がある。サーバが、時刻450に暗号化されたイベントの送信を開始したときからリリース時刻460までの時間が短いため、クライアント424および426は、リリース時刻に暗号化されたイベントの受信をまだ完了していない。そのような状況では、本発明は、クライアントのすべてが、暗号化されたデータを受信するまで鍵の伝送を遅延させることを企図している。ただし、鍵の伝送は、鍵が終了時刻490より後に受信されるほど遅延させてはならない。さらに、実用性の配慮も考慮に入れられる。したがって、わずかなパーセンテージのユーザが、暗号化されたデータをまだ受信するのを終えていないが、鍵を伝送して、大多数のユーザが、リリース時刻に近い時刻にデータを受け取ることができるようにするのが可能である。そのような配慮は、以下により詳細に示すとおり、ネットワーク全体でイベントの公正な配信を可能にするように複数のサーバを有するネットワークでは特に重要である。
【0046】図4で示すとおり、本発明は、リリース時刻460の後であり、最後のグループのクライアント426が、暗号化されたイベントの受信を終えた後の時刻470に暗号解読の鍵を送信することを企図している。また、鍵が送信される時刻470は、すべてのクライアント430が、終了時刻より前に鍵を受け取ることができるように、終了時刻490より十分に前でもある。図4では、鍵が送信される時刻470は、最後のグループのクライアント426が、暗号化されたイベントを受信した後すぐに来るように示しているが、すべてのクライアント、またはできる限り多くのクライアントが、鍵を受け取り、これにより、終了時刻490より前にイベントに含まれる情報へのアクセスが与えられるよう、終了時刻490より十分に前の任意の時刻に、鍵を送信することができる。
【0047】図5を参照すると、棒グラフ500として示すイベント配信が、本発明によって企図される別の伝送シーケンスを示している。図5で示すとおり、終了時刻590より後でもセットのクライアント524および526によって暗号化されたイベントがまだ受信されている。この場合も信頼されるエッジサーバおよび信頼されないサーバを含むサーバは、時刻550まで暗号化されたイベントの送信を開始しておらず、時刻550は、クライアントのすべてが、終了時刻590より前に暗号化されたイベントを受信できるようにするには遅すぎる。この場合も、時刻550は、サーバが起点のサーバからイベントを受信した時刻などの外部要因によって規定されている可能性がある。図5では、送信時刻550をリリース時刻560と等価であるものとして示しているが、送信時刻550は、リリース時刻560より前であるか、またはリリース時刻560の後であることも可能であり、それでも、終了時刻590が過ぎるまで暗号化されたイベントの受信を完了していないセットのクライアントが生じる可能性がある。
【0048】そのような状況では、本発明は、信頼されるエッジサーバが、できる限り多くのクライアントが、暗号化されたイベントの受信を終えていることを確実にするように暗号解読の鍵の送信をできる限り長い間、待つことができるのを企図している。したがって、鍵がクライアントによって受信可能にするだけ十分に終了時刻590より前の時刻570に、信頼されるエッジサーバが、鍵の送信を開始することができる。図5で示すとおり、信頼されるエッジサーバは、セット524および526の中のクライアントが、暗号化されたデータの受信を完了する前に、時刻570に鍵の送信を開始することができる。終了時刻590までには、クライアントのそれぞれが、暗号解読の鍵を受信しているが、クライアント524および526は、イベントの中で送信されたデータにその鍵を使用してアクセスできるにはまず、暗号化されたイベントの受信を完了する必要がある。しかし、セットのクライアント510ないし522は、時刻570における鍵の伝送より前に暗号化されたイベントを既に受信しており、終了時刻590の前にイベントに含まれるデータにアクセスすることができる。さらに、クライアント510ないし522はそれぞれ、データへのこのアクセスをほぼ同時刻に受け取り、信頼されるエッジサーバに接続されたクライアントの待ち時間を所与として、可能な限り公正な情報の配信が提供されている。
【0049】図2に示したサーバのクライアント50および150の一部が、暗号化されたイベントを記憶するのに十分な記憶スペースを有していなくてもよいし、または暗号化されたイベントを暗号解読するのに十分な処理能力を有していなくてもよい。さらに、クライアントが、イベントを記憶し、暗号解読する能力は、イベントにより異なる可能性がある。例えば、政府の経済データのリリースなどの比較的小さいイベントは、容易に記憶し、暗号解読することができ、多くのクライアントが、十分な記憶スペースおよび十分な処理能力を有する可能性が高い。しかし、デジタル動画の場合、または他の大きいイベントの場合、より小さいイベントに対応することができたクライアントを含め、多くのクライアントが、十分な記憶スペースまたは十分な処理能力を有さない可能性がある。
【0050】したがって、本発明は、サーバが、暗号化されたイベントを送信し、続いて暗号解読の鍵を送信できるか、または信頼されるエッジサーバが、イベントをローカルで暗号解読し、イベントの暗号解読されたバージョンを伝送できることを企図している。替わりに、起点のサーバが、暗号化されていないイベントを送信する場合、信頼されるエッジサーバは、イベントを暗号化することができず、記憶能力または処理能力を欠いているクライアントに暗号化されていないイベントを送信する。当分野の技術者には分かるとおり、暗号化されていないイベントは、暗号解読されたイベントと同じ情報を含む。イベントの完全性を確実にするため、暗号解読されたイベントを受信するクライアントは、リリース時刻より前にそのイベントを受信してはならない。したがって、信頼されるエッジサーバが、リリース時刻まで暗号解読されたイベントを保持することができるか、または信頼されるエッジサーバが、サーバが暗号解読されたイベントを送信することを必要とするクライアントへの待ち時間を判定し、そのクライアントが、リリース時刻に暗号解読されたイベントを受信するように、リリース時刻より前に暗号解読されたイベントの送信を開始する。
【0051】図2に戻ると、信頼されるエッジサーバ221に、ブロードバンド接続を介して接続されるパーソナル計算デバイス150が接続され、またナローバンド接続を介して接続されるさらに2つのパーソナル計算デバイス50が接続されていることが示されている。2つのパーソナル計算デバイス50が、暗号化されたイベントを記憶し、暗号解読するのに十分な記憶スペースおよび十分な処理能力を欠いている場合、暗号化されたイベントは、信頼されるエッジサーバ221によって暗号解読されることが可能であり、その暗号解読されたイベントを計算デバイス50に送信することができる。
【0052】図3は、信頼されるエッジサーバ221のようなサーバの100のクライアントへの暗号化されたイベントの伝送を示した。図3は、クライアントに送信されるイベントが暗号化されているので、信頼されないサーバの使用を企図したが、図6は、信頼されるエッジサーバの使用を企図している。ただし、図2に示すとおり、信頼されるエッジサーバ220および222のような信頼されるエッジサーバは、信頼されないサーバ230および231のようなさらなる信頼されないサーバを介してクライアントと通信することが可能である。信頼されるエッジサーバ220および222は、以下に示すとおり、適切な時刻に暗号化されていないイベントを送信することによって配信の公正さを維持しながら、起点のサーバ210と最終のクライアント宛先の間で暗号化されていないイベントを伝送することができる限界である。また、図6は、例示することだけを意図し、信頼されるエッジサーバ221に接続される150のクライアントへの本発明によって企図される伝送を示している。具体的には、図6は、図3に示したのと同じ100のクライアントに暗号化されたイベントおよび暗号解読の鍵を送信することを示し、またさらに、十分な記憶能力または十分な処理能力を有さない50の新たなクライアントに暗号解読されたイベントを送信することを示している。
【0053】図6は、暗号化されたイベントを記憶し、暗号解読することができる100のクライアント、およびそれを行うことができず、信頼されるエッジサーバからの暗号解読されたイベントを利用するさらなる50のクライアントへの情報の配布を示す棒グラフ600を含む。図3に関連して前に説明したとおり、セットのクライアント610ないし626が、暗号化されたイベントを、このイベントが時刻650にサーバによって送信された後の何からの時刻に受信する。次に、時刻670に、信頼されるエッジサーバが、暗号解読の鍵を配信することができる。したがって、図6で図示する例に示すとおり、暗号化されたイベントを記憶し、暗号解読する能力を有する100のクライアントのすべてが、ほぼ同時刻に、すなわち、信頼されるエッジサーバが、時刻670に鍵を送信した2秒後にイベントに含まれる情報へのアクセスを受け取る。
【0054】暗号化されたイベントを記憶し、暗号解読する能力を有さない残りの50のクライアントに関しては、信頼されるエッジサーバが、そのイベントを暗号解読し、暗号解読されたイベントを時刻680に送信することができる。図6に図示する例では、時刻680は、暗号解読されたイベントを受信する最初のセットのクライアント640が、リリース時刻660より前には受信しないが、それでも、可能な限りリリース時刻660近くに暗号解読されたイベントを受信するように、信頼されるエッジサーバによって選択されている。さらなるセットのクライアント642、644、および646が、クライアントの信頼されるエッジサーバへの接続の待ち時間に応じて、リリース時刻660の後の何らかの時刻に暗号解読されたイベントを受信することができる。明らかなように、暗号化されたイベントを記憶し、暗号解読することができない50のクライアントに関して、信頼されるエッジサーバが、それでも、暗号解読されたイベントを送信することによってそのイベントに記憶された情報へのアクセスを提供することができ、50のクライアントのそれぞれが、リリース時刻660のすぐ後、図3の元の100のクライアントとともに暗号解読されたイベントを受信したので、比較的公正な方法でその提供を行うことができた。
【0055】図6の信頼されるエッジサーバは、クライアントへの接続の待ち時間の推定を介して、暗号解読されたイベントの送信を開始する時刻680を決定することができる。当分野の技術者には周知のとおり、待ち時間は、データを転送する接続の能力の目安である。本発明は、信頼されるエッジサーバが、各クライアントとの、または代表的セットのクライアントとの通信履歴を含むデータベースを保持できることを企図している。そのようなデータベースを使用して、経験的データに基づき、伝送の予期される時間を判定することができる。データベースは、データ転送速度、ピークデータ転送速度、輻輳情報、接続障害、ならびにクライアントとの前の通信から収集された他のそのようなネットワーク情報などの待ち時間の測定値を含むことが可能である。例えば、履歴上のデータ転送速度の平均値を使用して、またはデータ転送速度の最近の傾向を使用して、伝送に関する予期される時間の推定値を外挿することができる。替わりに、データ転送速度情報を追加の情報と併せて使用して、推定の伝送時間の導出を行う、または精度を高めることができる。経験的観測に基づく伝送の予期される時間に加え、信頼されるエッジサーバは、ネットワーキング機能を使用して伝送の理論上の時間を決定することができる。例えば、信頼されるエッジサーバは、クライアントまたはセットのクライアントに「PING」を行い、クライアントが応答するのにかかる時間を測定して、予期される伝送時間を判定することができる。替わりに、より進んだネットワーキング環境に、クライアントへの接続の待ち時間に関してさらなる情報を信頼されるエッジサーバに提供することができるより進んだネットワーキングプロトコルを持たせてもよい。
【0056】リリース時刻から推定の伝送時間を引くことにより、信頼されるエッジサーバは、暗号解読されたイベントを受信するクライアントが、そのイベントをリリース時刻に受信できるようにする暗号解読されたイベントの送信を開始する送信時刻680を決定することができる。当分野の技術者には分かるとおり、推定の伝送時間は、イベントのサイズを接続の待ち時間で割ることによって判定することができる。
【0057】ただし、接続の待ち時間は変化する可能性があるため、また一部の状況では、リリース時刻より前にイベントによって伝えられる情報にアクセスを得るクライアントが全く存在しないようにすることが極めて重要であるため、信頼されるエッジサーバは、伝送の最小の予期される時間を使用することによって送信時刻を決定し、これにより、最適の条件でも、暗号解読されたイベントが、リリース時刻より前にクライアントに着信しないのを確実にすることができる。伝送の最小の予期される時間は、データベースの中に記憶されている最低のデータ転送速度に基づくこと、または予期しないイベントを考慮に入れる適切な乗数を使用してネットワーク機能を介して獲得されたデータに基づくことが可能である。例えば、伝送の最小の予期される時間は、単に理論的計算を使用して導出された伝送の予期された時間の半分とすることが可能である。最小の予期の伝送時間を使用して、信頼されるエッジサーバは、リリース時刻より前にイベントに含まれる情報にアクセスを得るクライアントが存在しないようにするだけ十分に遅い送信時間を決定することができる。
【0058】図7は、最低限の記憶能力または処理能力を有するクライアントに、イベントに含まれる情報へのアクセスを提供するため、本発明によって企図される別の可能性を示している。棒グラフ700は、図6に関連して前述した棒グラフ600と同様の状況を示している。ただし、図7では、信頼されるエッジサーバが、様々な時刻780ないし786に暗号解読されたイベントを送信し、暗号解読されたイベントを要求したクライアントのすべてが、ほぼ同時刻740にそのイベントを受信するようにすることができる。したがって、図6で最小の時間で暗号解読されたイベントを受信したセットのクライアント640に、信頼されるエッジサーバは、時刻786に暗号解読されたイベントの送信を開始することができる。次に高速のセットのクライアント642に、信頼されるエッジサーバは、時刻784に暗号解読されたイベントの送信を開始することができ、また同様に、信頼されるエッジサーバは、時刻782にクライアント644に、また時刻780にクライアント646にイベントの送信を開始することができる。個々のクライアントまたはグループのクライアントへの送信時刻を時差的にすることにより、信頼されるエッジサーバは、図7に示す時刻740にイベントを必要とするクライアントにほとんど同時刻にその暗号解読されたイベントを提供することができる。
【0059】図7の信頼されるエッジサーバは、前述した経験的方法または理論的方法を介してクライアントまたはグループのクライアントとの間のおおよその接続待ち時間を判定することができ、またその推定値を使用して、様々なクライアントに暗号解読されたイベントを送信する時刻を決定することができる。さらに、信頼されるエッジサーバが、リリース時刻760より前に暗号解読されたイベントを送信することができる前に示した方法を使用して、信頼されるエッジサーバは、セット740の中のクライアントが、セット730の中のクライアントとほぼ同時刻にイベントに含まれる情報へのアクセスを得るようにすることもできる。
【0060】図2に戻ると、ネットワーク接続218および228が、直接接続として示されているが、当分野の技術者には明らかとなるとおり、そのような接続は、任意の数のルータ、信頼されるサーバ、信頼されないサーバ、および他のネットワークパスを含むことが可能である。本発明は、信頼されるサーバ、および以下に述べる接続が、必ずしも特定のハードウェア構成または何らかの物理的限定を必要とせず、既存のハードウェア上で実行されるソフトウェアで実施できることで、オーバーレイネットワークを企図している。この結果、以下にさらに詳細を述べる図2のネットワーク200は、単に既存の物理的ネットワーク上のソフトウェアオーバーレイを表すこと、または新しいネットワークの物理構造を表すことが可能である。
【0061】図2に示す信頼されるエッジサーバへの接続218は、中間の信頼されないサーバを含むことが可能である。以下により詳細に説明するとおり、リリース時刻より前に起点のサーバ210からネットワーク200全体に暗号化されたイベントが送信される。イベントは、暗号化されているため、イベント配信の完全性を危うくすることなく、接続パス218における信頼されないサーバを介して信頼されるエッジサーバまで送られることが可能である。ただし、リリース時刻より前に信頼されるエッジサーバ220、221、および222に暗号解読の鍵が提供される場合は、保護対策を使用して、接続パス218における信頼されないサーバが、リリース時刻より前に鍵を獲得してクライアントに配信しないようにすることを確実にすることができる。本発明で使用することができる保護対策の例には、当技術分野で周知の仮想プライベートネットワーキング(VPN)およびポイントツーポイントトンネル伝送プロトコル(PPTP)を可能にする暗号化アルゴリズムが含まれる。そのようにすると、起点のサーバ210は、以下に詳細に説明するとおり、接続パス218における信頼されないサーバにセンシティブな情報を同時に明かすことなく、信頼されるエッジサーバに暗号解読の鍵、および暗号解読されたイベントまたは暗号化されていないイベントを含め、センシティブな情報をセキュアに通信することができる。
【0062】図2のネットワーク200は、ブロードバンドのクライアント150が接続されているものとして信頼されるエッジサーバ222を示している。したがって、信頼されるエッジサーバ222が、図3に示すように、リリース時刻より前に暗号化されたイベントを提供することができ、またブロードバンドのクライアントが、そのイベントを記憶し、暗号解読する能力を有する可能性が高い。ただし、ナローバンドのクライアント50だけが接続されているものとして示される信頼されるエッジサーバ220が、図4に示すように、ナローバンドのクライアント50のそれぞれが、暗号化されたイベントをリリース時刻より前に受信しているようにするだけ十分に早い送信時刻に暗号化されたイベントを送信しないようにすることが可能である。そのようなネットワーク状況を所与として、本発明は、暗号解読の鍵の発行を調整するように信頼されるエッジサーバ222と220の間、または信頼されるエッジサーバ220、221、222、および起点のサーバ210のすべての間の通信を企図している。図4に関連して前述したとおり、信頼されるエッジサーバは、リリース時刻460の後、終了時刻490までの任意の時刻に暗号解読の鍵を伝送することができる。したがって、470の鍵送信時刻は、他の信頼されるエッジサーバの鍵送信時刻に一致させることが可能である。したがって、信頼されるエッジサーバ222は、図3に示すように、リリース時刻より前に暗号化されたイベントを既に配信していても、図4に示すとおり、リリース時刻の後である鍵送信時刻470に一致するように鍵送信時刻370を遅延させることが可能である。
【0063】調整メッセージ等を信頼されるエッジサーバ間で、または信頼されるエッジサーバと起点のサーバの間で送信して鍵の伝送を調整することができる。替わりに、この調整が、前述した中央鍵サーバによって行われることが可能である。中央鍵サーバは、クライアントが暗号化されたイベントを受信している程度を示す信頼されるエッジサーバからの、またはクライアント自体からのメッセージを受信することができる。その情報に基づき、中央鍵サーバは、調整された鍵送信時刻を決定し、その調整された鍵送信時刻に鍵をクライアントに送信すること、あるいは調整された鍵送信時刻の直前に鍵を送信することによるか、または調整された鍵送信時刻に鍵を送信するように信頼されるエッジサーバに命令を提供することにより、クライアントに転送するよう、信頼されるエッジサーバに鍵を送信することができる。さらに、それぞれの信頼されるエッジサーバおよび起点のサーバの時刻設定を調整するメッセージも送信して、時刻の不適切な設定によりタイミングが悪い鍵の伝送が生じるのを防止することができる。また、中央鍵サーバ、または鍵サーバのネットワークも、信頼されるエッジサーバに合わせて自らの時刻を調整することができる。サーバのすべての時刻設定、つまりクロックを調整するための1つの方法は、ネットワーク時刻プロトコルを使用して、政府の標準設定機関によって提供されるような標準時刻にサーバを同期させることである。フェールセーフとして、各信頼されるエッジサーバが、調整メッセージを受信しなかった場合、リリース時刻が過ぎているという条件付きで、自らのクライアントがレディーになるとすぐに鍵を送信することができる。
【0064】また、本発明は、信頼されるエッジサーバが、イベントを暗号解読し、暗号解読されたイベントを伝送しなければならないときでさえ、信頼されるエッジサーバ、特殊化された中央鍵サーバ、特殊化された分散鍵サーバ、起点のサーバ、または以上のサーバの組み合わせの間の鍵送信時刻調整を企図している。例えば、前述した図2のネットワーク環境に戻ると、信頼されるエッジサーバ221に、前述した図6または7に示したような方法で信頼されるエッジサーバ221がイベントを暗号解読し、暗号解読されたイベントを伝送するのを必要とするクライアントが接続されていることが可能である。図6および7に示すとおり、信頼されるエッジサーバは、時刻680に、または一連の時刻780、782、784、および786に暗号解読されたイベントの送信を開始することができる。さらに、前述したとおり、送信時刻は、信頼されるエッジサーバとクライアントの間の接続の推定された待ち時間に基づいて計算することができる。ただし、前述した計算は、一般に、リリース時刻に暗号解読されたイベントへのアクセスを提供する。信頼されるエッジサーバまたは起点のサーバが、リリース時刻より後の時刻に鍵を送信するように調整している場合、暗号解読されたイベントを送信する信頼されるエッジサーバは、計算においてリリース時刻の代わりにその調整された時刻を使用して暗号解読されたイベントの送信時刻を決定することができる。そのようにすると、暗号解読されたイベントを受信するクライアントは、暗号化されたイベントを受信しており、鍵を待っているクライアントより前にイベントに含まれる情報にアクセスを受けることがない。
【0065】信頼されるエッジサーバ間で鍵および暗号解読されたデータの伝送の調整を行うための1つの方法は、起点のサーバ210のような起点のサーバから信頼されるエッジサーバにイベントが配信される受信時刻に基づくことが可能である。信頼されるエッジサーバが、起点のサーバから十分に早期にイベントを受信しなかった場合、クライアントへの暗号化されたイベントの伝送は、図4に示した状況のようにリリース時刻より前に完了しない可能性がある。しかし、前述したような経験的推定または理論的推定を介して、信頼されるエッジサーバは、自らのクライアントへの接続の推定の伝送時間を獲得することができ、これにより、クライアントのすべて、または大多数への暗号化されたイベントの伝送を完了するのに要する伝送時間を推定することができる。次に、暗号化されたイベントの伝送が完了するが、それでも終了時刻より前であるその推定時刻より後になるよう、暗号解読の鍵を送信するための調整された時刻を選択することができる。調整された時刻が選択されると、暗号解読されたイベントを送信する信頼されるエッジサーバは、より詳細に前述した方法で、リリース時刻ではなくその時刻を使用して、暗号解読されたイベントをいつ送信するかを決定することができる。
【0066】本発明は、暗号化されたイベント、暗号解読されたイベント、および暗号解読の鍵を含め、ネットワーク環境200全体でデータを伝送するための効率的なネットワークプロトコルの使用を企図している。1つのそのようなプロトコルが、インターネットプロトコル(IP)を使用するネットワークで一般的なマルチキャスティングプロトコルである。当分野の技術者には分かるとおり、マルチキャストトラフィックは、単一の宛先IPアドレスに送信されるが、複数のIPホストにより、ネットワーク環境200におけるIPホストの場所に関わらず受信され、処理される。トラフィックは、単一の宛先IPアドレスに送信されるため、マルチキャスティングにより、各クライアントまたはそれぞれの信頼されるエッジサーバに個別のコピーを送信する必要性が回避される。ただし、ブロードキャストとは異なり、マルチキャスティングは、特定のIPマルチキャストアドレスを聴取しているネットワークデバイスだけが、情報を受信し、処理するのを可能にする。一般に、ホストグループは、所定のIPマルチキャストアドレスで聴取を行っているホストのセットとして定義される。ホストグループのサイズに制限は存在せず、またホストグループのメンバシップが変化すること、また別の方法で動的とすることが可能である。さらに、ホストグループは、いくつかのルータおよび複数のネットワークセグメントにまたがっていることが可能であり、情報を指定のIPマルチキャストアドレスにマルチキャストするのに、計算デバイスが、ホストグループのメンバであることは必要とされない。アプリケーションは、マルチキャストを受信するのに、自らが所定のIPマルチキャストアドレスでマルチキャストを受信することを適切なネットワーキング層に知らせることができる。
【0067】ただし、マルチキャスティングの性質のため、タイミングが重要である状況では、ホストのすべてが、再送を要求する必要なしに伝送されたデータを受信することが好ましい。データが適切に受信される確率を高めるための1つの方法は、冗長性、または他の誤り訂正アルゴリズムを使用することである。暗号解読の鍵などのデータの小さい要素の場合、冗長性が最も簡単な解決策である。例えば、暗号解読の鍵は、数キロバイトまたはそれより小さいオーダのものとすることが可能である。10倍の冗長性が実施されたとしても、メッセージのサイズが、増加するのはおよそ30キロバイトまでである。56kbpsで、さらには33.6kbpsで動作する従来のアナログモデムなどのナローバンド接続を使用してさえ、30キロバイトをダウンロードするのに、10秒間ほどしかかからない可能性がある。したがって、従来の標準で、相当な量の冗長性を使用することによってさえ、短い時間幅の中で暗号解読の鍵の伝送を達することができる。
【0068】鍵のサイズが小さいことにより、複数のサーバが、ネットワークの待ち時間にそれほど影響を与えることなく、ネットワーク200全体に鍵を伝送することが可能になる。鍵を伝送するのに複数のサーバを利用することにより、複数のネットワークパスを使用してクライアントのそれぞれに鍵を配信することができる。各クライアントが、複数のネットワークパスを介して鍵を受信することができるため、輻輳の生じたノード、またはその他のネットワークボトルネックにより、クライアントのそれぞれへの鍵の伝送時間が影響を受ける可能性が相当に低くなる。というのは、クライアントが、輻輳の生じていないパスを介して少なくとも1つの鍵を受信する可能性が高いからである。
【0069】明らかなように、本発明は、信頼されるサーバに接続されたクライアントへのイベントの公正な配信を、クライアントの帯域幅の違いにも関わらず可能にする。信頼されるエッジサーバが、イベントを暗号化し、伝送される鍵を介してリリース時刻に、または終了時刻より前に暗号解読されるようにクライアントに配信するか、またはリリース時刻より前にイベントの暗号解読されたバージョンを伝送するのを開始して、リリース時刻に、または終了時刻より前にそのイベントがクライアントに着信するようにすることができる。そのようにすると、可能な限り多くのクライアントに、ほぼ同時刻にイベントへのアクセスが提供される。
【0070】本発明の原理を適用することができる多数の可能な実施形態に鑑みて、図面に関連して本明細書で説明した実施形態は、例示することだけを意図するものであり、本発明の範囲を限定するものと受け取られるべきではないことを認識されたい。例えば、ソフトウェアで示した例としての実施形態の要素をハードウェアで実装するのが可能であり、またその逆も真であり、あるいは本発明の趣旨を逸脱することなく、例としての実施形態の構成および詳細を変更できることが、当分野の技術者には認められよう。したがって、本明細書で説明した本発明は、頭記の特許請求の範囲および等価のものに含まれることが可能なすべてのそのような実施形態を企図している。
【出願人】 【識別番号】391055933
【氏名又は名称】マイクロソフト コーポレイション
【氏名又は名称原語表記】MICROSOFT CORPORATION
【出願日】 平成15年3月17日(2003.3.17)
【代理人】 【識別番号】100077481
【弁理士】
【氏名又は名称】谷 義一 (外1名)
【公開番号】 特開2003−330897(P2003−330897A)
【公開日】 平成15年11月21日(2003.11.21)
【出願番号】 特願2003−72636(P2003−72636)