(57)【要約】  一例では、データセキュリティシステムは、あるオブジェクト（例えばファイル、又は、ファイルのハッシュ）用のクエリデータに基づいてファイルの普及度を決定し得る。ある例示的なアルゴリズムは、データレコードを殆ど格納せずに、普及度の統計的に尤もな推定値を用いて提供され得、従って、Ｏ（１）時間複雑性（すなわち定数時間）における普及度情報を提供し得る。そのようなアルゴリズムは、例えば、あるファイルの普及度に対するクエリへの素早い応答を提供すべく、準リアルタイムで適用され得る。
2017516172.tif 000002
【特許請求の範囲】
【請求項１】
クエリに基づいて普及度情報を提供するための複数の命令を格納した機械可読非一時的記憶媒体であって、前記複数の命令は、少なくとも１つのプロセッサによって実行された場合に、前記少なくとも１つのプロセッサに、
データソースから複数の目標値のシーケンスを取得する手順と、
通信デバイスからクエリデータを受信する手順と、
前記通信デバイスと関連付けられた識別子に基づいて複数のクエリ値のシーケンスを生成する手順と、
前記複数のクエリ値のシーケンスと前記複数の目標値のシーケンスとを比較して、一致している値の数を識別する手順と、
前記一致している値の数に少なくとも部分的に基づいて、前記クエリデータ用の普及度値を前記通信デバイスに出力する手順と
を実行させる、機械可読非一時的記憶媒体。
【請求項２】
前記複数の命令は、前記少なくとも１つのプロセッサによって実行された場合に、前記少なくとも１つのプロセッサに、更に、
前記一致している値の数がデータストアに格納されている一致しているものの最大数を超えていると決定すると、前記データストア内で一致しているものの最大数を更新する手順と、
統計モデルを用いて、前記一致しているものの最大数に基づき、前記普及度値と、前記普及度値における信頼度とを算出する手順と
を実行させる、請求項１に記載の機械可読非一時的記憶媒体。
【請求項３】
前記複数の命令は、前記少なくとも１つのプロセッサによって実行された場合に、前記少なくとも１つのプロセッサに、更に、
前記通信デバイスから、前記クエリデータと同じ追加のクエリデータを受信する手順と、
前記追加のクエリデータを受信したことに応答して、データストア内で一致しているものの最大数を更新しないことによって、前記データストア内で前記一致しているものの最大数を維持する手順と
を実行させる、請求項１または２に記載の機械可読非一時的記憶媒体。
【請求項４】
前記比較する手順は、前記複数のクエリ値のシーケンスおよび前記複数の目標値のシーケンスの各々における初めの値で始まる、前記複数のクエリ値のシーケンスにおける複数の連続値と、前記複数の目標値のシーケンスにおける対応する複数の連続値との一対比較を含む、
請求項１または２に記載の機械可読非一時的記憶媒体。
【請求項５】
前記データソースから前記複数の目標値のシーケンスを取得する手順が、
第１通信デバイスから第１のクエリデータを受信する手順と、
前記第１通信デバイスと関連付けられた識別子に基づいて第１の複数のビットのシーケンスを生成する手順と、
前記複数の目標値のシーケンスとして前記第１の複数のビットのシーケンスをデータストアに格納する手順と
を含む、請求項１または２に記載の機械可読非一時的記憶媒体。
【請求項６】
前記通信デバイスから前記クエリデータを受信する手順が、第２の通信デバイスから第２のクエリデータを受信する手順を含み、前記通信デバイスと関連付けられた前記識別子に基づいて前記複数のクエリ値のシーケンスを生成する手順が、前記第２の通信デバイスと関連付けられた識別子に基づいて第２の複数のビットのシーケンスを生成する手順を含む、
付けられた識別子に基づいて第２の複数のビットのシーケンスを生成することを含む、
請求項５に記載の機械可読非一時的記憶媒体。
【請求項７】
前記第１の複数のビットのシーケンスを生成する手順が、前記第１通信デバイスと関連付けられた前記識別子にハッシュ関数を適用して前記第１の複数のビットのシーケンスを生成する手順を含み、前記第２の複数のビットのシーケンスを生成する手順が、前記第２の通信デバイスと関連付けられた前記識別子に前記ハッシュ関数を適用して前記第２の複数のビットのシーケンスを生成する手順を含む、
請求項６に記載の機械可読非一時的記憶媒体。
【請求項８】
前記ハッシュ関数が、メッセージダイジェストアルゴリズム、暗号学的ハッシュ関数、メッセージダイジェストアルゴリズム５（ＭＤ５）、セキュアハッシュアルゴリズム１（ＳＨＡ１）、又は、セキュアハッシュアルゴリズム（ＳＨＡ２５６）のうちの少なくとも１つを含む、
請求項７に記載の機械可読非一時的記憶媒体。
【請求項９】
前記クエリデータがファイルのハッシュである、
請求項１または２に記載の機械可読非一時的記憶媒体。
【請求項１０】
前記複数のクエリ値のシーケンスの長さが、閾値に基づいて決定される、
請求項１または２に記載の機械可読非一時的記憶媒体。
【請求項１１】
前記複数の命令は、前記少なくとも１つのプロセッサによって実行された場合に、前記少なくとも１つのプロセッサに、更に、
前記普及度値における前記信頼度に基づいて前記普及度値を重み付けする手順
を実行させる、請求項２に記載の機械可読非一時的記憶媒体。
【請求項１２】
前記普及度値が、ある桁に対応する少なくとも１つの値を含む、
請求項１または２に記載の機械可読非一時的記憶媒体。
【請求項１３】
前記信頼度が、前記少なくとも１つの値に対して計算された確率を含む、
請求項２に記載の機械可読非一時的記憶媒体。
【請求項１４】
クエリに基づいて普及度情報を提供するための装置であって、
少なくとも１つのメモリ素子と、
前記少なくとも１つのメモリ素子に結合されている少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合されている評判情報サーバと
を備え、
前記評判情報サーバは、
データソースから複数の目標値のシーケンスを取得して、
通信デバイスからクエリデータを受信して、
前記通信デバイスと関連付けられた識別子に基づいて複数のクエリ値のシーケンスを生成して、
前記複数のクエリ値のシーケンスと前記複数の目標値のシーケンスとを比較して一致している値の数を識別して、
前記一致している値の数に少なくとも部分的に基づいて、前記クエリデータ用の普及度値を前記通信デバイスに出力する、
装置。
【請求項１５】
前記評判情報サーバが更に、
前記一致している値の数がデータストアに格納されている一致しているものの最大数を超えていると決定すると、前記データストア内で前記一致しているものの最大数を更新し、
統計モデルを用いて、前記一致しているものの最大数に基づき、前記普及度値と、前記普及度値における信頼度とを算出する、
請求項１４に記載の装置。
【請求項１６】
前記評判情報サーバは更に、
前記通信デバイスから、前記クエリデータと同じ追加のクエリデータを受信し、
前記追加のクエリデータを受信したことに応答して、データストア内で一致しているものの最大数を更新しないことによって、前記データストア内で前記一致しているものの最大数を維持する、
請求項１４または１５に記載の装置。
【請求項１７】
前記データソースから前記複数の目標値のシーケンスを取得することが、
第１通信デバイスから第１のクエリデータを受信すること、
前記第１通信デバイスと関連付けられた識別子に基づいて第１の複数のビットのシーケンスを生成すること、及び、
前記複数の目標値のシーケンスとして前記第１の複数のビットのシーケンスをデータストアに格納すること
を含む、請求項１４または１５に記載の装置。
【請求項１８】
前記通信デバイスから前記クエリデータを受信することが、第２の通信デバイスから第２のクエリデータを受信することを含み、前記通信デバイスと関連付けられた前記識別子に基づいて前記複数のクエリ値のシーケンスを生成することが、前記第２の通信デバイスと関連付けられた識別子に基づいて第２の複数のビットのシーケンスを生成することを含む、
請求項１７に記載の装置。
【請求項１９】
前記第１の複数のビットのシーケンスを生成することが、前記第１通信デバイスと関連付けられた前記識別子にハッシュ関数を適用して前記第１の複数のビットのシーケンスを生成することを含み、前記第２の複数のビットのシーケンスを生成することが、前記第２の通信デバイスと関連付けられた前記識別子に前記ハッシュ関数を適用して前記第２の複数のビットのシーケンスを生成することを含む、
請求項１８に記載の装置。
【請求項２０】
クエリに基づいて普及度情報を提供するための方法であって、
データソースから複数の目標値のシーケンスを取得する段階と、
通信デバイスからクエリデータを受信する段階と、
前記通信デバイスと関連付けられた識別子に基づいて複数のクエリ値のシーケンスを生成する段階と、
前記複数のクエリ値のシーケンスと前記複数の目標値のシーケンスとを比較して、一致している値の数を識別する段階と、
前記一致している値の数に少なくとも部分的に基づいて、前記クエリデータ用の普及度値を前記通信デバイスに出力する段階と
を備える方法。
【請求項２１】
前記一致している値の数がデータストアに格納されている一致しているものの最大数を超えていると決定すると、前記データストア内で一致しているものの最大数を更新する段階と、
統計モデルを用いて、前記一致しているものの最大数に基づき、前記普及度値と、前記普及度値における信頼度とを算出する段階と
を更に備える請求項２０に記載の方法。
【請求項２２】
前記通信デバイスから、前記クエリデータと同じ追加のクエリデータを受信する段階と、
前記追加のクエリデータを受信したことに応答して、データストア内で一致しているものの最大数を更新しないことによって、前記データストア内で前記一致しているものの最大数を維持する段階と
を更に備える、請求項２０または２１に記載の方法。
【請求項２３】
前記データソースから前記複数の目標値のシーケンスを取得する段階が、
第１通信デバイスから第１のクエリデータを受信する段階と、
前記第１通信デバイスと関連付けられた識別子に基づいて第１の複数のビットのシーケンスを生成する段階と、
前記複数の目標値のシーケンスとして前記第１の複数のビットのシーケンスをデータストアに格納する段階と
を含む、請求項２０または２１に記載の方法。
【請求項２４】
前記通信デバイスから前記クエリデータを受信する段階が、第２の通信デバイスから第２のクエリデータを受信する段階を含み、前記通信デバイスと関連付けられた前記識別子に基づいて前記複数のクエリ値のシーケンスを生成する段階が、前記第２の通信デバイスと関連付けられた識別子に基づいて第２の複数のビットのシーケンスを生成する段階を含む、
請求項２３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
説明される実施形態は概して、コンピュータセキュリティの分野に関する。より具体的には、クエリデータを用いて普及度情報を提供することに関する。
【背景技術】
【０００２】
現代のコンピューティング技術は、グローバルに分散されたリソースに亘って、大量のデータを維持し続ける能力を提供し得る。特定の分散アーキテクチャは、要求に応答して大きな分散データセット内の傾向を識別する能力を可能にする（例えば、金融市場アナリスト、医学的な流行病の追跡、データセキュリティシステム等）。そのようなデータを処理することは困難である。例えば、データセキュリティシステムは、分散データを分析してセキュリティ脅威を識別し、最新のセキュリティ情報を、各々がシステムから遠くに位置し得る様々なエンドポイントに提供する。
【図面の簡単な説明】
【０００３】
本開示と、その機能および利点とのより完全な理解を提供するべく、添付の図と併せて以下の説明を参照する。同様の参照番号は、同様の部分を表す。
【０００４】
【図１】本明細書の１つ又は複数の実施形態による、評判情報を含むデータセキュリティ情報を提供するための例示的なシステムを示すコンポーネント図である。
【０００５】
【図２】本明細書の１つ又は複数の実施形態による、評判情報システムのブロック図である。
【０００６】
【図３】本明細書の１つ又は複数の実施形態による、クエリデータ用に普及度情報を提供するための論理を示すフローチャートである。
【０００７】
【図４】本明細書の１つ又は複数の実施形態による、複数のクエリ値を複数の目標値に一致させるための、複数の可変数の連続値に対する複数の確率分布のグラフィカル表現である。
【０００８】
【図５】複数の確率に基づいて、幾つかの一致する値と普及度情報との間の例示的な関係性を示すグラフである。
【０００９】
【図６Ａ】本明細書の１つ又は複数の実施形態による、ファイルのハッシュ用に普及度情報を提供するための論理を示すフローチャートを描いている。
【図６Ｂ】本明細書の１つ又は複数の実施形態による、ファイルのハッシュ用に普及度情報を提供するための論理を示すフローチャートを描いている。
【００１０】
【図７】本明細書のある実施形態による、３つのデバイスに対応する３つの例示的なビットのシーケンスを示している。
【００１１】
【図８】ある実施形態による、例示的なプロセッサに結合されたメモリのブロック図である。
【００１２】
【図９】ある実施形態による、ポイントツーポイント（ＰｔＰ）構成で配置された例示的なコンピューティングシステムのブロック図である。
【発明を実施するための形態】
【００１３】
データセキュリティを提供することは、多くの場合、大量のデータを処理することを必要とする。データセキュリティ情報を提供するシステムは、１つ又は複数のオブジェクトに関連するセキュリティ情報用に、複数の（例えば、３０日間で数百万または数十億の）クエリを受信し得る。オブジェクトは、ファイル、ハッシュ値、ファイルのハッシュ、又は、その他のデータオブジェクトであるかもしれない。システムは、複数のクエリの各々に応答して、評判（Ｒｅｐｕｔａｔｉｏｎ）スコアを提供し得る。評判スコアは、問い合わせされたオブジェクトが悪意のもの（例えば、マルウェア、又は、ウイルスで汚染されたファイル）である可能性を反映する。データセキュリティシステムは、評判スコアを用いて、連続動作を決定し得る（例えば、そのファイルを隔離する、そのファイルを削除する、および／または、そのファイルを利用する任意のスレッドが作動することを停止する）。評判スコアは、複数の要素に基づいて決定され得る。評判スコアを決定するための複数の要素は、オブジェクトの複数のコンテンツ、オブジェクト用のクエリの数、および／または、オブジェクトの普及度を含み得る。各要素は、評判スコアのインジケータとして機能し得る。例えば、普及度は、データセキュリティシステムにオブジェクトを問い合わせた一意的デバイスの数を表し得、評判スコアを提供するときに用いられ得る。同様に、オブジェクト用のクエリの数は、評判スコアを提供するときに用いられ得る。ある例として、サーバによって出力された各ファイル例は、ハッシュされている場合に異なるハッシュ値を有するので、サーバ側多形性マルウェアは非常に低い普及度を有する。従って、高い普及度は高い評判スコアに対応し得、その一方で、低い普及度は低い評判スコアに対応し得る。ある例では、幾つかのオブジェクトは、とても普及していて、悪意のものとして知られている。そのような場合、高い普及度スコアは、高い評判スコアに対応し得ない。
【００１４】
評判スコアを提供するデータセキュリティシステムを実装することの複数の課題は、些細なことではない。例えば、システムは、１つ又は複数の分散コンポーネント（例えば、異なる複数の都市、州、又は、国に分散された複数のサーバ）を備え得、複数のデバイスからの複数のクエリを処理し得る。各デバイスは、異なるタイプのデバイス（例えば様々なオペレーティングシステム）であり得、データセキュリティシステムから遠いものであり得る。従って、そのようなシステムを実装することは、複数の要素に基づいて評判スコアを提供する複雑な分散処理を必要とし得る。例えば、あるファイルを問い合わせた一意的デバイスの数をカウントすることによって当該ファイルの普及度を算出することは、当該ファイル用に一意的デバイスのリストを維持することを必要とし得る。一意的デバイスの数をカウントすることの課題について、以下の例示を検討する。デバイスの数が１０７桁であり、ファイルの数が１０９桁であり、国の数が１０２桁であると仮定した場合、システムは、一意的デバイスの数をカウントすべく、１０１８エントリ用のデータレコードを処理し得る（例えば、データベースレコードを問い合わせる、又は、データベース内の複数のテーブルに亘って結合する）。従って、一意的デバイスの数をカウントすることは、必須のデータを算出し、格納し、問い合わせるべく、かなりの処理および記憶容量を必要とし得る。更に、初めてファイルを報告する各デバイスは、高いデータチャーンレートを潜在的に作り出す、グローバルな状態変化（例えばカウントのインクリメント）を必要とし得る。更に、デバイスの数をカウントする処理は、時間複雑性Ｏ（ｎ）を有し得る。
【００１５】
以下の開示は、本開示の異なる複数の特徴を実装するための、異なる多くの実施形態または例を提供する。本開示を単純化すべく、以下では、複数のコンポーネントおよび配置の複数の特定の例が説明される。これらは勿論、単に複数の例に過ぎず、限定することを意図されていない。更に、本開示は、様々な例において、複数の参照番号および／または文字を反復し得る。この反復は、単純化および明確化を目的とするものであって、それ自体は、論じられる様々な実施形態および／または構成間の関係を決定付けているわけではない。
【００１６】
［クエリデータを用いた普及度情報］
クエリデータを用いて、普及度情報の統計に基づく推定値またはクエリの数を決定することで、データセキュリティ情報を提供するシステムは、より少ない計算と記憶容量とを必要とし得、システムの応答性を高め得る。有利には、これは、普及度の数学的に尤もな推定値を提供し、クエリが受信されたときに（すなわち、クエリタイムに、リアルタイムに、又は、準リアルタイムに）決定されることができ、これによって、多数のデータレコードを処理することからもたらされる長いレイテンシを避けることができる。
【００１７】
図１は、本明細書の１つ又は複数の実施形態による、評判情報を含むデータセキュリティ情報を提供するための例示的なシステムを示すコンポーネント図である。この例では、セキュリティ情報システム１００は、複数のセキュリティサーバ１０２と、複数の評判情報システム１０４と、通信ネットワーク１０６と、複数の通信デバイス１０８とを備える。複数の通信デバイス１０８は、通信ネットワーク１０６を介して、複数のセキュリティサーバ１０２へとデータを送信し、および／または、それらからデータを受信する。
【００１８】
複数の通信デバイス１０８は各々、通信ネットワーク１０６を介して複数のセキュリティサーバ１０２へと、オブジェクトに関連するセキュリティ情報用のクエリ（例えばクエリデータ）を提出する。セキュリティ情報は、例えば、評判スコア、普及度スコア、クエリの数、および／または、問い合わせた一意的デバイスの数を含んでもよい。ある実装では、複数の通信デバイス１０８は、ユーザ選択に基づきファイルの普及度スコアを要求するクエリデータを生成して、当該ファイルを問い合わせてもよい。代替的に、通信デバイス１０８上で実行するアプリケーションが、データスキャンプロシージャの一部として、クエリデータを生成してもよい。ある実装では、複数の通信デバイス１０８は、コンピューティングデバイス、有線若しくは無線通信デバイス、モバイルフォン、デスクトップコンピュータ、又は、セキュリティ情報用の複数のクエリを提出し得るその他の通信デバイスのうちの少なくとも１つを含んでもよい。
【００１９】
複数のセキュリティサーバ１０２は、オブジェクト用のデータセキュリティ情報を、少なくとも部分的に当該オブジェクト用の評判情報システム１０４の出力に基づいて、複数の通信デバイス１０８へと提供するように構成されてもよい。複数の通信デバイス１０８からクエリデータを受信したことに応答して、複数のセキュリティサーバ１０２は、当該クエリデータを処理し、および／または、処理用に当該クエリデータを複数の評判情報システム１０４に提供してもよい。データを処理した後、複数のセキュリティサーバ１０２は、オブジェクトに関連するセキュリティ情報を含む応答を、複数の通信デバイス１０８へと送信してもよい。当該応答は、当該オブジェクトが悪意のものであるかどうか、そのインジケーションに対する機密レベル、評判スコア、普及度、クエリの数、問い合わせた一意的デバイスの数、および／または、それらの推定値を含んでもよい。複数のセキュリティサーバ１０２の例示的実装は、複数の通信デバイス１０８へと応答を送信するためのウェブベースのフレームワークを提供してもよい。
【００２０】
通信ネットワーク１０６は、複数のセキュリティサーバ１０２と複数の通信デバイス１０８との間でデータを送信するように構成されてもよい。通信ネットワーク１０６の例示的実装は、複数の無線又は有線技術（例えばローカルエリアネットワーク（ＬＡＮ）、無線ＬＡＮ、セルラーネットワーク）を利用してもよく、様々な通信および／またはセキュリティプロトコル（例えば、インターネットプロトコル（ＩＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、Ｓｅｃｕｒｅ Ｓｏｃｋｅｔｓ Ｌａｙｅｒ（ＳＳＬ）、簡易オブジェクトアクセスプロトコル（ＳＯＡＰ））をサポートしてもよい。
【００２１】
明確化を目的として、図１は、複数の通信デバイス１０８、複数のセキュリティサーバ１０２および通信ネットワーク１０６の各々を特定の数だけ描いている。しかしながら、任意の数のサーバ、デバイスおよびネットワークが、本明細書の１つ又は複数の実施形態による、システム内に実装されてもよい。これに加えて、図１に示されている例示的な評判情報システム１０４は、２つのコンポーネント１０４ａおよび１０４ｂを示している。しかしながら、評判情報システム１０４は、１つの位置に（例えば単一デバイスに）、又は、複数の位置に（例えば複数のデバイスに亘って分散されて）実装されてもよい。
【００２２】
図２は、本明細書の１つ又は複数の実施形態による、評判情報システムのブロック図である。図２に示される評判情報システム１０４は、図１に示される評判情報システム１０４の例示的実装である。この例では、評判情報システム１０４は、クエリシステム２０２と、データストア２０８と、データマイニングシステム２１０と、クエリデータ２０４と、評判データ２０６とを備える。クエリシステム２０２、データストア２０８およびデータマイニングシステム２１０の各々は、それらのシステムとデータストアとの間でのデータの双方向送信を可能にすべく、互いに結合されている。
【００２３】
クエリシステム２０２は、クエリデータ２０４を受信して、評判データ２０６を出力する。ある実装では、クエリシステム２０２は、異なる複数の手法を用いて、新生の脅威または周知の脅威に反応してもよい。新生の脅威は、低い普及度のファイルであって、且つ、未知のレベルのセキュリティ脅威であってもよい。周知の脅威は、高い普及度のファイルであって、且つ、既知のレベルのセキュリティ脅威であってもよい。例えば、新生の脅威に対して、当該システムは、即座に更新して、更新した評判スコアをクラウドベースのサーバへと公布してもよい。しかしながら、周知の脅威に対しては、当該システムは、（例えば、その評判が、既知であって、比較的安定したものであり得るので）評判スコアを即座に更新せず、且つ、更新した評判スコアをクラウドベースのサーバへと即座に公布しなくてもよい。代わりに、周知の脅威についてのデータは、データマイニングシステム２１０によって処理され、後で更新してから更新した評判スコアをクラウドベースのサーバに公布するのに用いられてもよい。処理における差異は、その評判が更新および／または分散される早さである。低い普及度のファイルに対しては、その脅威が急速に進化しているかもしれないので（例えば多形性マルウェア）、更新した推定値を迅速に公布することが重要であってもよい。高い普及度のファイルに対しては、詳細な分析と過去に使われたコンテキストとを提供して、例えば、どのように悪意のファイルが拡散しているのか、及び、その悪意のファイルが拡散したメカニズムを決定することが重要であってもよい。
【００２４】
ある実施形態では、クエリシステム２０２は、少なくとも１つのプロセッサを用いて、普及度情報を提供するための論理を実装してもよい。例えば、クエリシステム２０２は、図３に示されるように、クエリデータ用の普及度情報を提供するための論理を実装してもよく、および／または、図６Ａおよび図６Ｂに示されるように、ファイルのハッシュ用の普及度情報を提供するための論理を実装してもよい。
【００２５】
クエリデータ２０４は、評判情報システム１０４に問い合わせするのに用いられるデータをカプセル化する。ある実施形態では、クエリデータ２０４は、デバイスと関連付けられた識別子、通信デバイス１０８用のメタデータ、および／または、ファイルと関連付けられた識別子のうちの少なくとも１つを含んでもよい。デバイスと関連付けられた識別子は、デバイス識別子、クエリを生成および／または提出したデバイスのグローバルに一意的で不透明な識別子、デバイス識別子のハッシュ、そのデバイス上に存在するオペレーティングシステムのうちの少なくとも１つを含んでもよい。通信デバイス１０８用のメタデータは、クエリを生成および／または提出したデバイスのＩＰアドレス、そのデバイスが位置している国、および／または、それらの組み合わせを含んでもよい。ファイルと関連付けられた識別子は、ファイル識別子、クエリの対象となるファイルのグローバルに一意的で不透明な識別子、クエリの対象となるファイルのグローバルに一意的で不透明なハッシュ、ファイルの複数のコンテンツの少なくとも一部のハッシュ、ファイルの全コンテンツの全体のハッシュ、ファイル用のユニフォームリソースロケータ（ＵＲＬ）、および／または、それらの任意の組み合わせを含んでもよい。
【００２６】
評判データ２０６は、評判情報を提供するのに用いられるデータをカプセル化する。ある実装では、評判データ２０６は、推定値および正確な応答のうちの少なくとも１つを含んでもよい。例えば、評判データ２０６は、（例えば、問い合わせているデバイスに関わらず）オブジェクトを問い合わせた、又は、オブジェクト用に受信したクエリの数を問い合わせた一意的デバイスの、推定数または正確な数を含んでもよい。
【００２７】
データストア２０８は、複数の通信デバイス１０８、データマイニングシステム２１０、又は、クエリシステム２０２から受信したデータを格納するように構成されてもよい。データストア２０８に格納されたデータは、クエリデータ２０４、評判データ２０６、又は、評判またはセキュリティに関連する他のデータを含んでもよい。ある例示的実装では、データストア２０８は、関連するデータベース、超並列処理（ＭＰＰ）データベース、構造化照会言語（ＳＱＬ）データベース（例えばＣＳＲ／データベースインスタンス）、ＮｏＳＱＬデータベース、ＭｏｎｇｏＤＢ、および／または、Ｈａｄｏｏｐのうちの少なくとも１つを含んでもよい。
【００２８】
データマイニングシステム２１０は、データストア２０８、クエリシステム２０２、クエリデータ２０４、および／または、評判データ２０６にアクセスするように構成されてもよい。ある実装では、データマイニングシステム２１０は、統計的分析、クラスタ化、分類、機械学習、ＭａｐＲｅｄｕｃｅ、および／または、回帰のうちの少なくとも１つを利用してもよい。
【００２９】
［クエリの数に基づいて普及度を推定するための統計モデル］
オブジェクトの普及度は、オブジェクト用に受信したクエリの数に基づいて推定されてもよい。従って、システムがオブジェクト用に受信したクエリの数の推定値は、オブジェクトの普及度の推定値として機能してもよい。クエリの数に基づいて普及度を推定するための統計モデルは、ｎ個の側面を有するダイスを転がす結果のように、オブジェクト（例えば、ファイル、ファイルのハッシュ等）ファイル用のクエリを表わしてもよい。ここでは、各「側面」は、等しい確率の転がし結果を有する。これから論じられるように、ｎの値は、オブジェクト用に受信したクエリの数の推定値として機能する。ｎ個の側面を有するダイスを転がす結果は、クエリ値であってもよい。ダイスの目標値は、０＜目標値≦ｎである整数値であってもよい。この例では、クエリ値が目標値と一致する可能性は、ダイスがｎ回だけ転がされた可能性と相互に関連がある。換言すると、ダイスの結果が目標値と一致するならば、ダイスがｎ回だけ転がされたと推定できる。ダイスの転がしはクエリを表わすので、ダイスがｎ回だけ転がされたとの推定は、ｎ個のクエリがオブジェクト用に受信されたとの推定と対応する。従って、当該モデルは、オブジェクト用のクエリの数の数学的に尤もな推定値に基づく普及度の推定値を提供し得る。
【００３０】
各オブジェクト用に受信したクエリの数は複数のファイル間で異なり得るので、当該モデルは、各オブジェクトに対して個々に適用されてもよい。任意のクエリがオブジェクト用に受信される前は、当該オブジェクト用のクエリの数は既知である。すなわち、それはゼロに等しい。この初期の時点から、ｎの値は、関心ある目標値を識別するのに選択されてもよい。例えば、ｎの値が、ある桁（例えば、１；１０；１００；１，０００；１０，０００；１００，０００；等）を表わしている値に増分的にセットされるならば、当該モデルは、オブジェクトを問い合わせたデバイスの数の桁に対する推定値を提供してもよい。更なる例として、ｎの値と目標値との両方が１０にセットされてもよい。ダイスが「転がされる」毎に、その結果（すなわちクエリ値）は目標値と比較される。ある実装では、乱数発生器（ＲNG）が、ｎ個の側面を有するダイスを転がす結果を表わす複数の値を生成してもよい。その結果が目標値と一致するならば、ｎの値は、オブジェクト用のクエリの数の推定値として記録されてもよい。その推定値が記録された後に、ｎの値は、関心ある次の数へと増やされてもよい（例えば、次の桁へと増やされてもよく、この例では、１０から１００へと増える）。例えば、４個のクエリが受信されたならば、桁は１であってもよい。すなわち、３５４，００１個のクエリが受信されたならば、桁は１００，０００であってもよい。ある実装では、その結果が目標値と一致した後に、その目標値は、ｎの値に一致すべく増やされてもよく、同じ値のままであってもよく、又は、ゼロより大きくｎ以下の新しい値が割り当てられてもよい。各オブジェクトに対して、複数の推定値、クエリ値、目標値、および／または、ｎ用の値の各々に対する値が、個々に格納されてもよい。
【００３１】
図３は、本明細書の１つ又は複数の実施形態による、クエリデータ用に普及度情報を提供するための論理を示すフローチャートである。図３における論理は、クエリの数に基づいて普及度を推定するための統計モデルの実装である。この例では、論理３００は、スタートポイント３０２と、少なくとも１つの目標値を取得する段階３０４と、デバイスからクエリデータを受信する段階３０６と、クエリデータを受信したことに応答して少なくとも１つのクエリ値を生成する段階３０８と、少なくとも１つのクエリ値と少なくとも１つの目標値とを比較する段階３１０と、比較に基づいてクエリデータ用の普及度を出力する段階３１２と、エンドポイント３１４とを備える。
【００３２】
論理３００は、スタートポイント３０２で開始する。スタートポイント３０２は、他の論理、複数のルーチン、複数のアプリケーション、又は、複数のスレッドのスタート／エンドポイントと一致してもよい。これに加えて、スタートポイント３０２では、データ（例えば、複数のオブジェクト、値、変数、等）が、論理３００での使用を目的として、初期化され、取得され、又は、アクセスされてもよい。
【００３３】
次に、段階３０４では、少なくとも１つの目標値を取得する。少なくとも１つの目標値は、単一の値、複数の値のシーケンス、複数のビットのシーケンス、デバイスと関連付けられた識別子、ファイルを問い合わせた第１のデバイス用の識別子、又は、各クエリ用の複数の他の値（例えば複数のクエリ値）と比較され得る任意の値のうちの１つとして実装されてもよい。目標値は、データソース（例えばデータソース２０８）から取得されてもよく、又は、生成されてもよい。例えば、目標値は、デバイスと関連付けられたデバイス識別子に基づいて生成された複数のビットのシーケンスであってもよく、又は、統計モデルに対する上記の説明のように、ｎ個の側面を有するダイスの値であってもよい。
【００３４】
段階３０６では、クエリデータ（例えばクエリデータ２０４）がデバイス（例えば通信デバイス１０８）から受信される。例えば、あるファイルと、当該ファイルの普及度への要求とが、通信デバイスから受信されてもよい。
【００３５】
クエリデータを受信したことに応答して、段階３０８に従い、少なくとも１つのクエリ値が生成されてもよい。ある実装では、クエリ値は、デバイス（すなわち問い合わせているデバイス）と関連付けられた識別子、ランダムに生成された数、デバイスと関連付けられた識別子のハッシュ、又は、各クエリ用の複数の他の値（例えば複数の目標値）と比較され得る任意の値であってもよい。
【００３６】
少なくとも１つのクエリ値は、段階３１０で、少なくとも１つの目標値と比較される。比較を容易にする目的で、目標値およびクエリ値は、（例えば、目標値およびクエリ値の各々が複数のビットのシーケンスである、各々が整数値である、等の）同じ態様で実装されてもよい。当該比較は、どちらがより大きい／より小さい値であるかを決定すること、複数の値が等しいかどうかを決定すること、複数の値の一対比較を実行すること、および／または、複数の値が同じフォーマットであるかどうかを決定することによって、複数の値を比較する段階を含んでもよい。当該フォーマットは、例えば、符号化のタイプ、そのシーケンスを生成するのに用いられるハッシュのタイプ、および／または、複数のビットのシーケンスの長さを含んでもよい。比較の結果は、普及度値として（例えばそれらの推定値として）直接出力されてもよく、又は、他の複数の計算用のベースとして機能してもよい。例えば、その結果は、統計モデルおよび／またはシミュレーションのような、クエリデータ用の普及度を決定するモデルに対する入力であってもよい。
【００３７】
段階３１２では、（クエリデータ用の）普及度が出力される。当該普及度は、普及度値、クエリの推定数、オブジェクトを問い合わせた一意的デバイスの推定数、等を含んでもよい。当該普及度は、クエリ値と目標値との比較の結果に基づいて計算されてもよい。例えば、普及度値は、クエリデータを提出したデバイスに対する、評判情報システムからの出力であってもよい。ある実装では、クエリデータは、第１のデバイスから受信されてもよく、対応する評判情報が、第２のデバイスへと、又は、複数のデバイスへと提供されてもよい。
【００３８】
最後に、論理は、エンドポイント３１４で終了する。エンドポイント３１４は、他の論理、複数のルーチン、複数のアプリケーション、又は、複数のスレッド用のスタート／エンドポイントとして機能してもよい。例えば、エンドポイント３１４は、後続のクエリを受信すると、スタートポイント３０２で開始する論理を実行するようプロセッサに指示してもよい。
【００３９】
［一意的デバイスの数に基づいて普及度を推定するための統計モデル］
オブジェクトの普及度は、当該オブジェクト用のクエリを提出した一意的デバイスの数に基づいて推定されてもよい。従って、オブジェクト用のクエリを提出した一意的デバイスの数の推定値は、当該オブジェクトの普及度の推定値として機能してもよい。一意的デバイスの数に基づいて普及度を推定するための統計モデルは、問い合わせているデバイスを、複数のビットのランダム分布を有する２進数として表わしてもよい。例えば、複数のビットのランダム（又は疑似ランダム）分散で複数のビットのシーケンスを生成すべく、問い合わせているデバイスと関連付けられた一意的識別子（例えばデバイスＩＤ）にハッシュ関数が適用されてもよい。ある実装では、ハッシュ関数は、いくつかの周知のハッシュアルゴリズムのうちの１つであってもよい。例えば、ハッシュ関数は、メッセージダイジェストアルゴリズム５（ＭＤ５）、セキュアハッシュアルゴリズム１（ＳＨＡ１）、および／または、セキュアハッシュアルゴリズム（ＳＨＡ２５６）のうちの１つであってもよい。２進数は、クエリ値であってもよい。第１のクエリがオブジェクト用にデバイスから受信された場合、デバイス用のクエリ値（すなわち、複数のビットのランダム分布を有する２進数）が生成されて、目標値として格納される。第１のデバイス以外のデバイスからの各後続のクエリに対しては、そのシーケンスにおける第１のビットを始めとした、一致している連続的なビットの数を決定すべく、入ってくるクエリ用のクエリ値が、第１のデバイス用のクエリ値（すなわち目標値）と比較される。一致しているビットの数は、一致しているビットの最大数（ｎ＿ｍａｘ）よりも大きい場合にのみ、格納されてもよい。一致しているビットの最大数（ｎ＿ｍａｘ）は、オブジェクト用に観察される、一致しているビットの最大の数を表わしている。一致しているビットの数が大きい可能性は、オブジェクトを問い合わせている一意的デバイスの数が大きい可能性と相互に関連がある。換言すると、一致しているビットの最大数が増大していることは、オブジェクトを問い合わせている一意的デバイスの数がより大きい可能性が増大していることと相互に関連がある。従って、当該モデルは、オブジェクトを問い合わせている一意的デバイスの数の数学的に尤もな推定値に基づく普及度の推定値を提供する。
【００４０】
このモデルでは、同じデバイスからの同じファイルに対する反復的な問い合わせは、オブジェクトを問い合わせた一意的デバイスの数の推定値に対して、何ら影響を及ぼさない。以下は、これがその場合であることの簡単な証明である。（１）第１のデバイスで一致しているビットの数（ｎ＿ｉ）が、一致しているビットの現在の最大数（ｎ＿ｍａｘ）より大きいデバイスから入ってくる任意のクエリによって、ｎ＿ｍａｘがｎ＿ｉの値を取るという結果がもたらされる。デバイスが同じファイル用に別のクエリを提出する場合、後続のクエリがｎ＿ｍａｘの値に対して何ら影響を及ぼさないように、ｎ＿ｉは、ｎ＿ｍａｘ以下でなくてはいけない。（２）第１のデバイスで一致しているビットの数（ｎ＿ｉ）が、一致しているビットの現在の最大数（ｎ＿ｍａｘ）以下であるデバイスから入ってくる任意のクエリによって、ｎ＿ｍａｘが何ら変化しないという結果がもたらされる。デバイスが同じファイル用に後続のクエリを提出する場合、後続のクエリがｎ＿ｍａｘの値に対して何ら影響を及ぼさないように、ｎ＿ｉは、ｎ＿ｍａｘ以下でなくてはいけない。
【００４１】
当該モデルの複数の統計的特性は、２進数の長さ（すなわち、複数のビットのシーケンスの長さ、すなわちＮ）に少なくとも部分的に基づいて導出されてもよい。複数のビットのシーケンスの所与の長さであるＮに対して、複数のビットの一意的シーケンスの数は有限であり、（２Ｎ−１）で規定される。複数のビットの一意的シーケンスの数は、当該モデルがＮの値に対して表わし得る一意的デバイスの数を表わしている。更に、一意的デバイスの数を順序付けることができる方法の数は有限であり、（（２Ｎ−１）！）で規定される。デバイスの数を順序付けることができる方法の数は、複数のデバイスがオブジェクトを問い合わせ得る方法（すなわち、問い合わせているデバイスの順序）の数を表わしている。従って、一致している連続的なビットの任意の所望の数（ｎ＿ｍａｔｃｈ）に対しては、０＜ｎ＿ｍａｔｃｈ≦Ｎであり、オブジェクト用のｘｔｈのクエリによって、一致している連続的なビットの数がｎ＿ｍａｔｃｈに等しくなるといった結果がもたらされる確率に対して、有限の確率分布を生成することが可能である。
【００４２】
例示されるように、白いボールの数（ｎ＿ｗｈｉｔｅ）は、一致している連続的なビットの数がｎ＿ｍａｔｃｈに等しいデバイスの数を表わしてもよい。黒いボールの数（ｎ＿ｂｌａｃｋ）は、全ての他のデバイス（すなわち、一致している連続的なビットの数がｎ＿ｍａｔｃｈに等しくないデバイス）の数を表わしてもよい。当該モデルは、多数の白いボールと多数の黒いボールを含むバッグに対応する。バッグ内の（合計の）ボールの合計数は、当該モデルによって表される一意的デバイスの合計数（例えば、一意的ビットシーケンスの数）を表わしている。従って、バッグから抜き取られたｘｔｈのボールが白である確率（すなわち、Ｐ（ｘ））は、以下の通り表現されることができる：
【００４３】
ｔｏｔａｌ＝（２Ｎ−１）
【００４４】
ｎ＿ｗｈｉｔｅ＝（（２＾（Ｎ−ｎ＿ｍａｔｃｈ））−１）
【００４５】
ｎ＿ｂｌａｃｋ＝ｔｏｔａｌ−ｎ＿ｗｈｉｔｅ
【００４６】
Ｐ（１）＝ｎ＿ｗｈｉｔｅ／ｎ＿ｔｏｔａｌ
【００４７】
Ｐ（ｘ）＝Ｐ（ｘ−１）＊（ｎ＿ｂｌａｃｋ−（ｘ−１））／（ｔｏｔａｌ−（ｘ−１））
【００４８】
図４は、本明細書の１つ又は複数の実施形態による、複数のクエリ値を複数の目標値に一致させるための、複数の可変数の連続値に対する複数の確率分布のグラフィカル表現である。図４における複数の確率分布は、上記の複数の方程式を用いて生成された。ここでは、Ｎ＝１０であり、ｎ＿ｔａｒｇｅｔは１−８にわたる所与の整数値であった。
【００４９】
図５は、複数の累積確率に基づいて、複数の一致する値の最大数（例えばｎ＿ｍａｘ）と普及度情報との間の例示的な関係性を示すグラフであり、ここでは、Ｎ＝６４である。具体的には、ｎ＿ｍａｘの複数の値は、以下の対応するものが設定されている。（１）桁（ＯＯＭ）値の範囲（例えば、１；１０；１００；１，０００；１０，０００；１００，０００；等）。（２）図５において「Ｐｒｏｂ」とラベルされている、ＯＯＭの正確な範囲の精度。具体的には、この値は、所与のｎ＿ｍａｘに対して、クエリ値の実際の数がＯＯＭ範囲内にある確率を表わしている。「＞０．７＋／−０．２」の閾値確率が適用される。（３）図５において「ＯＯＭ＋−Ｐｒｏｂ」とラベルされていて、プラスまたはマイナス１のＯＯＭ範囲である、ＯＯＭの正確な範囲の精度。具体的には、この値は、所与のｎ＿ｍａｘに対して、クエリ値の実際の数が、所与のＯＯＭ範囲内、所与の範囲よりも上に１のＯＯＭ範囲内、又は、所与の範囲よりも下に１のＯＯＭ範囲内にある確率を表わしている。「＞０．９５」の閾値確率が適用される。
【００５０】
複数の累積確率は、一致している値の数（または一致している値の数の範囲）を対応する普及度値に関連付けるための例示的な統計的ベースを提供する。ｎ＿ｍａｘに対する複数の特定の数は、当該システムに対する所望の詳細度に基づいて計算されてもよい。例えば、所望の詳細度は、複数の桁（ＯＯＭ）値（例えば、１；１０；１００；１，０００；１０，０００；１００，０００；等）または範囲であってもよい。複数のＯＯＭ値は、オブジェクトを問い合わせた一意的デバイスの数の桁の推定値を提供する。所望の範囲のＯＯＭ値に対して、当該システムは、指定の累積確率を実現すべく、ｎ＿ｍａｘの複数の対応する値を提供してもよい。同様の対応データが、所望の詳細度用に選択された任意の値に対して生成されてもよい。
【００５１】
図５では、「＜５」のｎ＿ｍａｘが、０．４の累積確率を有する１−１０の桁（ＯＯＭ）範囲に対応し、１の累積確率を有する１−１００のＯＯＭ範囲に対応している。ｎ＿ｍａｘの残りの複数の値の各々（すなわち、５、９、１２、１５および１９）は複数の増大する（ＯＯＭ）範囲（すなわち、それぞれ、１０−１００；１００−１，０００；１Ｋ−１０Ｋ；１０Ｋ−１００Ｋ；１００Ｋ−１Ｍ）に対応し、各々は少なくとも０．６８、すなわち約０．７の累積確率を有する。更に、ｎ＿ｍａｘの残りの複数の値の各々は、少なくとも０．９８の累積確率を有するプラスまたはマイナス１のＯＯＭである、ＯＯＭに対応している。同様の対応データが、ｎ＿ｍａｘの選択された任意の値に対して生成されてもよい。この例では、任意の値のｘに対して、ｎ＿ｍａｘ＝ｘであり、１０ｚ−１から１０ｚまでの範囲に等しいＯＯＭ用の累積確率は、Δ［Ｐ（１０ｚ−１｜ｎ＿ｍａｘ＝ｘ）、Ｐ（１０ｚ｜ｎ＿ｍａｘ＝ｘ）］で計算されてもよく、プラスまたはマイナス１のＯＯＭ用の累積確率は、Δ［Ｐ（１０ｚ−２｜ｎ＿ｍａｘ＝ｘ）、Ｐ（１０ｚ＋１｜ｎ＿ｍａｘ＝ｘ）］で計算されてもよい。これらの表現はそれぞれ、１０ｚ−１から１０ｚまでの範囲のエンドポイント間の累積確率の差異と、１０ｚ−２から１０ｚ＋１までの範囲のエンドポイント間の累積確率の差異とを表わしている。
【００５２】
ある実装では、図５におけるデータと同様のデータが、クエリ値と目標値との比較（例えば、比較３１０および／または比較６１８）の結果を、オブジェクトを問い合わせた一意的デバイスの数の推定値と関連付けるのに用いられてもよい。そのようなデータは、オブジェクトを問い合わせている一意的デバイスの数の数学的に尤もな推定値に基づく普及度の推定値を提供する。
【００５３】
例示的なアルゴリズムが、以下の通り、一意的デバイスの数に基づいて普及度を推定するための統計モデルを実装してもよい：ｉ．ファイルｆ＿ｘ用の第１の入ってくるクエリＱ＿１に対して、デバイス識別子Ｄ＿１を格納する。ここでは、デバイス識別子は、当該クエリが来た元であるデバイスを識別する。ゼロに等しいｎ＿ｍａｘを初期化する。ここでは、ｎ＿ｍａｘは、ファイルｆ＿ｘ用に、Ｄ＿１と他の複数のデバイス識別子との間における、現在記録されている一致しているものの最大数を表わしている。ｉｉ．デバイス識別子Ｄ＿ｙを備えるデバイスからの、ファイルｆ＿ｘ用の各後続のクエリＱ＿ｚに対して、以下を行う。Ｄ＿ｙがＤ＿１と等しくないならば、第１のビットから始まり数が増えていく、一致している連続的なビットの数ｎ＿ｙを決定する。ここでは、Ｄ＿１およびＤ＿ｙは一致する。ｎ＿ｍａｘがｎ＿ｙより少ないならば、次にｎ＿ｍａｘをｎ＿ｙにセットする。
【００５４】
遭遇した一意的デバイス識別子が多いほど、ｎ用のより高い複数の値と遭遇する可能性が高くなる。従って、任意のファイル用に現在記録されているｎ＿ｍａｘは、ファイルｆ＿ｘを問い合わせた一意的デバイスの数の統計的に尤もなインジケータである。
【００５５】
上記の例示的なアルゴリズムは、以下の通り、３つの最も一般的な国を追跡するまで拡張されることができる：ｉ．各ファイルｆ＿ｘに対して、フォーム（ｃ、ｎ＿ｍａｘ）の３つのタプルを記録する。ここでは、ｃは国コードであり、ｎ＿ｍａｘは、ｆ＿ｘ用に、関連付けられた国ｊからの複数のクエリから計算されたｎの最大値である。ｉｉ．国ｃ＿ｊに位置しているデバイスＤ＿ｉから、ファイルｆ＿ｘ用の各々の入ってくるクエリに対して：ｃ＿ｊが３つのタプルにおける複数の国のうちの１つと一致するならば：ｎ＿ｉが、ｃ＿ｊ用に現在記録されているｎ＿ｍａｘより大きいならば、次に、ｎ＿ｍａｘをｎ＿ｉにセットする。ｃ＿ｊが３つのタプルにおける複数の国のいずれにも一致しないならば：ｎ＿ｉが、３つのタプルにおける複数の国のいずれかに対して現在記録されている複数のｎ＿ｍａｘ値より大きいならば、次に、当該タプルを、（ｃ＿ｊ、ｎ＿ｉ）を有する最も低いｎ＿ｍａｘ値と置換する。
【００５６】
この例示的なアルゴリズムは、ファイルｆ＿ｘ用にｎ＿ｍａｘの最も高い値を報告している３つの国用の識別子を保持すべく３つのタプルを格納し、従って、ファイルｆ＿ｘの存在を報告しているデバイスを最も有する３つの国の、統計的に尤もなインジケーションを提供する。更に、各タプルの変化に対して、ｎ＿ｍａｘの値は、データ変化（チャーン）数が、同じファイルのグローバルな普及度を追跡するのに必要とされるチャーン数の３倍未満となることができるように、増大している。
【００５７】
有利には、このアルゴリズムの実装は複数の一意的デバイスＩＤをカウントする必要がなく、従って、時間複雑性は一意的デバイスＩＤの数に依存しない。代わりに、複数の結果を提供することが、Ｏ（１）時間複雑性（すなわち定数時間）であってもよく、従って、リアルタイムに（例えば、ウェブサーバにおけるクエリタイムに）適用されることができる。更に、このアルゴリズムに必要とされる空間は、全ての一意的デバイスＩＤを格納するのに必要とされるものに比べて縮小されている。
【００５８】
ある実装では、当該統計的手法は、１つのデバイスが同じオブジェクト用に複数のクエリを送信するといった事態を有利に処理すべく、デバイスＩＤを格納してもよい。そのデバイスＩＤのストレージは、例えば、オブジェクト用の過去の全てのクエリをカウントすることなく、同じデバイスからの複数の後続のクエリ用に再現性のある出力を提供する、単一の評価基準であってもよい。更に、複数のデバイス（例えば、複数のウェブサーバ、および／または、複数のデータセンタ）は、有利に、各々の問い合わせているデバイス用にデバイスＩＤを記録する必要がないデータシステムを用いて、グローバルなクエリトラフィックへの複数の応答を提供してもよい。
【００５９】
図６Ａおよび図６Ｂは、本明細書の１つ又は複数の実施形態による、ファイルのハッシュ用に普及度情報を提供するための論理を示すフローチャートを描いている。図６Ａおよび図６Ｂに示されている論理は、上記で説明した普及度推定アルゴリズムの例示的実装である。この例では、論理６００は、スタートポイント６０２と、ファイルのハッシュをデバイスから受信する段階６０４と、当該デバイス用の識別子に基づいて複数のビットのシーケンスを生成する段階６０６と、当該ファイルのハッシュが既にデータストアに格納されているかどうかを決定する段階６０８と、当該データストアに、その複数のビットのシーケンスと、当該ハッシュと、当該複数のビットのシーケンスおよび当該ハッシュの間の関連とを格納する段階６１０と、当該データストアに、ゼロに等しい一致しているビットの最大数を格納する段階６１２と、当該データストアに格納されている当該一致しているビットの最大数に基づいて、クエリデータ用の普及度を出力する段階６１４と、当該複数のビットのシーケンスが当該ハッシュに関連付けられて当該データストアに既に格納されているかどうかを決定する段階６１６と、生成された複数のビットのシーケンスと当該データストアに格納された当該複数のビットのシーケンスとを比較する段階６１８と、当該比較が、当該データストアに格納されている一致しているビットの最大数を超える、一致しているビットの数をもたらすかどうかを決定する段階６２０と、当該比較に基づいて、当該データストアに格納されている当該一致しているビットの最大数を更新する段階６２２と、エンドポイント６２４とを備える。
【００６０】
論理６００は、スタートポイント６０２で開始する。スタートポイント６０２は、他の論理、複数のルーチン、複数のアプリケーション、又は、複数のスレッドのスタート／エンドポイントと一致してもよい。これに加えて、スタートポイント６０２では、論理６００での使用を目的として、データ（例えば、複数のオブジェクト、値、変数、等）が、初期化され、取得され、又は、アクセスされてもよく、システムが複数のオブジェクトおよび／または変数を初期化または取得してもよい。
【００６１】
次に、段階６０４では、ファイルのハッシュがデバイスから受信される。ファイルのハッシュは、例示的クエリデータ（例えばクエリデータ２０４）である。代替的に、ファイルは、デバイスから受信されてもよく、ファイルのハッシュは、論理６００の実行の一部として生成されてもよく、又は、サードパーティによって生成されてもよい。ハッシュは、クエリシステム２０２、評判システム１０４、又は、複数のセキュリティサーバ１０２のうちの少なくとも１つによって受信されてもよい。
【００６２】
段階６０６では、デバイス用の識別子に基づいて、複数のビットのシーケンスが生成される。ある実装では、当該識別子は、デバイス用の一意的識別子、クエリを生成および／または提出したデバイスのグローバルに一意的で不透明な識別子、デバイス上に存在するオペレーティングシステム、デバイスの所有者の名、又は、デバイスと関連付けられたその他の識別子のうちの１つであってもよい。例えば、複数のビットのランダム（又は疑似ランダム）分散で複数のビットのシーケンスを生成すべく、識別子にハッシュ関数が適用されてもよい。ある実装では、ハッシュ関数は、ＭＤ５、ＳＨＡ１、および／または、ＳＨＡ２５６のうちの１つであってもよい。
【００６３】
次に、段階６０８では、論理６００は、ファイルのハッシュが既にデータストアに格納されているかどうかを決定する。この段階は、受信したファイルのハッシュがファイル用の第１のクエリを表わしているかどうかを確認する。
【００６４】
ファイルのハッシュが既にデータストアに格納されていると決定された場合、次に、段階６１０に従って、複数のビットのシーケンスと、ハッシュと、当該複数のビットのシーケンスおよび当該ハッシュの間の関連とが、データストアに格納される。論理６００のこの分岐は、ハッシュの受信がファイル用の第１のクエリを表わしているといった事態を処理してもよい。ファイル用の第１のクエリの場合では、一致しているビットの最大数の現在値（例えばｎ＿ｍａｘ）はゼロである。従って、段階６１２では、一致しているビットの最大数は、ゼロに等しくなるようにセットされる。段階６１４では、データストアに格納されている一致しているビットの最大数に基づいて、クエリデータ用の普及度が出力される。ファイル用の第１のクエリの場合では、普及度は、このクエリがオブジェクト用の第１のクエリであることを示してもよい。例えば、ゼロ、１、低い値、および／または、ヌルのうちの１つの普及度値が出力されてもよい。
【００６５】
段階６１６で、ファイルのハッシュが未だデータストアに格納されていないと決定された場合、次に、段階６１６で別の決定がなされる。具体的には、生成された複数のビットのシーケンスが、ハッシュと関連付けられて、既にデータストアに格納されているかどうかが決定される。これは、デバイスからのハッシュの受信が、同じハッシュをすでに問い合わせたデバイスからの後続のクエリを表わしていなくてもよい場合を表わしていてもよい。受信したクエリはファイルのハッシュ用の第１のクエリでなくてもよいが、このデバイスがハッシュを問い合わせた最初の時点を表わしていてもよい。
【００６６】
段階６１６で、生成された複数のビットのシーケンスがハッシュに関連付けられて既に格納されていると決定された場合、次に、ファイル用の普及度が、データストアに格納されている一致しているビットの最大数に基づいて出力されてもよい。これは、デバイスからのハッシュの受信が、同じファイルをすでに問い合わせたデバイスからの後続のクエリを表わしている場合を表わしている。
【００６７】
生成された複数のビットのシーケンスがハッシュに関連付けられて未だ格納されていないと決定された場合、次に、段階６１８で、生成された複数のビットのシーケンスが、データストアに格納されている複数のビットのシーケンスと比較される。データストアに格納されている複数のビットのシーケンスは、ファイルのハッシュ用の第１のクエリに応答して格納された目標値を表わしていてもよい。生成された複数のビットのシーケンスは、ファイルのハッシュ用の後続のクエリに応答して生成されたクエリ値を表わしていてもよい。ある実装では、当該比較は、段階３１０および／または図５に関係して説明されたように実行されてもよい。
【００６８】
段階６２０では、当該比較が、データストアに格納されている一致しているビットの最大数を超える、一致しているビットの数をもたらすかどうかが決定される。同じファイルをすでに問い合わせたデバイスからの複数の後続のクエリは、データストアに格納されているビットの最大数に何ら影響を及ぼさない。通信デバイスから後続のクエリデータを受信すると、当該比較は、一致しているビットの数が、現在格納されている一致しているビットの最大数以下になるといった結果をもたらすだろう。従って、論理６００は、最大数を更新しないことによって、データストア内で一致しているものの最大数を維持する。そのような結果の簡単な証明は、一意的デバイスの数に基づいて普及度を推定するための統計モデル用に、本明細書にて提供される。
【００６９】
当該比較が、データストアに格納されている一致しているビットの最大数（例えばｎ＿ｍａｘ）を超える、一致しているビットの数をもたらす場合、段階６２２に従い、その値（ｎ＿ｍａｘ）は当該比較に基づいて更新される。ある実装では、段階６２２で、一致しているビットの最大数が、段階６２０で当該比較から決定された一致しているビットの数の値を取るべく、更新されてもよい。
【００７０】
段階６１４では、データストアに格納されている一致しているビットの最大数に基づいて、クエリデータ用の普及度が出力される。少なくとも１つの統計モデルを用いて、普及度値、および／または、普及度値における信頼度が、一致しているビットの最大数（ｎ＿ｍａｘ）に基づいて決定されてもよい。例えば、図５における複数の値を用いて、普及度値が出力されてもよい。図５では、９に等しいｎ＿ｍａｘは、実際の普及度が１００から１，０００の間である確率が０．６９であることに対応する。例えば、出力された普及度値は、ＯＯＭ値の範囲（例えば、１００および１，０００）、当該範囲における単一の値（例えば９９９）、又は、当該範囲のエンドポイント（例えば、１００又は１，０００）を含んでもよい。普及度値は、実際の普及度が普及度値の範囲に等しい又はその範囲内にある確率のような、普及度値における信頼度に基づいて重み付けされてもよい。
【００７１】
最後に、論理は、エンドポイント６２４で終了する。エンドポイント６２４は、他の論理、複数のルーチン、複数のアプリケーション、又は、複数のスレッド用のスタートポイントとして機能してもよい。例えば、エンドポイント６２４は、後続のクエリを受信すると、スタートポイント６０２で開始する論理を実行するようプロセッサに指示してもよい。更に、論理６００は、基本アルゴリズムの拡張に関して論じられたように、３つの最も一般的な国を追跡すべく修正されてもよい。
【００７２】
ある実装では、論理６００は、論理３００と同様の態様で動作してもよい。段階６０４におけるデバイスからのファイルのハッシュの受信は、段階３０４におけるクエリデータの受信に対応してもよい。段階６０６−６１２に基づいて、システムは、第１のデバイス用の識別子に基づいて複数のビットのシーケンスを生成および格納してもよく、これは、段階３０４において提供されたような目標値に対応してもよい。段階６１６−６２２で、システムは、データストアにアクセスして、複数のビットのいくつかのシーケンスを比較し、これは、段階３１０と対応してもよい。段階６１４で、システムはまた、データストアに格納されているデータに基づく普及度を出力し、これは段階３１２と対応してもよい。
【００７３】
論理３００および／または６００に対して、複数の値（例えば、複数のクエリ値、目標値、又は、ビット）のシーケンスの長さは、閾値に基づいて決定されてもよい。例えば、閾値は、普及度の大きさ（例えば、１，０００の一意的デバイス、又は、１，０００，０００の一意的デバイス）、システムの複数の設計パラメータ、および／または、システムが遭遇するであろうデバイスの推定数における上限に対応してもよい。その複数の値として複数のビットを用いる例では、６４に等しいシーケンス長さは、２６４、すなわち１８Ｘ１０１８の一意的デバイスを表わすのに十分な、複数のビットの複数の一意的シーケンスを提供してもよい。
【００７４】
図７は、本明細書のある実施形態による、３つのデバイスに対応する３つの例示的なビットのシーケンスを示している。この例では、デバイス１は、０１１０１０００...で始まるビットシーケンス（例えば第１のデバイスｉｄ）に対応し、デバイス２は、００１０１０１１...で始まるビットシーケンス（例えば第２のデバイスｉｄ）に対応し、デバイス３は、０１１０１０１０...で始まるビットシーケンス（例えば第３のデバイスｉｄ）に対応する。複数のビットの３つのシーケンス用の複数の指標が、ｉ１からｉｎでラベルされている。単純化を目的として、完全なビットシーケンスは示されていない。
【００７５】
複数のビットのシーケンスの長さ（すなわち、Ｎの値）は、例えば論理３００および６００に対して論じられたように、閾値に基づいて決定されてもよい。ある実装では、６４に等しいｎを用いることは、２６４、すなわち１８Ｘ１０１８の一意的デバイスを表わすのに十分な、複数のビットの複数の一意的シーケンスを提供してもよく、これは、潜在的な複数の問題（例えば、複数のビットの正確に一致している複数のシーケンスを備えた２つの異なるデバイス）を避けるのに十分であってもよい。
【００７６】
この例では、３つのデバイスの各々は、同じファイルに関連するクエリデータを送信する。デバイス１が最初にクエリデータを送信し、デバイス２が続いて、次に、デバイス３が続く。従って、第１のデバイスｉｄが、例えば、段階３０４または６１０によって提供された論理に基づいて、データストア（例えば、データストア２０８）に格納される。同じファイルに関連する新しいデバイスからの各後続のクエリに対して、例えば、段階６０６、６０８、６１６および６１８によって提供された論理に基づいて、新しい複数のビットのシーケンスと第１のデバイスｉｄとを比較することによって、一致しているビットの数を識別する。
【００７７】
当該比較は、第１の複数のビットのシーケンスおよび第２の複数のビットのシーケンスの各々において第１のビットで始まる、第１の複数のビットのシーケンスにおける連続ビットと、第２の複数のビットのシーケンスにおける対応する連続ビットとの一対比較を含んでもよい。第１のデバイスｉｄと第２のデバイスｉｄとの例示的な一対比較は、一致している値の数が１に等しいといった結果をもたらす。これは、第１の複数の値のみが２つのデバイスｉｄ間で一致するが（すなわち、指標ｉ１での複数の値）、第２の複数の値は一致しない（すなわち、指標ｉ２での複数の値）ためである。第３の複数の値は第１のデバイスｉｄと第２のデバイスｉｄとの間で一致するが、第３の複数の値は、第１のビット（すなわち、指標ｉ１での値）から始まる一致しているビットの連続シーケンス内に無く、従って、一致しているビットの数に向かってカウントしない。第１のデバイスｉｄと第３のデバイスｉｄとの間における同様の比較は、一致している値の数が６に等しくなるといった結果をもたらし、これは、例えば、段階６２０および６２２によって提供される論理に基づいて、データストアに格納されてもよい。同じファイルに関連する各後続のクエリに対して、問い合わせているデバイスに対応する複数のビットのシーケンスは、同じファイルを問い合わせた第１のデバイスに対応する複数のビットのシーケンス（すなわち第１のデバイスｉｄ）と比較される。複数の値の任意の一致している対応ペアと対照的に複数の連続値（すなわち、可能性のある複数の値の複数の順列）を比較することによって、システムは、多数の一意的値を維持し、これによって、多数の普及度値のモデルを構成することができる。
【００７８】
複数の他の値、又は、複数の値の複数のシーケンスは、ファイルを問い合わせた第１のデバイスに対応する複数のビットのシーケンスの代わりに用いられてもよい。例えば、複数の値のランダムシーケンス、複数のビットのランダムシーケンス、同じファイルを問い合わせた第２のデバイスに対応する複数のビットのシーケンス、ファイルを問い合わせた任意のデバイスに対応する複数のビットのシーケンス、又は、乱数である。
【００７９】
図８は、ある実施形態による、例示的なプロセッサに結合されたメモリのブロック図である。図８は、一実施形態によるプロセッサコア８００を示している。プロセッサコア８００は、マイクロプロセッサ、埋め込みプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、又は、コードを実行する他のデバイスなどの、任意のタイプのプロセッサ用のコアであってもよい。図８には１つのプロセッサコア８００のみが示されているが、処理要素は代替的に、図８に示されているプロセッサコア８００を２つ以上含んでもよい。（例えば、以下の図９における複数のマルチコア実施形態を参照。）プロセッサ８００は、マイクロプロセッサ、埋め込みプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、マルチコアプロセッサ、シングルコアプロセッサ、又は、コードを実行する他のデバイスなどの、任意のタイプのプロセッサであってもよい。プロセッサコア８００は、シングルスレッドコアであってもよく、少なくとも一実施形態については、プロセッサコア８００は、コア当たり２つ以上のハードウェアスレッドコンテキスト（または「論理プロセッサ」）を含み得るという点で、マルチスレッド化されてもよい。そのような複数のコア８００は、本明細書において開示される態様で、命令コードを実行するように構成されてもよい。図８に示されている当該システムは、本明細書において説明された、図１、２等に示されているセキュリティサーバ、評判情報システム、クエリシステムおよび任意のコンポーネントによって実行される複数の機能を実行するのに用いられてもよい。
【００８０】
図８はまた、プロセッサ８００に結合されたメモリ８７０を示している。メモリ８７０は、当業者に既知である、又はそうでなければ当業者が利用可能な、（メモリ階層の様々な層を含む）任意の多種多様なメモリであってもよい。メモリ８７０は、プロセッサコア８００によって実行される１つ又は複数のコード命令８１３を含んでもよい。プロセッサコア８００は、コード８１３によって示される複数の命令のプログラムシーケンスに従う。各命令は、フロントエンドポーション８１０に入り、１つ又は複数のデコーダ８２０によって処理される。デコーダは、自身の出力として、予め定められたフォーマットの固定幅マイクロオペレーションのようなマイクロオペレーションを生成してもよく、又は、元のコード命令を反映する、他の複数の命令、マイクロ命令、又は、制御信号を生成してもよい。フロントエンド８１０はまた、レジスタリネーミング論理８２５およびスケジューリング論理８３０を含み、これらは概して、複数のリソースを割り当て、実行用に、変換命令に対応する動作をキューに登録する。
【００８１】
プロセッサ８００が、複数の実行ユニット８５５−１から８５５−Ｎのセットを有する実行論理８５０を含んで、示されている。幾つかの実施形態は、特定の複数の機能または複数の機能の複数のセットに専用の幾つかの実行ユニットを含んでもよい。他の複数の実施形態は、１つの実行ユニット、又は、特有の機能を実行できる１つの実行ユニットのみを含んでもよい。実行論理８５０は、複数のコード命令によって指定されている複数の動作を実行する。
【００８２】
複数のコード命令によって指定されている複数の動作の実行完了後に、バックエンド論理８６０が、コード８１３の複数の命令をリタイアする。一実施形態では、プロセッサ８００は、アウトオブオーダ実行を可能にするが、複数の命令のインオーダリタイアメントを必要とする。リタイアメント論理８６５は、当業者にとって既知の様々な形態（例えば、リオーダバッファ等）を取ってもよい。このように、プロセッサコア８００は、少なくとも、レジスタリネーミング論理８２５によって使用されるデコーダ、複数のハードウェアレジスタおよび複数のテーブル、並びに、実行論理８５０により修正される任意のレジスタ（不図示）によって生成される出力に関して、コード８１３の実行中に変換される。
【００８３】
図８に示されていないが、処理要素は、プロセッサコア８００を備えるチップ上に複数の他の要素を含んでもよい。例えば、処理要素は、プロセッサコア２００と共に、メモリ制御論理（例えば、以下の図９のＭＣ９７２を参照。）を含んでもよい。処理要素は、Ｉ／Ｏ制御論理を含んでもよく、および／または、メモリ制御論理と統合されたＩ／Ｏ制御論理を含んでもよい。処理要素はまた、１つ又は複数のキャッシュを含んでもよい。
【００８４】
図９は、ある実施形態による、ポイントツーポイント（ＰｔＰ）構成で配置された例示的なコンピューティングシステムのブロック図である。図９に示されているのは、第１の処理要素９７０および第２の処理要素９８０を含むマルチプロセッサシステム９００である。２つの処理要素９７０および９８０が示されているが、システム９００の実施形態はまた、そのような処理要素を１つのみ含んでもよいことが理解されるであろう。図９に示されている当該システムは、本明細書において説明された、図１、２等に示されているセキュリティサーバ、評判情報システム、クエリシステムおよび任意のコンポーネントによって実行される複数の機能を実行するのに用いられてもよい。
【００８５】
システム９００は、ポイントツーポイント相互接続システムとして示されており、ここでは、第１の処理要素９７０および第２の処理要素９８０は、ポイントツーポイント相互接続９５０を介して結合されている。図９に示されている任意の又は全ての相互接続が、ポイントツーポイント相互接続ではなくマルチドロップバスとして実装されてもよいことが理解されるべきである。
【００８６】
図９に示されるように、処理要素９７０および処理要素９８０の各々は、第１および第２のプロセッサコア（すなわち、プロセッサコア９７４ａおよび９７４ｂ、並びに、プロセッサコア９８４ａおよび９８４ｂ）を含む、マルチコアプロセッサであってもよい。そのような複数のコア９７４、９７４ｂ、９８４ａ、９８４ｂは、本明細書において開示される態様で、命令コードを実行するように構成されてもよい。
【００８７】
各処理要素９７０、９８０は、少なくとも１つの共有キャッシュ１８９６を含んでもよい。共有キャッシュ１８９６ａ、１８９６ｂは、コア９７４ａ、９７４ｂおよび９８４ａ、９８４ｂなどの、プロセッサの１つ又は複数のコンポーネントによって使用されるデータ（例えば複数の命令）をそれぞれ格納してもよい。例えば、共有キャッシュは、プロセッサの複数のコンポーネントによるより高速なアクセスのため、メモリ９３２、９３４に格納されているデータをローカルにキャッシュしてもよい。１つ又は複数の実施形態では、共有キャッシュは、レベル２（Ｌ２）、レベル３（Ｌ３）、レベル４（Ｌ４）、又は、他のレベルのキャッシュなどの１つ又は複数の中間レベルキャッシュ、最終レベルキャッシュ（ＬＬＣ）、および／または、それらの複数の組み合わせを含んでもよい。
【００８８】
２つの処理要素９７０、９８０のみを備えるものが示されているが、本明細書の範囲はそのように限定されないことが理解されるであろう。他の複数の実施形態では、１つ又は複数の追加の処理要素が、所与のプロセッサに存在してもよい。代替的に、処理要素９７０、９８０の１つ又は複数は、ＡＳＩＣチップまたはフィールドプログラマブルゲートアレイなどの、プロセッサ以外の要素であってもよい。例えば、追加の処理要素は、第１のプロセッサ９７０と同じ追加の複数のプロセッサ、第１のプロセッサ９７０とは異種若しくは非対称的である追加のプロセッサ、（例えば、グラフィックスアクセラレーター又はデジタル信号処理（ＤＳＰ）ユニットなどの）複数のアクセラレータ、複数のフィールドプログラマブルゲートアレイ、又は、その他の処理要素を含んでもよい。処理要素９７０、９８０間には、アーキテクチャ上の特性、マイクロアーキテクチャ上の特性、熱的特性、電力費特性、等を含む、ある範囲のメトリクスの利点に関する様々な差異が存在し得る。これらの差異は、処理要素９７０、９８０間の非対称性および異種性として、自身を効果的に表わしてもよい。少なくとも一実施形態について、様々な処理要素９７０、９８０が、同じダイパッケージ内に存在してもよい。
【００８９】
第１の処理要素９７０は更に、メモリコントローラ論理（ＭＣ）９７２、並びに、ポイントツーポイント（Ｐ−Ｐ）インターフェース９７６および９７８を含んでもよい。同様に、第２の処理要素９８０は、ＭＣ９８２、並びに、Ｐ−Ｐインターフェース９８６および９８８を含んでもよい。図９に示されるように、ＭＣ９７２および９８２は、複数のプロセッサを、それぞれ複数のメモリに、すなわち、メモリ９３２およびメモリ９３４に結合し、これらは、それぞれのプロセッサにローカルに取り付けられたメインメモリの一部であってもよい。ＭＣ論理９７２および９８２は処理要素９７０、９８０に統合されて示されているが、代替的な複数の実施形態について、ＭＣ論理は、その内部に統合されずに、処理要素９７０、９８０の外部にある分離した論理であってもよい。
【００９０】
第１の処理要素９７０および第２の処理要素９８０はそれぞれ、Ｐ−Ｐ相互接続９７６、９８６および９８４を介してＩ／Ｏサブシステム９９０に結合されてもよい。図９に示されるように、Ｉ／Ｏサブシステム９９０は、Ｐ−Ｐインターフェース９９４および９９８を含む。更に、Ｉ／Ｏサブシステム９９０は、Ｉ／Ｏサブシステム９９０を高性能グラフィクスエンジン９３８と結合するインターフェース９９２を含む。一実施形態では、グラフィクスエンジン９３８をＩ／Ｏサブシステム９９０に結合するのに、バス９４９が用いられてもよい。代わりに、ポイントツーポイント相互接続９３９が、これらのコンポーネントを結合してもよい。
【００９１】
同様に、Ｉ／Ｏサブシステム９９０は、インターフェース９９６を介して第１のバス９１６に結合されてもよい。一実施形態では、第１のバス９１６は、周辺機器相互接続（ＰＣＩ）バス、又は、ＰＣＩエクスプレスバス若しくは別の第３世代Ｉ／Ｏ相互接続バスなどのバスであってもよいが、本明細書の範囲はそのように限定されない。
【００９２】
図９に示されるように、様々なＩ／Ｏデバイス９１４が、第１のバス９１６を第２のバス９１０に結合し得るバスブリッジ９１８と共に、第１のバス９１６に結合されてもよい。一実施形態では、第２のバス９２０は、ローピンカウント（ＬＰＣ）バスであってもよい。一実施形態では、例えば、キーボード／マウス９１２、（同様にコンピュータネットワーク２０２と通信し得る）通信デバイス９２６、及び、コード９３０を含み得るディスクドライブ又は他の大容量ストレージデバイスなどのデータストレージユニット９２８を含む、様々なデバイスが、第２のバス９２０に結合されてもよい。コード９３０は、上記で説明した複数の方法の１つ又は複数のうちの複数の実施形態を実行するための複数の命令を含んでもよい。更に、オーディオＩ／Ｏ９２４が、第２のバス９２０に結合されてもよい。
【００９３】
他の複数の実施形態が企図されていることに留意されたい。例えば、図９のポイントツーポイントアーキテクチャの代わりに、システムは、マルチドロップバスまたは別のそのような通信トポロジーを実装してもよい。また、図９の複数の要素は代替的に、図９に示されるものより多い又は少ない集積チップを用いて分割されてもよい。
【００９４】
本明細書において提供される複数の例では、２つ、３つ、又は、より多くのコンピューティングデバイスに関して、インタラクションが説明され得ることに留意されたい。しかしながら、これは、明確化および例示のみを目的として行われている。特定の複数の場合において、限定された数のコンピューティングデバイスのみを参照することによって、所与のセットのフローの複数の機能性のうちの１つ又は複数を説明することが、より容易であるかもしれない。更に、本明細書の１つ又は複数の実施形態による、評判情報、普及度情報、及び、セキュリティデータの分析の提供は、容易に拡張可能であり、より複雑化された／洗練された複数の配置および構成に加え、多数のコンポーネントに亘って、実装されることができる。従って、提供される複数の例は、無数の他のアーキテクチャにも適用される可能性がある評判情報、普及度情報、及び、セキュリティデータの分析の提供の範囲を限定すべきではなく、又は、その複数の幅広い教示を阻むべきではない。
【００９５】
評判情報、普及度情報、及び、セキュリティデータの分析の提供に関連する複数の機能は、図１−９に示されている複数のシステムによって実行され得る、又は、それらのシステム内に存在し得る、可能性のある複数の機能の幾つかのみを示していることに留意することもまた重要である。これらの動作の幾つかは、適切な箇所で削除され若しくは除去されてもよく、又は、これらの動作は、本開示の範囲から逸脱すること無く、大幅に修正され若しくは変更されてもよい。これに加えて、これらの動作のタイミングは、大幅に変更されてもよい。前述の複数の動作可能なフローは、例示および考察を目的として提供された。任意の好適な複数の配置、時系列、構成およびタイミングメカニズムが本開示の複数の教示から逸脱すること無く提供され得るという点で、本明細書において説明される複数の実施形態によって実質的な柔軟性が提供される。
【００９６】
一例示的実装では、本明細書において説明される複数の実施形態を実装することに関わる様々なデバイスまたはコンポーネントは、説明された複数の機能を実現するためのソフトウェアを含むことができ、本明細書において開示されるこれらのデバイスまたはコンポーネントは、本明細書において説明される複数のアクティビティを容易にするための１つ又は複数の非一時的有形媒体において具現化されるソフトウェアを含んでもよい。本明細書において開示される複数のシステムおよびデバイス（例えば、図１、２、等に示されたセキュリティサーバ、評判情報システム、クエリシステム、及び、任意のコンポーネント）の少なくとも一部はまた、本明細書において概説された複数の機能を実現するときに用いられる情報を格納するための、メモリデバイス（又はメモリ素子）を含んでもよい。それに加えて、本明細書において説明される複数のシステムおよびデバイス（例えば、図１、２、等に示されたセキュリティサーバ、評判情報システム、クエリシステム、及び、任意のコンポーネント）は、本明細書において論じられた複数の機能を実行するソフトウェアまたはアルゴリズムを実行することが可能な、１つ又は複数のプロセッサを含んでもよい。これらのデバイスは更に、適切な箇所で特有の複数の必要性に基づいて、任意の好適なメモリ素子（ランダムアクセスメモリ（「ＲＡＭ」）、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＡＳＩＣ、等）、ソフトウェア、ハードウェア、又は、その他の好適なコンポーネント、デバイス、要素、若しくは、オブジェクト内に、情報を保持してもよい。データストアおよびデータソースなどの、本明細書において論じられる複数のメモリアイテムのいずれも、「メモリ素子」との広範な用語内に包含されると解釈されるべきである。同様に、本明細書において説明される潜在的な複数の処理要素、モジュール、及び、機械のいずれも、「プロセッサ」との広範な用語内に包含されると解釈されるべきである。複数のネットワーク要素の各々はまた、ネットワーク環境においてデータまたは情報を受信し、送信し、および／または、そうでなければ通信するための、複数の適切なインターフェースを含むことができる。
【００９７】
特定の複数の例示的実装では、本明細書、及び、本明細書に含まれる複数の図／図面のいずれかにおいて概説される複数の機能は、１つ又は複数の有形媒体において符号化される論理（例えば、特定用途向け集積回路（「ＡＳＩＣ」）において提供される埋め込み論理、複数のデジタル信号プロセッサ（「ＤＳＰ」）命令、プロセッサによって実行される（オブジェクトコードおよびソースコードを潜在的に含む）ソフトウェア、又は、他の同様の機械、等）によって実装されてもよいことに留意されたい。これらの例の幾つかにおいて、本明細書において説明される複数の動作用に用いられるデータを格納すべく、メモリ素子が提供される。これは、実行されることで、本明細書において説明される複数のアクティビティを実行することになる、ソフトウェア、論理、コード、又は、複数のプロセッサ命令を格納することができるメモリ素子を含む。プロセッサは、当該データと関連付けられた任意のタイプの命令を実行して、本明細書において詳細に述べられている複数の動作を実現することができる。一例では、プロセッサは、ある要素または項目（例えばデータ）を、１つの状態もしくは物から別の状態もしくは物へと変換することができる。別の例では、本明細書において概説される複数のアクティビティは、固定論理またはプログラマブル論理（例えば、プロセッサによって実行される複数のソフトウェア／コンピュータ命令）で実装され、本明細書において特定される複数の要素は、幾つかのタイプの、プログラマブルプロセッサ、プログラマブルデジタル論理（例えばフィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）、消去可能プログラマブルリードオンリーメモリ（「ＥＰＲＯＭ」）、電気的消去可能プログラマブルＲＯＭ（「ＥＥＰＲＯＭ」））、又は、デジタル論理、ソフトウェア、コード、複数の電子命令、若しくは、それらの任意の好適な組み合わせを含むＡＳＩＣであり得る。
【００９８】
複数のプログラム命令は、複数の命令でプログラミングされている汎用処理システム又は専用処理システムに、本明細書において説明される複数の動作を実行させるのに用いられてもよい。代替的に、複数の動作は、複数の動作を実行するためのハードワイヤード論理を含む特定の複数のハードウェア構成要素によって、又は、複数のプログラミングコンピュータコンポーネントと複数のカスタムハードウェア構成要素との任意の組み合わせによって、実行されてもよい。本明細書において説明される複数の方法は、複数の方法を実行するように処理システム又は他の電子デバイスをプログラムするのに用いられ得る、複数の命令を格納した１つ又は複数の非一時的で有形の機械可読媒体を含み得る、コンピュータプログラム製品として提供されてもよい。本明細書において用いられる「機械可読媒体」という用語は、機械による実行用の複数の命令のシーケンスを格納または符号化することが可能であって、機械に、本明細書において説明される複数の方法のうちの任意の１つを実行させる、任意の媒体を含むであろう。従って、「非一時的な機械可読媒体」という用語は、複数のソリッドステートメモリ、光ディスクおよび磁気ディスクなどの複数のメモリを含むだろうが、これらに限定されない。更に、１つのフォームまたは別のフォーム（例えば、プログラム、プロシージャ、処理、アプリケーション、モジュール、論理、等）で、ある動作を取る、又は、ある結果を発生させるようなソフトウェアを話すことは当技術分野で一般的である。そのような複数の表現は、処理システムによるソフトウェアの実行が、プロセッサにある動作を実行させる、又は、ある結果を生成させる、と述べることの単なる省略表現的な態様に過ぎない。
【００９９】
本明細書において論じられる多くのインフラストラクチャ（例えば、図１、２、等に示されている、セキュリティサーバ、評判情報システム、クエリシステム、及び、任意のコンポーネント）は、任意のタイプのネットワーク要素の一部としてプロビジョニングされ得るということが留意されるべきである。本明細書において用いられるように、評判情報、普及度情報、及び、セキュリティデータの分析の提供用の、図１および２において示される、セキュリティサーバ、評判情報システム、クエリシステム、及び、任意のコンポーネントといった複数の用語は、複数のコンピュータ、サーバ、ネットワークアプライアンス、ホスト、ルータ、スイッチ、ゲートウェイ、ブリッジ、仮想機器、ロードバランサ、ファイアウォール、プロセッサ、モジュール、又は、ネットワーク環境において情報を交換するよう動作可能なその他の好適なデバイス、コンポーネント、要素若しくはオブジェクトを包含することができる。更に、複数のネットワーク要素は、その複数の動作を容易にする、任意の好適なハードウェア、ソフトウェア、コンポーネント、モジュール、インターフェースまたはオブジェクトを含んでもよい。これは、データまたは情報の効果的な交換を可能にする、複数の適切なアルゴリズムおよび通信プロトコルを含んでもよい。
【０１００】
本開示は特有の複数の配置および構成を参照して詳細に説明されてきたが、これらの例示的構成および配置は、本開示の範囲から逸脱すること無く、著しく変更されてもよい。例えば、本開示は特有の複数の通信交換を参照して説明されてきたが、本明細書において説明される複数の実施形態は、複数の他のアーキテクチャに適用可能であってもよい。
【０１０１】
多数の他の変化、代替、変形例、変更、及び、修正が、当業者に確かめられてもよく、本開示は、添付の複数の請求項の範囲内にある、全てのそのような複数の変化、代替、変形例、変更、及び、修正を包含することが意図されている。ここに添付されている特許請求の範囲を解釈するときに、米国特許商標局（ＵＳＰＴＯ）をアシストする目的で、それに加えて、本出願について発行される任意の特許の任意のリーダをもアシストする目的で、出願人は、（ａ）添付の特許請求の範囲のいずれも、「〜ための手段（ｍｅａｎｓ ｆｏｒ）」または「〜ためのステップ（ｓｔｅｐ ｆｏｒ）」といった言葉が具体的に特有の特許請求の範囲で用いられない限り、これの出願日に存在する、米国特許法第１１２条第６パラグラフ（６）を援用することを意図しておらず、（ｂ）本明細書における任意の言及によって、別の方法によって添付の特許請求の範囲に反映されていない如何なる態様でも、本開示を限定することを意図していないことに留意するよう、出願人は望んでいる。
【０１０２】
「出願人は自分自身の辞書編集者になる権利を与えられている」（ＭＰＥＰ ２１１１．０１（ＩＶ）, ｃｉｔｉｎｇ Ｉｎ ｒｅ Ｐａｕｌｓｏｎ, ３０ Ｆ.３ｄ １４７５, １４８０ （Ｆｅｄ. Ｃｉｒ. １９９４））という十分に確立された原理に従い、特定の複数の用語が、本明細書において明確に規定されてきた。これらの用語は、与えられる複数の定義を有し、これらの定義と一致しない如何なる解釈も与えられないことが、明確に意図されている。
【０１０３】
以下の複数の例は、本開示の幾つかの実施形態に関する。
【０１０４】
例１は、クエリに基づいて普及度情報を提供するための複数の命令を格納した機械可読非一時的記憶媒体であって、複数の命令は、少なくとも１つのプロセッサによって実行された場合に、少なくとも１つのプロセッサに以下の複数の動作を実行させる：データソースから複数の目標値のシーケンスを取得すること；通信デバイスからクエリデータを受信すること；通信デバイスと関連付けられた識別子に基づいて複数のクエリ値のシーケンスを生成すること；複数のクエリ値のシーケンスと複数の目標値のシーケンスとを比較して、一致している値の数を識別すること；及び、一致している値の数に少なくとも部分的に基づいて、クエリデータ用の普及度値を通信デバイスに出力すること。
【０１０５】
例２では、例１の主題が、一致している値の数がデータストアに格納されている一致しているものの最大数を超えていると決定すると、データストア内で一致しているものの最大数を更新すること；及び、統計モデルを用いて、一致しているものの最大数に基づき、普及度値と、普及度値における信頼度とを算出すること；を任意に含むことができる。
【０１０６】
例３では、例１または２の主題が、通信デバイスから、クエリデータと同じ追加のクエリデータを受信すること；及び、追加のクエリデータを受信したことに応答して、データストア内で一致しているものの最大数を更新しないことによって、データストア内で一致しているものの最大数を維持すること；を任意に含むことができる。
【０１０７】
例４では、例１−３の何れかの主題が、複数のクエリ値のシーケンスおよび複数の目標値のシーケンスの各々における初めの値で始まる、複数のクエリ値のシーケンスにおける複数の連続値と、複数の目標値のシーケンスにおける対応する複数の連続値との一対比較を含む、比較することを任意に含むことができる。
【０１０８】
例５では、例１−４の何れかの主題が、第１通信デバイスから第１のクエリデータを受信すること；第１通信デバイスと関連付けられた識別子に基づいて第１の複数のビットのシーケンスを生成すること；及び、複数の目標値のシーケンスとして第１の複数のビットのシーケンスをデータストアに格納すること；を含む、データソースから複数の目標値のシーケンスを取得することを任意に含むことができる。
【０１０９】
例６では、例５の主題が、第２の通信デバイスから第２のクエリデータを受信することを含む、通信デバイスからクエリデータを受信することを任意に含むことができ、ここでは、通信デバイスと関連付けられた識別子に基づいて複数のクエリ値のシーケンスを生成することが、第２の通信デバイスと関連付けられた識別子に基づいて第２の複数のビットのシーケンスを生成することを含む。
【０１１０】
例７では、例６の主題が、第１通信デバイスと関連付けられた識別子にハッシュ関数を適用して第１の複数のビットのシーケンスを生成することを含む、第１の複数のビットのシーケンスを生成することを任意に含むことができ、第２の通信デバイスと関連付けられた識別子にハッシュ関数を適用して第２の複数のビットのシーケンスを生成することを含む、第２の複数のビットのシーケンスを生成することを任意に含むことができる。
【０１１１】
例８では、例７の主題が、メッセージダイジェストアルゴリズム、暗号学的ハッシュ関数、メッセージダイジェストアルゴリズム５（ＭＤ５）、セキュアハッシュアルゴリズム１（ＳＨＡ１）、又は、セキュアハッシュアルゴリズム（ＳＨＡ２５６）のうちの少なくとも１つを含むハッシュ関数を任意に含むことができる。
【０１１２】
例９では、例１−８の何れかの主題が、ファイルのハッシュであるクエリデータを任意に含むことができる。
【０１１３】
例１０では、例１−９の何れかの主題が、閾値に基づいて決定されている複数のクエリ値のシーケンスの長さを任意に含むことができる。
【０１１４】
例１１では、例２−１０の何れかの主題が、普及度値における信頼度に基づいて普及度値を重み付けすることを任意に含むことができる。
【０１１５】
例１２では、例１−１１の何れかの主題が、ある桁に対応する少なくとも１つの値を含む普及度値を任意に含むことができる。
【０１１６】
例１３では、例２−１２の何れかの主題が、少なくとも１つの値に対して計算された確率を含む信頼度を任意に含むことができる。
【０１１７】
例１４は、クエリに基づいて普及度情報を提供するための装置であって、当該装置は、少なくとも１つのメモリ素子と、少なくとも１つのメモリ素子に結合されている少なくとも１つのプロセッサと、少なくとも１つのプロセッサに結合されている評判情報サーバとを備え、評判情報サーバは、データソースから複数の目標値のシーケンスを取得し、通信デバイスからクエリデータを受信し、通信デバイスと関連付けられた識別子に基づいて複数のクエリ値のシーケンスを生成し、複数のクエリ値のシーケンスと複数の目標値のシーケンスとを比較して一致している値の数を識別し、一致している値の数に少なくとも部分的に基づいて、クエリデータ用の普及度値を通信デバイスに出力するように構成されている。
【０１１８】
例１５では、例１４の主題が、更に、一致している値の数がデータストアに格納されている一致しているものの最大数を超えていると決定すると、データストア内で一致しているものの最大数を更新する；及び、統計モデルを用いて、一致しているものの最大数に基づき、普及度値と、普及度値における信頼度とを算出する；ように構成された評判情報サーバを任意に含むことができる。
【０１１９】
例１６では、例１４または１５の主題が、更に、通信デバイスから、クエリデータと同じ追加のクエリデータを受信する；及び、追加のクエリデータを受信したことに応答して、データストア内で一致しているものの最大数を更新しないことによって、データストア内で一致しているものの最大数を維持する；ように構成された評判情報サーバを任意に含むことができる。
【０１２０】
例１７では、例１４−１６の何れかの主題が、複数のクエリ値のシーケンスおよび複数の目標値のシーケンスの各々における初めの値で始まる、複数のクエリ値のシーケンスにおける複数の連続値と、複数の目標値のシーケンスにおける対応する複数の連続値との一対比較を含む、比較することを任意に含むことができる。
【０１２１】
例１８では、例１４−１７の何れかの主題が、第１通信デバイスから第１のクエリデータを受信すること；第１通信デバイスと関連付けられた識別子に基づいて第１の複数のビットのシーケンスを生成すること；及び、複数の目標値のシーケンスとして第１の複数のビットのシーケンスをデータストアに格納すること；を含む、データソースから複数の目標値のシーケンスを取得することを任意に含むことができる。
【０１２２】
例１９では、例１８の主題が、第２の通信デバイスから第２のクエリデータを受信することを含む、通信デバイスからクエリデータを受信することを任意に含むことができ、第２の通信デバイスと関連付けられた識別子に基づいて第２の複数のビットのシーケンスを生成することを含む、通信デバイスと関連付けられた識別子に基づいて複数のクエリ値のシーケンスを生成することを任意に含むことができる。
【０１２３】
例２０では、例１９の主題が、第１通信デバイスと関連付けられた識別子にハッシュ関数を適用して第１の複数のビットのシーケンスを生成することを含む、第１の複数のビットのシーケンスを生成することを任意に含むことができ、第２の通信デバイスと関連付けられた識別子にハッシュ関数を適用して第２の複数のビットのシーケンスを生成することを含む、第２の複数のビットのシーケンスを生成することを任意に含むことができる。
【０１２４】
例２１では、例２０の主題が、メッセージダイジェストアルゴリズム、暗号学的ハッシュ関数、メッセージダイジェストアルゴリズム５（ＭＤ５）、セキュアハッシュアルゴリズム１（ＳＨＡ１）、又は、セキュアハッシュアルゴリズム（ＳＨＡ２５６）のうちの少なくとも１つを含むハッシュ関数を任意に含むことができる。
【０１２５】
例２２では、例１４−２１の何れかの主題が、ファイルのハッシュであるクエリデータを任意に含むことができる。
【０１２６】
例２３では、例１４−２２の何れかの主題が、閾値に基づいて決定されている複数のクエリ値のシーケンスの長さを任意に含むことができる。
【０１２７】
例２４では、例１５−２３の何れかの主題が、更に、普及度値における信頼度に基づいて普及度値を重み付けするように構成された評判情報サーバを任意に含むことができる。
【０１２８】
例２５では、例１４−２４の何れかの主題が、ある桁に対応する少なくとも１つの値を含む普及度値を任意に含むことができる。
【０１２９】
例２６では、例１５−２５の何れかの主題が、少なくとも１つの値に対して計算された確率を含む信頼度を任意に含むことができる。
【０１３０】
例２７は、クエリに基づいて普及度情報を提供するための方法であって、当該方法は、データソースから複数の目標値のシーケンスを取得する段階；通信デバイスからクエリデータを受信する段階；通信デバイスと関連付けられた識別子に基づいて複数のクエリ値のシーケンスを生成する段階；複数のクエリ値のシーケンスと複数の目標値のシーケンスとを比較して、一致している値の数を識別する段階；及び、一致している値の数に少なくとも部分的に基づいて、クエリデータ用の普及度値を通信デバイスに出力する段階を備える。
【０１３１】
例２８では、例２７の主題が、一致している値の数がデータストアに格納されている一致しているものの最大数を超えていると決定すると、データストア内で一致しているものの最大数を更新する段階；及び、統計モデルを用いて、一致しているものの最大数に基づき、普及度値と、普及度値における信頼度とを算出する段階；を任意に含むことができる。
【０１３２】
例２９では、例２７または２８の主題が、通信デバイスから、クエリデータと同じ追加のクエリデータを受信する段階；及び、追加のクエリデータを受信したことに応答して、データストア内で一致しているものの最大数を更新しないことによって、データストア内で一致しているものの最大数を維持する段階；を任意に含むことができる。
【０１３３】
例３０では、例２７−２９の何れかの主題が、複数のクエリ値のシーケンスおよび複数の目標値のシーケンスの各々における初めの値で始まる、複数のクエリ値のシーケンスにおける複数の連続値と、複数の目標値のシーケンスにおける対応する複数の連続値との一対比較を含む、比較する段階を任意に含むことができる。
【０１３４】
例３１では、例２７−３０の何れかの主題が、第１通信デバイスから第１のクエリデータを受信する段階；第１通信デバイスと関連付けられた識別子に基づいて第１の複数のビットのシーケンスを生成する段階；及び、複数の目標値のシーケンスとして第１の複数のビットのシーケンスをデータストアに格納する段階；を含む、データソースから複数の目標値のシーケンスを取得する段階を任意に含むことができる。
【０１３５】
例３２では、例３１の主題が、第２の通信デバイスから第２のクエリデータを受信する段階を含む、通信デバイスからクエリデータを受信する段階を任意に含むことができ、第２の通信デバイスと関連付けられた識別子に基づいて第２の複数のビットのシーケンスを生成する段階を含む、通信デバイスと関連付けられた識別子に基づいて複数のクエリ値のシーケンスを生成する段階を任意に含むことができる。
【０１３６】
例３３では、例３２の主題が、第１通信デバイスと関連付けられた識別子にハッシュ関数を適用して第１の複数のビットのシーケンスを生成する段階を含む、第１の複数のビットのシーケンスを生成する段階を任意に含むことができ、第２の通信デバイスと関連付けられた識別子にハッシュ関数を適用して第２の複数のビットのシーケンスを生成する段階を含む、第２の複数のビットのシーケンスを生成する段階を任意に含むことができる。
【０１３７】
例３４では、例３３の主題が、メッセージダイジェストアルゴリズム、暗号学的ハッシュ関数、メッセージダイジェストアルゴリズム５（ＭＤ５）、セキュアハッシュアルゴリズム１（ＳＨＡ１）、又は、セキュアハッシュアルゴリズム（ＳＨＡ２５６）のうちの少なくとも１つを含むハッシュ関数を任意に含むことができる。
【０１３８】
例３５では、例２７−３４の何れかの主題が、ファイルのハッシュであるクエリデータを任意に含むことができる。
【０１３９】
例３６では、例２７−３５の何れかの主題が、閾値に基づいて決定されている複数のクエリ値のシーケンスの長さを任意に含むことができる。
【０１４０】
例３７では、例２８−３６の何れかの主題が、普及度値における信頼度に基づいて普及度値を重み付けする段階を任意に含むことができる。
【０１４１】
例３８では、例２７−３７の何れかの主題が、ある桁に対応する少なくとも１つの値を含む普及度値を任意に含むことができる。
【０１４２】
例３９では、例２８−３８の何れかの主題が、少なくとも１つの値に対して計算された確率を含む信頼度を任意に含むことができる。
【０１４３】
例４０は、クエリに基づいて普及度情報を提供するための装置であって、当該装置は、データソースから複数の目標値のシーケンスを取得するための手段；通信デバイスからクエリデータを受信するための手段；通信デバイスと関連付けられた識別子に基づいて複数のクエリ値のシーケンスを生成するための手段；複数のクエリ値のシーケンスと複数の目標値のシーケンスとを比較して、一致している値の数を識別するための手段；及び、一致している値の数に少なくとも部分的に基づいて、クエリデータ用の普及度値を通信デバイスに出力するための手段を備える。
【０１４４】
例４１では、例４０の主題が、一致している値の数がデータストアに格納されている一致しているものの最大数を超えていると決定すると、データストア内で一致しているものの最大数を更新するための手段；及び、統計モデルを用いて、一致しているものの最大数に基づき、普及度値と、普及度値における信頼度とを算出するための手段；を任意に含むことができる。
【０１４５】
例４２では、例４０−４１の何れかの主題が、通信デバイスから、クエリデータと同じ追加のクエリデータを受信するための手段；及び、追加のクエリデータを受信したことに応答して、データストア内で一致しているものの最大数を更新しないことによって、データストア内で一致しているものの最大数を維持するための手段；を任意に含むことができる。
【０１４６】
例４３では、例４０−４２の何れかの主題が、複数のクエリ値のシーケンスおよび複数の目標値のシーケンスの各々における初めの値で始まる、複数のクエリ値のシーケンスにおける複数の連続値と、複数の目標値のシーケンスにおける対応する複数の連続値との一対比較を含む、比較することを任意に含むことができる。
【０１４７】
例４４では、例４０−４３の何れかの主題が、第１通信デバイスから第１のクエリデータを受信するための手段；第１通信デバイスと関連付けられた識別子に基づいて第１の複数のビットのシーケンスを生成するための手段；及び、複数の目標値のシーケンスとして第１の複数のビットのシーケンスをデータストアに格納するための手段；を含む、データソースから複数の目標値のシーケンスを取得するための手段を任意に含むことができる。
【０１４８】
例４５では、例４４の主題が、第２の通信デバイスから第２のクエリデータを受信するための手段を含む、通信デバイスからクエリデータを受信するための手段を任意に含むことができ、第２の通信デバイスと関連付けられた識別子に基づいて第２の複数のビットのシーケンスを生成するための手段を含む、通信デバイスと関連付けられた識別子に基づいて複数のクエリ値のシーケンスを生成するための手段を任意に含むことができる。
【０１４９】
例４６では、例４５の主題が、第１通信デバイスと関連付けられた識別子にハッシュ関数を適用して第１の複数のビットのシーケンスを生成するための手段を含む、第１の複数のビットのシーケンスを生成するための手段；及び、第２の通信デバイスと関連付けられた識別子にハッシュ関数を適用して第２の複数のビットのシーケンスを生成するための手段を含む、第２の複数のビットのシーケンスを生成するための手段を任意に含むことができる。
【０１５０】
例４７では、例４６の主題が、メッセージダイジェストアルゴリズム、暗号学的ハッシュ関数、メッセージダイジェストアルゴリズム５（ＭＤ５）、セキュアハッシュアルゴリズム１（ＳＨＡ１）、又は、セキュアハッシュアルゴリズム（ＳＨＡ２５６）のうちの少なくとも１つを含むハッシュ関数を任意に含むことができる。
【０１５１】
例４８では、例４０−４７の何れかの主題が、ファイルのハッシュであるクエリデータを任意に含むことができる。
【０１５２】
例４９では、例４０−４８の何れかの主題が、閾値に基づいて決定されている複数のクエリ値のシーケンスの長さを任意に含むことができる。
【０１５３】
例５０では、例４１−４９の何れかの主題が、普及度値における信頼度に基づいて普及度値を重み付けするための手段を任意に含むことができる。
【０１５４】
例５１では、例４０−５０の何れかの主題が、ある桁に対応する少なくとも１つの値を含む普及度値を任意に含むことができる。
【０１５５】
例５２では、例４１−５１の何れかの主題が、少なくとも１つの値に対して計算された確率を含む信頼度を任意に含むことができる。
【０１５６】
例５３は、クエリに基づいて普及度情報を提供するための装置であって、例２７−３９の何れか１つの方法を実行するための手段を備える装置である。
【０１５７】
例５４では、例４０の主題が、少なくとも１つのプロセッサと少なくとも１つのメモリ素子とを備えた、例２７−３９の何れか１つの方法を実行するための手段を任意に含むことができる。
【０１５８】
例５５では、例５４の主題が、実行された場合に装置に例２７−３９の何れか１つの方法を実行させる複数の機械可読命令を含む、少なくとも１つのメモリ素子を任意に含むことができる。
【０１５９】
例５６では、例５３−５５の主題が、コンピューティングデバイスである装置を任意に含むことができる。
【０１６０】
例５７は、クエリに基づいて普及度情報を提供するための複数の命令を含む、少なくとも１つの機械可読記憶媒体であって、複数の命令は、実行された場合に、例２７−３９または５３−５６の何れか１つにおいて説明された、方法を実装する、又は、装置を実現する。
【０１６１】
例５８は、実行された場合に、機械に例２７−３９の何れか１つの方法を実行させるコードを含む、少なくとも１つの機械可読媒体である。
【０１６２】
例５９では、例４０の主題が、コンピューティングデバイスである装置を任意に含むことができる。
【図１】
2017516172.tif 000003
【図２】
2017516172.tif 000004
【図３】
2017516172.tif 000005
【図４】
2017516172.tif 000006
【図５】
2017516172.tif 000007
【図６Ａ】
2017516172.tif 000008
【図６Ｂ】
2017516172.tif 000009
【図７】
2017516172.tif 000010
【図８】
2017516172.tif 000011
【図９】
2017516172.tif 000012
【手続補正書】
【提出日】平成28年9月30日(2016.9.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クエリに基づいて普及度情報を提供するための複数の命令のプログラムであって、前記複数の命令は、少なくとも１つのプロセッサによって実行された場合に、前記少なくとも１つのプロセッサに、
データソースから複数の目標値のシーケンスを取得する手順と、
通信デバイスからクエリデータを受信する手順と、
前記通信デバイスと関連付けられた識別子に基づいて複数のクエリ値のシーケンスを生成する手順と、
前記複数のクエリ値のシーケンスと前記複数の目標値のシーケンスとを比較して、一致している値の数を識別する手順と、
前記一致している値の数に少なくとも部分的に基づいて、前記クエリデータ用の普及度値を前記通信デバイスに出力する手順と
を実行させる、プログラム。
【請求項２】
前記複数の命令は、前記少なくとも１つのプロセッサによって実行された場合に、前記少なくとも１つのプロセッサに、更に、
前記一致している値の数がデータストアに格納されている一致しているものの最大数を超えていると決定すると、前記データストア内で一致しているものの最大数を更新する手順と、
統計モデルを用いて、前記一致しているものの最大数に基づき、前記普及度値と、前記普及度値における信頼度とを算出する手順と
を実行させる、請求項１に記載のプログラム。
【請求項３】
前記複数の命令は、前記少なくとも１つのプロセッサによって実行された場合に、前記少なくとも１つのプロセッサに、更に、
前記通信デバイスから、前記クエリデータと同じ追加のクエリデータを受信する手順と、
前記追加のクエリデータを受信したことに応答して、データストア内で一致しているものの最大数を更新しないことによって、前記データストア内で前記一致しているものの最大数を維持する手順と
を実行させる、請求項１または２に記載のプログラム。
【請求項４】
前記比較する手順は、前記複数のクエリ値のシーケンスおよび前記複数の目標値のシーケンスの各々における初めの値で始まる、前記複数のクエリ値のシーケンスにおける複数の連続値と、前記複数の目標値のシーケンスにおける対応する複数の連続値との一対比較を含む、
請求項１または２に記載のプログラム。
【請求項５】
前記データソースから前記複数の目標値のシーケンスを取得する手順が、
第１通信デバイスから第１のクエリデータを受信する手順と、
前記第１通信デバイスと関連付けられた識別子に基づいて第１の複数のビットのシーケンスを生成する手順と、
前記複数の目標値のシーケンスとして前記第１の複数のビットのシーケンスをデータストアに格納する手順と
を含む、請求項１または２に記載のプログラム。
【請求項６】
前記通信デバイスから前記クエリデータを受信する手順が、第２の通信デバイスから第２のクエリデータを受信する手順を含み、前記通信デバイスと関連付けられた前記識別子に基づいて前記複数のクエリ値のシーケンスを生成する手順が、前記第２の通信デバイスと関連付けられた識別子に基づいて第２の複数のビットのシーケンスを生成する手順を含む、
請求項５に記載のプログラム。
【請求項７】
前記第１の複数のビットのシーケンスを生成する手順が、前記第１通信デバイスと関連付けられた前記識別子にハッシュ関数を適用して前記第１の複数のビットのシーケンスを生成する手順を含み、前記第２の複数のビットのシーケンスを生成する手順が、前記第２の通信デバイスと関連付けられた前記識別子に前記ハッシュ関数を適用して前記第２の複数のビットのシーケンスを生成する手順を含む、
請求項６に記載のプログラム。
【請求項８】
前記ハッシュ関数が、メッセージダイジェストアルゴリズム、暗号学的ハッシュ関数、メッセージダイジェストアルゴリズム５（ＭＤ５）、セキュアハッシュアルゴリズム１（ＳＨＡ１）、又は、セキュアハッシュアルゴリズム（ＳＨＡ２５６）のうちの少なくとも１つを含む、
請求項７に記載のプログラム。
【請求項９】
前記クエリデータがファイルのハッシュである、
請求項１または２に記載のプログラム。
【請求項１０】
前記複数のクエリ値のシーケンスの長さが、ある閾値に基づいて決定される、
請求項１または２に記載のプログラム。
【請求項１１】
前記複数の命令は、前記少なくとも１つのプロセッサによって実行された場合に、前記少なくとも１つのプロセッサに、更に、
前記普及度値における前記信頼度に基づいて前記普及度値を重み付けする手順
を実行させる、請求項２に記載のプログラム。
【請求項１２】
前記普及度値が、ある桁に対応する少なくとも１つの値を含む、
請求項１または２に記載のプログラム。
【請求項１３】
前記信頼度が、前記少なくとも１つの値に対して計算された確率を含む、
請求項２に記載のプログラム。
【請求項１４】
クエリに基づいて普及度情報を提供するための装置であって、
少なくとも１つのメモリ素子と、
前記少なくとも１つのメモリ素子に結合されている少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合されている評判情報サーバと
を備え、
前記評判情報サーバは、
データソースから複数の目標値のシーケンスを取得して、
通信デバイスからクエリデータを受信して、
前記通信デバイスと関連付けられた識別子に基づいて複数のクエリ値のシーケンスを生成して、
前記複数のクエリ値のシーケンスと前記複数の目標値のシーケンスとを比較して一致している値の数を識別して、
前記一致している値の数に少なくとも部分的に基づいて、前記クエリデータ用の普及度値を前記通信デバイスに出力する、
装置。
【請求項１５】
前記評判情報サーバが更に、
前記一致している値の数がデータストアに格納されている一致しているものの最大数を超えていると決定すると、前記データストア内で前記一致しているものの最大数を更新し、
統計モデルを用いて、前記一致しているものの最大数に基づき、前記普及度値と、前記普及度値における信頼度とを算出する、
請求項１４に記載の装置。
【請求項１６】
前記評判情報サーバは更に、
前記通信デバイスから、前記クエリデータと同じ追加のクエリデータを受信し、
前記追加のクエリデータを受信したことに応答して、データストア内で一致しているものの最大数を更新しないことによって、前記データストア内で前記一致しているものの最大数を維持する、
請求項１４または１５に記載の装置。
【請求項１７】
前記データソースから前記複数の目標値のシーケンスを取得することが、
第１通信デバイスから第１のクエリデータを受信すること、
前記第１通信デバイスと関連付けられた識別子に基づいて第１の複数のビットのシーケンスを生成すること、及び、
前記複数の目標値のシーケンスとして前記第１の複数のビットのシーケンスをデータストアに格納すること
を含む、請求項１４または１５に記載の装置。
【請求項１８】
前記通信デバイスから前記クエリデータを受信することが、第２の通信デバイスから第２のクエリデータを受信することを含み、前記通信デバイスと関連付けられた前記識別子に基づいて前記複数のクエリ値のシーケンスを生成することが、前記第２の通信デバイスと関連付けられた識別子に基づいて第２の複数のビットのシーケンスを生成することを含む、
請求項１７に記載の装置。
【請求項１９】
前記第１の複数のビットのシーケンスを生成することが、前記第１通信デバイスと関連付けられた前記識別子にハッシュ関数を適用して前記第１の複数のビットのシーケンスを生成することを含み、前記第２の複数のビットのシーケンスを生成することが、前記第２の通信デバイスと関連付けられた前記識別子に前記ハッシュ関数を適用して前記第２の複数のビットのシーケンスを生成することを含む、
請求項１８に記載の装置。
【請求項２０】
クエリに基づいて普及度情報を提供するための方法であって、
データソースから複数の目標値のシーケンスを取得する段階と、
通信デバイスからクエリデータを受信する段階と、
前記通信デバイスと関連付けられた識別子に基づいて複数のクエリ値のシーケンスを生成する段階と、
前記複数のクエリ値のシーケンスと前記複数の目標値のシーケンスとを比較して、一致している値の数を識別する段階と、
前記一致している値の数に少なくとも部分的に基づいて、前記クエリデータ用の普及度値を前記通信デバイスに出力する段階と
を備える方法。
【請求項２１】
前記一致している値の数がデータストアに格納されている一致しているものの最大数を超えていると決定すると、前記データストア内で一致しているものの最大数を更新する段階と、
統計モデルを用いて、前記一致しているものの最大数に基づき、前記普及度値と、前記普及度値における信頼度とを算出する段階と
を更に備える請求項２０に記載の方法。
【請求項２２】
前記通信デバイスから、前記クエリデータと同じ追加のクエリデータを受信する段階と、
前記追加のクエリデータを受信したことに応答して、データストア内で一致しているものの最大数を更新しないことによって、前記データストア内で前記一致しているものの最大数を維持する段階と
を更に備える、請求項２０または２１に記載の方法。
【請求項２３】
前記データソースから前記複数の目標値のシーケンスを取得する段階が、
第１通信デバイスから第１のクエリデータを受信する段階と、
前記第１通信デバイスと関連付けられた識別子に基づいて第１の複数のビットのシーケンスを生成する段階と、
前記複数の目標値のシーケンスとして前記第１の複数のビットのシーケンスをデータストアに格納する段階と
を含む、請求項２０または２１に記載の方法。
【請求項２４】
前記通信デバイスから前記クエリデータを受信する段階が、第２の通信デバイスから第２のクエリデータを受信する段階を含み、前記通信デバイスと関連付けられた前記識別子に基づいて前記複数のクエリ値のシーケンスを生成する段階が、前記第２の通信デバイスと関連付けられた識別子に基づいて第２の複数のビットのシーケンスを生成する段階を含む、
請求項２３に記載の方法。
【請求項２５】
クエリに基づいて普及度情報を提供するための装置であって、
データソースから複数の目標値のシーケンスを取得するための手段と、
通信デバイスからクエリデータを受信するための手段と、
前記通信デバイスと関連付けられた識別子に基づいて複数のクエリ値のシーケンスを生成するための手段と、
前記複数のクエリ値のシーケンスと前記複数の目標値のシーケンスとを比較して一致している値の数を識別するための手段と、
前記一致している値の数に少なくとも部分的に基づいて、前記クエリデータ用の普及度値を前記通信デバイスに出力するための手段と
を備える装置。
【請求項２６】
請求項１から１３の何れか一項に記載のプログラムを格納した機械可読非一時的記録媒体。
【国際調査報告】
2017516172.tif 000013
2017516172.tif 000014