(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-07
(54)【発明の名称】プライバシー保護のための局所的暗号技法
(51)【国際特許分類】
H04L 9/32 20060101AFI20231130BHJP
【FI】
H04L9/32 200C
H04L9/32 200F
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022570384
(86)(22)【出願日】2021-10-28
(85)【翻訳文提出日】2023-01-17
(86)【国際出願番号】 US2021056932
(87)【国際公開番号】W WO2023075768
(87)【国際公開日】2023-05-04
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】クリストファー・シュナイダー
(57)【要約】
コンテンツを選択する際のユーザプライバシーを保全するための、方法、システム、およびコンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む装置について記載される。いくつかの態様では、方法は、候補デジタルコンポーネントのセットを識別するデータ要素、および各候補デジタルコンポーネントについて、候補デジタルコンポーネントのための配信パラメータのセットを受信することを含む。各候補デジタルコンポーネントについて、候補デジタルコンポーネントのための暗号化された選択データが、クライアントデバイスのトラステッドハードウェアモジュール内で実行されている暗号解析アプリケーションへの入力として提供される。暗号化された選択データは、候補デジタルコンポーネントのための配信パラメータのセットを表し、ゼロ知識証明プロトコルを使用して暗号化されたものである。暗号解析アプリケーションは、選択データとクライアントデバイスのユーザのユーザ属性との間の一致の程度を決定するように構成されている。
【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
候補デジタルコンポーネントのセットを識別するデータ要素、および各候補デジタルコンポーネントについて、前記候補デジタルコンポーネントのための配信パラメータのセットを受信するステップと、
各候補デジタルコンポーネントについて、
前記候補デジタルコンポーネントのための暗号化された選択データを、クライアントデバイスのトラステッドハードウェアモジュール内で実行されている暗号解析アプリケーションへの入力として提供するステップであって、前記暗号化された選択データが、前記候補デジタルコンポーネントのための配信パラメータの前記セットを表し、ゼロ知識証明プロトコルを使用して暗号化されたものであり、前記暗号解析アプリケーションが、前記選択データと前記クライアントデバイスのユーザのユーザ属性との間の一致の程度を決定するように構成されている、ステップと、
前記暗号解析アプリケーションの出力として、前記選択データとユーザの前記ユーザ属性との間の一致の前記程度を示す暗号化された結果を受信するステップであって、前記暗号化された結果が、前記ゼロ知識証明プロトコルを使用して暗号化されたものである、ステップと、
各候補デジタルコンポーネントのための前記暗号化された結果を復号するステップと、
各候補デジタルコンポーネントについての一致の前記程度に基づいて、前記候補デジタルコンポーネントから所与のデジタルコンポーネントを選択するステップと、
前記所与のデジタルコンポーネントを表示するステップと
を含むコンピュータ実装方法。
【請求項2】
前記暗号解析モジュールが、前記選択データの各データアイテムを前記ユーザの対応するユーザ属性と比較することによって、前記選択データとユーザ属性との間の一致の前記程度を決定する、請求項1に記載のコンピュータ実装方法。
【請求項3】
各候補デジタルコンポーネントのための前記選択データが、選択されたデジタルコンポーネントが表示されることになる環境についてのコンテキストデータを含む、請求項1から2のいずれか一項に記載のコンピュータ実装方法。
【請求項4】
前記ユーザ属性データが、前記トラステッドハードウェアモジュール内に格納され、前記ユーザ属性データが、前記ゼロ知識証明プロトコルを使用して暗号化される、請求項1から3のいずれか一項に記載のコンピュータ実装方法。
【請求項5】
各候補デジタルコンポーネントのための配信パラメータの前記セットが、前記ゼロ知識証明プロトコルを使用して暗号化される、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
【請求項6】
前記ゼロ知識証明プロトコルが、ring learning with errorsプロトコルを含む、請求項1から5のいずれか一項に記載のコンピュータ実装方法。
【請求項7】
各候補デジタルコンポーネントについての一致の前記程度に基づいて、前記候補デジタルコンポーネントから前記所与のデジタルコンポーネントを選択するステップが、各候補デジタルコンポーネントについて、一致の前記程度とパブリッシャ量との組合せに基づいて、前記所与のデジタルコンポーネントを選択するステップを含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
1つまたは複数のプロセッサと、
1つまたは複数の記憶デバイスであって、命令を格納し、前記命令が、前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに請求項1から7のいずれか一項に記載の方法を実行させる、1つまたは複数の記憶デバイスと
を備える、システム。
【請求項9】
コンピュータ可読記憶媒体であって、命令を保持し、前記命令が、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに請求項1から7のいずれか一項に記載の方法を実行させる、コンピュータ可読記憶媒体。
【請求項10】
コンピュータプログラム製品であって、命令を含み、前記命令が、コンピュータによって実行されると、前記コンピュータに請求項1から7のいずれか一項に記載の方法の前記ステップを実行させる、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、暗号技術およびデータセキュリティに関する。
【背景技術】
【0002】
データへの不正アクセスを防止するための多くの暗号技法がある。ゼロ知識証明は、あるパーティが何らかの情報を知っているかまたは有していることを、情報自体について何も明らかにすることなく発見的に証明するための暗号プロトコルである。例えば、ゼロ知識証明は、あるパーティが別のパーティに、命題が真であることを、他のどんな情報も暴露することなく証明することを可能にすることができる。ring learning with errors(RLWE)が、ゼロ知識証明の一用例である。
【発明の概要】
【課題を解決するための手段】
【0003】
一般に、本明細書において説明する本主題の革新的な一態様は、候補デジタルコンポーネントのセットを識別するデータ要素、および各候補デジタルコンポーネントについて、候補デジタルコンポーネントのための配信パラメータ(distribution parameter)のセットを受信することと、各候補デジタルコンポーネントについて、候補デジタルコンポーネントのための暗号化された選択データを、クライアントデバイスのトラステッドハードウェアモジュール内で実行されている暗号解析アプリケーションへの入力として提供することであって、暗号化された選択データが、候補デジタルコンポーネントのための配信パラメータのセットを表し、ゼロ知識証明プロトコルを使用して暗号化されたものであり、暗号解析アプリケーションが、選択データとクライアントデバイスのユーザのユーザ属性との間の一致の程度を決定するように構成されている、提供することと、暗号解析アプリケーションの出力として、選択データとユーザのユーザ属性との間の一致の程度を示す暗号化された結果を受信することであって、暗号化された結果が、ゼロ知識証明プロトコルを使用して暗号化されたものである、受信することと、各候補デジタルコンポーネントのための暗号化された結果を復号することと、各候補デジタルコンポーネントについての一致の程度に基づいて、候補デジタルコンポーネントから所与のデジタルコンポーネントを選択することと、所与のデジタルコンポーネントを表示することとを含む方法において、具現化することができる。本態様の他の実施形態は、対応するシステムと、装置と、方法のアクションを実施するように構成され、コンピュータ記憶デバイス上に符号化された、コンピュータプログラムとを含む。
【0004】
これらの実装形態および他の実装形態はそれぞれ、オプションで、以下の特徴のうちの1つまたは複数を含むことができる。いくつかの態様では、暗号解析モジュールが、選択データの各データアイテムをユーザの対応するユーザ属性と比較することによって、選択データとユーザ属性との間の一致の程度を決定する。いくつかの態様では、各候補デジタルコンポーネントのための選択データが、選択されたデジタルコンポーネントが表示されることになる環境についてのコンテキストデータを含む。
【0005】
いくつかの態様では、ユーザ属性データが、トラステッドハードウェアモジュール内に格納され、ユーザ属性データが、ゼロ知識証明プロトコルを使用して暗号化される。いくつかの態様では、各候補デジタルコンポーネントのための配信パラメータのセットが、ゼロ知識証明プロトコルを使用して暗号化される。
【0006】
いくつかの態様では、ゼロ知識証明プロトコルが、ring learning with errorsプロトコルを含む。いくつかの態様では、各候補デジタルコンポーネントについての一致の程度に基づいて、候補デジタルコンポーネントから所与のデジタルコンポーネントを選択することが、各候補デジタルコンポーネントについて、一致の程度とパブリッシャ量(publisher amount)との組合せに基づいて、所与のデジタルコンポーネントを選択することを含む。
【0007】
本明細書において説明する本主題は、特定の実施形態において、以下の利点のうちの1つまたは複数を実現するように実装することができる。ユーザデータをパブリックネットワーク、例えばインターネットにわたって送るのではなく、ユーザデータをユーザのデバイスのトラステッドハードウェアモジュール内に格納することによって、またはトラステッドハードウェアモジュールを使用してユーザデータへのアクセスを制御することによって、ユーザデータのセキュリティおよびプライバシーが保護され、それでもユーザに表示されるコンテンツをカスタマイズするためにそのようなデータが使用されることが可能であり、それにより、デジタルコンテンツを視聴するときのユーザエクスペリエンスも向上する。暗号技法、例えばゼロ知識証明およびring learning with errorsにより、ユーザのデータのうちのいずれかのデータの知識にユーザ以外のパーティがアクセスしてその知識を得ることができないようにしながら、そのようなユーザデータを使用することが可能になる。ゼロ知識証明およびring learning with errorsを含む暗号技法は、選択を実施するために使用されるコンテンツ選択基準のうちのいずれかのコンテンツ選択基準の知識にユーザがアクセスしてその知識を得ることができないようにすることもできる。選択基準の詳細をユーザが学習できないようにすることにより、ユーザデータは、ユーザデバイス上にプライベートのまま維持されることが可能であるが、選択基準についての情報をサードパーティが特定できないようにすることもできる。例えばユーザのデバイス上に候補コンテンツを格納することと組み合わせて、ユーザのデバイス上でこれらの暗号技法を使用してコンテンツ選択を実施することにより、そのようなデータがコンテンツ選択のためにリモートサーバに送信されることを必要とする技法に比べて、証明可能なデジタルコンポーネントを表示する際のレイテンシおよび帯域幅消費が低減することが可能である。
【0008】
コンテンツ提示の際のレイテンシを低減させることにより、そのようなコンテンツが選択されかつ/またはリモートサーバから到着するのを待っている間にユーザデバイスにおいて生じるエラーの数が低減する。コンテンツはしばしば、ユーザデバイスにある必要があり、また数百ミリ秒以内に、ワイヤレスネットワークによって接続されたモバイルデバイスに表示する準備ができている必要があるので、コンテンツを選択および/または提供する際のレイテンシを低減させることは、エラーを防止しユーザの不満を低減させる上で決定的に重要である。加えて、データを送信する必要性を低減させると、情報を送信するために消費される帯域幅の量が低減し、情報を送信する際のレイテンシが低減し、情報を送信するために必要となる処理電力の量およびバッテリで動作するデバイス(例えばモバイルデバイス)の関連するバッテリ電力の量が低減する。本文献において説明する暗号技法と、ユーザデータおよび/または候補コンテンツをユーザデバイスに格納することとが相まって、ユーザデバイスにおいてコンテンツを提示する際の、データセキュリティが向上し、ユーザプライバシーが保護され、レイテンシが低減する、という相乗効果がもたらされる。
【0009】
前述の本主題のさまざまな特徴および利点については下で、図を参照して説明する。さらなる特徴および利点が、本明細書において説明する本主題および特許請求の範囲から明らかである。
【図面の簡単な説明】
【0010】
【
図1】クライアントデバイスがデジタルコンテンツを表示する例示的な環境のブロック図である。
【
図2】デジタルコンポーネントを選択し表示する例示的なプロセスのスイムレーン図である。
【
図3】デジタルコンポーネントを選択し表示する例示的なプロセスの図である。
【
図4】例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0011】
さまざまな図面中の同様の参照番号および名称は、同様の要素を示す。
【0012】
一般に、本文献では、ユーザに表示するコンテンツを選択するプロセスにおいてユーザプライバシーを保全するように暗号技術を使用するためのシステムおよび技法について説明する。本文献において説明する技法は、要求が受信された後に短期間で、例えば数ミリ秒以内にデジタルコンポーネントを提供するとともに、そのようなプライバシー保全およびデータセキュリティを可能にする。これらの技法は、ゼロ知識証明を使用して、ユーザ以外のどんなパーティがユーザ属性を学習することも可能にすることなく、デジタルコンポーネントの配信パラメータがユーザの属性と一致するかどうか(または配信パラメータとユーザ属性との間の一致の程度)を問い合わせすることを含むことができる。コンテンツ選択モジュールが、このプロセスが複数の候補デジタルコンポーネントについて実施された結果と、オプションで追加の情報とに基づいて、表示するデジタルコンポーネントを選択することができる。
【0013】
図1は、クライアントデバイスがデジタルコンテンツを表示する例示的な環境100のブロック図である。例示的な環境100は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、モバイルネットワーク、またはそれらの組合せなどのデータ通信ネットワーク105を含む。ネットワーク105は、クライアントデバイス110、パブリッシャ140、ウェブサイト142、およびコンテンツ管理システム150を接続する。例示的な環境100は、多くの異なるクライアントデバイス110、パブリッシャ140、ウェブサイト142、およびコンテンツ管理システム150を含むことができる。
【0014】
ウェブサイト142は、1つまたは複数の電子リソース145を含む。リソース145は、ドメイン名に関連付けられることが可能であり、1つまたは複数のサーバによってホストされることが可能である。例示的なウェブサイトは、テキスト、画像、マルチメディアコンテンツ、およびスクリプトなどのプログラミング要素を収容することのできる、ハイパーテキストマークアップ言語(HTML)でフォーマットされたウェブページの集合である。各ウェブサイト142は、ウェブサイト142を制御、管理、および/または所有するエンティティであるコンテンツパブリッシャ140によって維持される。
【0015】
リソース145は、パブリッシャ140によってネットワーク105経由で提供されることが可能であるとともにリソースアドレスと関連付けられることの可能な、任意のデータである。リソースとしては、ほんの数例を挙げると、HTMLページ、ワードプロセッシングドキュメント、およびポータブルドキュメントフォーマット(PDF)ドキュメント、画像、ビデオ、ならびにフィードソースがある。リソース145は、単語、フレーズ、写真などのコンテンツを含むことができ、埋込み情報(例えばメタ情報およびハイパーリンク)ならびに/または埋込み命令、例えばスクリプトを含んでよい。
【0016】
クライアントデバイス110は、ネットワーク105経由で通信することの可能な電子デバイスである。例示的なクライアントデバイス110には、ネットワーク105経由でデータを送り、受信することのできる、パーソナルコンピュータ、モバイル通信デバイス、例えばスマートフォン、および他のデバイスが含まれる。クライアントデバイス110には、マイクロホンを通じてオーディオ入力を受け取り、スピーカを通じてオーディオ出力を出力する、デジタルアシスタントデバイスも含まれ得る。デジタルアシスタントは、マイクロホンを作動させてオーディオ入力を受け取らせる「ホットワード」または「ホットフレーズ」をデジタルアシスタントが検出したときに、(例えばオーディオ入力を受け取る準備ができている)リスンモードになることができる。デジタルアシスタントデバイスは、画像を取り込み、情報を視覚的に提示するための、カメラおよび/またはディスプレイを含むこともできる。デジタルアシスタントは、ウェアラブルデバイス(例えばウォッチもしくはグラス)、スマートフォン、スピーカデバイス、タブレットデバイス、または別のハードウェアデバイスを含む、さまざまな形態のハードウェアデバイスとして実装することができる。クライアントデバイス110は、デジタル媒体デバイス、例えばテレビジョンまたは他のディスプレイにプラグ接続してテレビジョン、ゲーミングシステム、または仮想現実システムにビデオをストリーミングするストリーミングデバイスを含むこともできる。
【0017】
クライアントデバイス110は、典型的には、ネットワーク105経由でデータを送り、受信することを円滑にするための、ウェブブラウザおよび/またはネイティブアプリケーションなどのアプリケーション112を含む。ネイティブアプリケーションとは、特定のプラットフォームまたは特定のデバイス用に、例えば特定のオペレーティングシステムを有するモバイルデバイス用に開発された、アプリケーションである。パブリッシャ140が、ネイティブアプリケーションを開発し、それをクライアントデバイス110に提供する、例えばダウンロードできるようにすることができる。ウェブブラウザは、例えばクライアントデバイス110のユーザがウェブブラウザのアドレスバー内にリソース145のリソースアドレスを入力するかまたはそのリソースアドレスを参照するリンクを選択したことに応答して、パブリッシャ140のウェブサイト142をホストするウェブサーバにリソース145を要求することができる。同様に、ネイティブアプリケーションも、パブリッシャのリモートサーバにアプリケーションコンテンツを要求することができる。
【0018】
一部のリソース、アプリケーションページ、または他のアプリケーションコンテンツは、デジタルコンポーネントをリソース145またはアプリケーションページとともに表示するためのデジタルコンポーネントスロットを含むことができる。本文献全体を通して、「デジタルコンポーネント」というフレーズは、デジタルコンテンツまたはデジタル情報の個別の単位(例えばビデオクリップ、オーディオクリップ、マルチメディアクリップ、画像、テキスト、または別のコンテンツ単位)を指す。デジタルコンポーネントは、単一のファイルとして、またはファイルの集合として、物理メモリデバイス内に電子的に格納されることが可能であり、デジタルコンポーネントは、ビデオファイル、オーディオファイル、マルチメディアファイル、画像ファイル、またはテキストファイルの形態をとることができ、また広告情報を含むことができ、したがって、広告はデジタルコンポーネントの一タイプである。例えば、デジタルコンポーネントは、アプリケーション112によって表示されるウェブページ、アプリケーションコンテンツ(例えばアプリケーションページ)、または他のリソースのコンテンツを補完するためのものであるコンテンツとすることができる。より具体的には、デジタルコンポーネントは、リソースコンテンツに関連のあるデジタルコンテンツを含んでよく、例えば、デジタルコンポーネントは、ウェブページコンテンツと同じトピックに、または関連するトピックに関係してよい。したがって、デジタルコンポーネントの提供は、ウェブページコンテンツまたはアプリケーションコンテンツを補完し、一般には強化することができる。
【0019】
アプリケーション112が、1つまたは複数のデジタルコンポーネントスロットを含むリソース(またはアプリケーションコンテンツ)をロードするとき、アプリケーション112は、各スロットについてデジタルコンポーネントを要求することができる。いくつかの実装形態では、デジタルコンポーネントスロットは、アプリケーション112によって処理されるとクライアントデバイス110のユーザに表示するためのデジタルコンポーネントをアプリケーション112に要求させる、タグまたはコード、例えば1つまたは複数のスクリプトを含むことができる。下で説明するように、アプリケーション112は、コンテンツ管理システム150および/またはクライアントデバイス110のコンテンツ選択モジュール114にデジタルコンポーネントを要求することができる。
【0020】
クライアントデバイス110は、コンテンツ選択モジュール114およびトラステッドハードウェアモジュール116を含む。コンテンツ選択モジュール114は、クライアントデバイス110によって表示するための、例えばクライアントデバイス110上で実行されているアプリケーション112によって表示するためのコンテンツ、例えばデジタルコンポーネントを選択するように構成されている。デジタルコンポーネントを選択するために、コンテンツ選択モジュール114は、トラステッドハードウェアモジュール116内で実行されている暗号解析アプリケーション118とインタラクションすることができる。いくつかの実装形態では、コンテンツ選択モジュール114は、アプリケーション112の一部、例えばウェブブラウザまたはネイティブアプリケーションのアプリケーションモジュールである。
【0021】
トラステッドハードウェアモジュール116は、暗号機能を実施し、かつ/または暗号技術を使用してセキュアにされた環境内でアプリケーションおよび他の機能を実行する、マイクロコントローラやプロセッサなどのセキュアなハードウェアコンピューティングデバイスである。トラステッドハードウェアモジュール116は、クライアントデバイス110上またはその他の場合はクライアントデバイス110の部分上に設置することのできる、集積回路(IC)、プラグインカード、または別のハードウェアコンポーネントの形態をとることができる。例示的なトラステッドハードウェアモジュールには、トラステッドプラットフォームモジュール(TPM)およびハードウェアセキュリティモジュール(HSM)が含まれる。トラステッドハードウェアモジュール116は、典型的には、耐タンパー性であり、トラステッドハードウェアモジュール116内で実行されるアプリケーションへのアクセスを制限するプロトコルを含む。
【0022】
トラステッドハードウェアモジュール116は、暗号解析アプリケーション118、ユーザ属性データストア120、およびコンテンツデータストア122を含む。ユーザ属性データストア120は、ユーザ属性データストア内に格納されたユーザ属性への不正アクセスを防止するために、トラステッドハードウェアモジュール116内に例えば暗号化された形態で格納される。コンテンツデータストア122も、デジタルコンポーネントおよびデジタルコンポーネントのための配信パラメータの所望のデータセキュリティレベルに応じて、トラステッドハードウェアモジュール116内またはクライアントデバイス110の一般的なデータ記憶装置内に格納されることが可能である。
【0023】
いくつかの実装形態では、クライアントデバイス110のオペレーティングシステムが、トラステッドハードウェアモジュール116へのアクセスを制御する。例えば、オペレーティングシステムは、コンテンツ選択モジュール114以外のいかなるシステムまたはコンポーネントからの暗号解析アプリケーション118へのアクセスもブロックすることができる。
【0024】
データベース、テーブル、または他の適切なデータ構造の形態をとることのできるユーザ属性データストア120は、クライアントデバイス110のユーザの属性を識別するデータを含む。ユーザ属性は、クライアントデバイス110のユーザについて、個人を識別可能な情報、デモグラフィック情報(例えば年齢、性別、所得範囲など)、およびクライアントデバイス110のロケーションを示すロケーション情報を含むことができる。いくつかの実装形態では、ユーザ属性は、ユーザの活動に関係する情報、例えばユーザが訪れたウェブサイトを識別する情報、そのウェブサイトのトピック、そのウェブサイトから取得されたキーワード、および/またはそのウェブサイトにおけるユーザの特定のユーザインタラクションを含むことができる。ユーザ属性データストア120内に格納されるユーザ属性は、デジタルコンポーネントの対象である特定の製品/サービスのユースケースなど、定められた特定の目的と整合する特徴の識別を可能にする属性を含むことができる。
【0025】
本文献全体を通した説明にさらに付け加えると、ユーザには、本明細書において説明するシステム、プログラム、または特徴がユーザ情報(例えばユーザのソーシャルネットワーク、社会的行為もしくは社会的活動、職業、ユーザの嗜好、またはユーザの現在のロケーションについての情報)の収集を可能にすることができるかどうか、またいつそれができるかと、ユーザにサーバからコンテンツまたは通信が送られるかどうかの両方に関して、ユーザが選択を行うことを可能にする制御手段(例えばユーザがそれを用いてインタラクションすることのできるユーザインターフェース要素)が与えられてよい。加えて、ある特定のデータが、それが格納または使用される前に、個人を識別可能な情報が取り除かれるように1つまたは複数の方途で取り扱われてよい。例えば、ユーザの識別情報が、そのユーザにとって個人を識別可能な情報を特定することができないように取り扱われてよく、またはロケーション情報が取得される場合、ユーザの具体的なロケーションを特定することができないように、ユーザの地理的ロケーションが(市レベル、郵便番号レベル、もしくは州レベルなどに)一般化されてよい。したがって、ユーザは、ユーザについてどんな情報が収集されるか、その情報がどのように使用されるか、またどんな情報がユーザに提供されるかに対して、制御することができてよい。
【0026】
データベース、テーブル、または他の適切なデータ構造の形態をとることのできるコンテンツデータストア122は、デジタルコンポーネントに関係するデータを含む。デジタルコンポーネントのためのデータとしては、例えば、デジタルコンポーネント自体(例えばデジタルコンポーネントを含むデータファイル)、デジタルコンポーネントがそこで取得されることの可能なネットワークロケーションを示すリソースロケータ、例えばユニバーサルリソースロケータ(URL)もしくはユニフォームリソースアイデンティファイア(URI)、デジタルコンポーネントを識別するデータ、および/またはデジタルコンポーネントのための配信パラメータがあり得る。デジタルコンポーネントのための配信パラメータは、デジタルコンポーネントに関連する、例えばデジタルコンポーネントが提示されるべきコンテキストおよび環境ならびに/またはデジタルコンポーネントが提示されるべき対象のユーザの属性を示すためのものである、キーワードおよび/または他の値、例えばターゲットキーワード)を含むことができる。すなわち、デジタルコンポーネントのための配信パラメータは、デジタルコンポーネントが表示されるべき対象のユーザおよびコンテキストのターゲットプロファイルを定義することができる。例えば、フットボールに関係するデジタルコンポーネントのための配信パラメータは、性別:男性、年齢:18~35、ロケーション:米国、関心:スポーツ、フットボール、電子リソースのトピック(またはURL):フットボールまたはスポーツ、を含むことができる。この例では、このデジタルコンポーネントは、これらの配信パラメータと一致する属性を有するユーザに表示されるのに適格であるかまたは表示される可能性がより高い。
【0027】
デジタルコンポーネントのためのデータは、デジタルコンポーネントを発行したデジタルコンポーネントパブリッシャが電子リソースパブリッシャに、電子リソースパブリッシャがその電子リソースのうちの1つの電子リソース上にデジタルコンポーネントを表示する場合に進んで提供する量を含むこともできる。この量は、パブリッシャ量と呼ぶことができる。いくつかの実装形態では、配信パラメータは、デジタルコンポーネントの配信パラメータとユーザのユーザ属性との間の一致の程度にそれぞれが対応するさまざまな値を含むことができる。
【0028】
コンテンツ選択モジュール114は、電子リソースのデジタルコンポーネントスロットによって開始された要求に応答して、コンテンツ管理システム150にデジタルコンポーネントのためのデータを要求することができる。いくつかの実装形態では、コンテンツ選択モジュール114は、コンテンツ管理システム150にデジタルコンポーネントのためのデータを定期的に要求し、そのデータをコンテンツデータストア122内に格納することができる。例えば、コンテンツ選択モジュール114は、ユーザのユーザ属性と一致しないかまたはユーザのユーザ属性との(例えば指定のしきい値よりも低い)低レベルの一致を有するデジタルコンポーネントを置き換えることができる。この例では、コンテンツ選択モジュール114は、最も低い一致の程度を有する(もしくは一致しない)指定数のデジタルコンポーネント、またはしきい値未満の一致の程度を有する(もしくは一致しない)各デジタルコンポーネントを定期的に選択し、選択されたデジタルコンポーネントのためのデータをコンテンツデータストア122から取り除くことができる。コンテンツ選択モジュール114は、取り除かれたデータと置き換えるための追加のデジタルコンポーネントのためのデータを要求することができる。いくつかの実装形態では、コンテンツ選択モジュール114は、コンテンツ管理システム150に、取り除かれたデジタルコンポーネントを識別するデータを提供することはできない。このようにして、コンテンツ管理システム150は、ユーザの属性と一致しないデジタルコンポーネントに基づいてユーザの属性を推論することができなくなる。
【0029】
いくつかの実装形態では、パーティが配信パラメータとユーザの属性との間の一致の程度に基づいてユーザの属性を識別し得る可能性を減らすために、配信パラメータの数量がしきい値数量パラメータを満たすかまたはそれを超過しなければならない。例えば、しきい値数量は、25、50、100、数千単位、または別の適切な数量とすることができる。ユーザ属性の数量は、同一の規模または類似の規模とすることができる。
【0030】
ステージA~Gは、デジタルコンポーネントを選択し表示するための例示的なデータフローを示す。ステージAにおいて、アプリケーション112(またはコンテンツ選択モジュール114)が、1つまたは複数のデジタルコンポーネントを求める要求161を、コンテンツ管理システム150に送る。例えば、要求161は、要求されたデジタルコンポーネントの数量を示すことができる。要求161が、クライアントデバイス110によって表示されるかまたは表示されることになる電子リソースのためのデジタルコンポーネントを要求するために送られている場合、この数量は、電子リソースのデジタルコンポーネントスロットの数量に基づいてよい。要求161が、コンテンツデータストア122内にそのデータが以前に格納されていたデジタルコンポーネントを置き換えるためのものである場合、この数量は、コンテンツデータストア122から取り除かれた数量と等しいかまたはそれに基づいてよい。クライアントデバイス110は、要求を送るために、ヘッダおよびペイロードデータを含むパケット化されたデータ要求を生成することができる。
【0031】
ステージBにおいて、コンテンツ管理システム150が、デジタルコンテンツデータ記憶ユニット152から1つまたは複数のデジタルコンポーネントを選択し、各デジタルコンポーネントのためのデータを含むデータ要素162を提供する。この例では、データ要素162は、数「N」個のデジタルコンポーネント、および各デジタルコンポーネントのための配信パラメータを含む。データ要素162は、各デジタルコンポーネントについて、デジタルコンポーネントのプロバイダが電子リソースのパブリッシャに、デジタルコンポーネントを表示するために進んで提供するパブリッシャ量を含むこともできる。
【0032】
いくつかの実装形態では、コンテンツ管理システム150は、クライアントデバイス110にデータ要素162を提供する前に、各デジタルコンポーネントのためのデータを暗号化する。いくつかの実装形態では、コンテンツ管理システム150は、各デジタルコンポーネントのためのデータを、暗号解析アプリケーション118によって用いられるゼロ知識証明プロトコルを使用して暗号化することができる。
【0033】
ステージCにおいて、アプリケーション112が、データ要素162を受信し、対応するデータ要素163をコンテンツ選択モジュール114に提供する。他の実装形態では、例えばコンテンツ選択モジュール114が要求161を送るとき、アプリケーション112ではなくコンテンツ選択モジュール114がデータ要素162を受信することができる。
【0034】
ステージDにおいて、コンテンツ選択モジュール114が、暗号解析アプリケーション118とインタラクションして、ウェブブラウザアプリケーションによって表示されるかもしくは表示されることになる電子リソースとともに、またはネイティブアプリケーションのコンテンツとともに表示するための、デジタルコンポーネントを選択する。コンテンツ選択モジュール114は、デジタルコンポーネントをそこから選択するための候補デジタルコンポーネントのセットを識別することができる。現在のデジタルコンポーネント提示機会について要求161がコンテンツ管理システム150に送られるとき、候補デジタルコンポーネントは、データ要素162によって参照される各デジタルコンポーネントを含むことができる。デジタルコンポーネントのためのデータがクライアントデバイス110上に格納されるとき、候補デジタルコンポーネントは、コンテンツ選択モジュール114内にそのデータが格納されるデジタルコンポーネントを含むことができる。
【0035】
各候補デジタルコンポーネントについて、コンテンツ選択モジュール114は、暗号解析アプリケーション118に、候補デジタルコンポーネントのための選択データを提供する。この選択データは、候補デジタルコンポーネントのための配信パラメータを含むことができる。この選択データは、選択されたデジタルコンポーネントが表示されることになる環境のコンテキストに関係するコンテキストデータを含むこともできる。例えば、コンテキストデータは、デジタルコンポーネントがそれとともに表示されることになる電子リソース(例えばウェブページ)またはネイティブアプリケーションのコンテンツに関係するデータ、電子リソースまたはネイティブアプリケーションのデジタルコンポーネントスロットの数、デジタルコンポーネントスロットのタイプ(例えば画像またはビデオ)、電子リソースまたはネイティブアプリケーション内でのデジタルコンポーネントスロットの提示ロケーション(例えば上部、左側、右側、下部、アバブザフォールド(above the fold)、ビロウザフォールド(below the fold)など)、時刻、曜日、日付、クライアントデバイス110の地理的ロケーションなどを含むことができる。電子リソースまたはネイティブアプリケーションのコンテンツに関係するデータは、リソース/コンテンツのトピック、タイトル、リソース/コンテンツから抽出されたキーワード、リソースのリソースロケータ(例えばURL)などを含むことができる。
【0036】
コンテンツ選択モジュール114は暗号解析アプリケーション118に、各候補デジタルコンポーネントについて、ゼロ知識証明プロトコルを使用してクエリをサブミットすることができる。クエリは、候補デジタルコンポーネントのための選択データを含むことができる。さまざまなゼロ知識証明プロトコルを使用することができる。ゼロ知識証明が有効となるためには、ゼロ知識証明は、完全性(主張が真である場合、検証者はこの事実を証明者によって納得させられる)、健全性(主張が偽である場合、だましている証明者は、わずかな確率を例外として、それが真であると検証者を納得させることができない)、およびゼロ知識性(命題が真である場合、検証者は、命題が真であるという事実以外の何も学習しない)の3つの性質を満足させなければならない。
【0037】
いくつかの実装形態では、コンテンツ選択モジュール114および暗号解析アプリケーション118は、ゼロ知識証明プロトコルとして、ring learning with errors(RLWE)を使用する。RLWEは、有限体からの係数を用いた多項式の算術に基づく量子ロバスト暗号技法である。
【0038】
図1の例では、コンテンツ選択モジュール114は検証者であり、暗号解析アプリケーション118は証明者である。ゼロ知識証明を使用すると、コンテンツ選択モジュール114は、デジタルコンポーネントの配信パラメータがユーザのユーザ属性と一致するかどうか、または一致の程度を除き、何も学習することができない。
【0039】
コンテンツ選択モジュール114は、候補デジタルコンポーネントのための選択データがまだ暗号化されていない場合、それを暗号化し、暗号化された選択データを含むクエリ164を暗号解析アプリケーション118に提供する。暗号解析アプリケーション118は、候補デジタルコンポーネントのための暗号化された選択データを、ユーザ属性データストア120内に格納された、暗号化されたユーザ属性と比較することができる。ユーザ属性も、候補デジタルコンポーネントのための選択データと同じゼロ知識証明プロトコルを使用して暗号化されることが可能である。
【0040】
暗号解析アプリケーション118は、比較に基づいて、デジタルコンポーネントのための選択データがユーザのユーザ属性と一致しているかどうかを判定することができる。いくつかの実装形態では、暗号解析アプリケーション118は、デジタルコンポーネントのための選択データがユーザのユーザ属性と一致しているかどうかを示す暗号化された値を出力することができる。例えば、選択データの全てのデータアイテムが、対応するユーザ属性と一致するか、または少なくとも指定のしきい値のもしくは指定のパーセンテージの配信パラメータがその対応するユーザ属性と一致する場合、出力値は「真」とすることができ、そうでない場合、「偽」とすることができる。特定の例では、候補デジタルコンポーネントについて、選択データの少なくとも75%のデータアイテムがそれらの対応するユーザ属性と一致するとき、出力値は「真」とすることができる。
【0041】
いくつかの実装形態では、暗号解析アプリケーション118は、候補デジタルコンポーネントのための選択データとユーザ属性との間の一致の程度を決定することができる。例えば、一致の程度は、選択データのデータアイテムがそれらの対応するユーザ属性と一致するパーセンテージに基づいてよく、例えばそのパーセンテージに等しいかまたは正比例してよい。特定の例では、候補デジタルコンポーネントについて指定された性別および地理的ロケーションが、ユーザの性別および地理的ロケーションと一致するが、電子リソースのトピックがどんな関心トピックとも一致しない場合、一致の程度は2/3または66.7%とすることができる。
【0042】
いくつかの実装形態では、ユーザ属性は、例えばデジタルコンポーネント選択におけるそれらの重要性に基づいて、加重されることが可能である。この例では、暗号解析アプリケーション118が、選択データのどのデータアイテムがその対応するユーザ属性と一致するかを決定し、一致するユーザ属性についての加重値の集約(例えば加重和または加重平均)に基づいて、集約スコアを決定することができる。一致の程度は、集約スコアとすることができる。
【0043】
ステージEにおいて、暗号解析アプリケーション118が、各候補デジタルコンポーネントについて、候補デジタルコンポーネントのための選択データがユーザのユーザ属性と一致するかどうかおよび/または選択データとユーザ属性との間の一致の程度を示す、暗号化された結果データ165を出力する。暗号解析アプリケーション118は、暗号化された結果データ165をコンテンツ選択モジュール114に提供する。
【0044】
ステージFにおいて、コンテンツ選択モジュール114が、暗号化された結果データ165を復号して平文の結果データを取得し、少なくとも各候補デジタルコンポーネントについての結果データに基づいて、候補デジタルコンポーネントからデジタルコンポーネントを選択する。例えば、候補デジタルコンポーネントについての結果データが、デジタルコンポーネントのための選択データがユーザのユーザ属性と一致するかどうかを示す場合、コンテンツ選択モジュール114は、候補デジタルコンポーネントから、その選択データがユーザのユーザ属性と一致するデジタルコンポーネントを選択することができる。いくつかの実装形態では、コンテンツ選択モジュール114は、デジタルコンポーネントのプロバイダが、選択されたデジタルコンポーネントがそれとともに表示されることになる電子リソースまたはネイティブアプリケーションのパブリッシャに進んで提供する対応する最も高いパブリッシャ量を有する、一致するデジタルコンポーネントを選択することができる。
【0045】
各候補デジタルコンポーネントについての結果データが、候補デジタルコンポーネントのための選択データとユーザのユーザ属性との間の一致の程度を示す場合、コンテンツ選択モジュール114は、一致の程度と、オプションでデジタルコンポーネントについてのパブリッシャ量とに基づいて、デジタルコンポーネントを選択することができる。上述したように、デジタルコンポーネントについてのパブリッシャ量は、一致の程度に基づいて異なることがあり、というのも、デジタルコンポーネントプロバイダは、デジタルコンポーネントのターゲットプロファイルと一致するユーザに、デジタルコンポーネントを表示するためにより多くのパブリッシャ量を進んで提供することがあるためである。
【0046】
一例では、コンテンツ選択モジュール114は、最も高い一致の程度または最も高いパブリッシャ量を有するデジタルコンポーネントを選択することができる。別の例では、コンテンツ選択モジュール114は、各デジタルコンポーネントについて、一致の程度をパブリッシャ量と(例えば2つの値を乗算することによって)組み合わせ、値の最も大きな積を有するデジタルコンポーネントを選択することができる。別の例では、コンテンツ選択モジュール114は、候補デジタルコンポーネントのセットから、指定のしきい値未満である一致の程度を有する各デジタルコンポーネントをフィルタリングすることができる。次いで、コンテンツ選択モジュール114は、残りのデジタルコンポーネントから、それらの対応するパブリッシャ量に基づいて、例えば最も大きなパブリッシャ量を有するデジタルコンポーネントを選択することによって、デジタルコンポーネントを選択することができる。しきい値は、所定の値とすることもでき、あるいは、特定のデジタルコンポーネントに対応する値とすることもできる。例えば、コンテンツ選択モジュール114は、一致の程度に基づいてデジタルコンポーネントをランク付けし、10番目に高いランキングの(または別の適切なランクの)デジタルコンポーネントの値にしきい値を設定することができ、それによって、コンテンツ選択モジュール114が上位10個の一致するデジタルコンポーネントから選択するようになる。
【0047】
いくつかの実装形態では、コンテンツ選択モジュール114は、デジタルコンポーネントを選択する際に追加のデータを使用することができる。例えば、コンテンツ選択モジュール114は、デジタルコンポーネントについての期待されるパフォーマンス評価基準、例えば期待されるユーザインタラクション率を使用することができる。
【0048】
コンテンツ選択モジュール114は、選択されたデジタルコンポーネントのためのデジタルコンポーネントデータ166をアプリケーション112に提供する。デジタルコンポーネントデータは、デジタルコンポーネント自体を含むこともでき、あるいはアプリケーション112がデジタルコンポーネントをダウンロードできるように、デジタルコンポーネントのURLを含むこともできる。ステージGにおいて、アプリケーション112が次いで、選択されたデジタルコンポーネントを表示する。
【0049】
図2は、デジタルコンポーネントを選択し表示する例示的なプロセス200のスイムレーン図を示す。プロセス200の動作は、例えば、
図1のアプリケーション112、コンテンツ選択モジュール114、暗号解析アプリケーション118、およびコンテンツ管理システム150によって実装されることが可能である。プロセス200の動作は、非一時的であってよい1つまたは複数のコンピュータ可読媒体上に格納された命令として実装されることも可能であり、この命令が1つまたは複数のデータ処理装置によって実行されると、1つまたは複数のデータ処理装置が、プロセス200の動作を実施することができる。
【0050】
アプリケーション112が、1つまたは複数のデジタルコンポーネントを求める要求を、コンテンツ管理システムに送る(202)。アプリケーション112は、アプリケーションによって表示されている電子リソースに基づいてこの要求を送ることができる。いくつかの実装形態では、コンテンツ選択モジュール114が、クライアントデバイス110に格納する、例えばクライアントデバイス110のローカルキャッシュ内に格納する、デジタルコンポーネントのためのデータを取得すべく、この要求を送る。
【0051】
コンテンツ管理システム150が、1つまたは複数のデジタルコンポーネントを選択する(204)。コンテンツ管理システム150が、デジタルコンポーネントのためのデータを含むデータ要素を、アプリケーション112に、またはコンテンツ選択モジュール114に送る(206)。上述したように、デジタルコンポーネントのためのデータは、配信パラメータと、デジタルコンポーネントのプロバイダがパブリッシャに、デジタルコンポーネントをそのパブリッシャの電子リソースまたはネイティブアプリケーションとともに表示するために進んで提供するパブリッシャ量とを含むことができる。いくつかの実装形態では、デジタルコンポーネントのためのデータが、デジタルコンポーネントのための選択データとユーザのユーザ属性との間の一致の程度に基づいて選択されることの可能な、さまざまなパブリッシャ量またはパブリッシャ量のセットを含む。各デジタルコンポーネントのためのデータは、暗号解析アプリケーション118によって用いられるゼロ知識証明プロトコルに従って暗号化されることが可能である。
【0052】
アプリケーション112が、コンテンツ選択モジュール114に、アプリケーション112によって表示するためのデジタルコンポーネントを選択せよとの要求を送る(208)。要求は、コンテンツ管理システム150から受信したデータ要素を含むことができる。
【0053】
コンテンツ選択モジュール114が、暗号解析アプリケーション118に、複数の候補デジタルコンポーネントのそれぞれについて一致解析が実施されることを求める要求を送る(210)。上述したように、クエリの形態をとることのできるこの要求は、候補デジタルコンポーネントのための暗号化された選択データを含む。デジタルコンポーネントのための配信パラメータおよびコンテキストデータを含むことのできるこの選択データは、暗号解析アプリケーション118によって使用されるゼロ知識証明プロトコルを使用して暗号化されることが可能である。
【0054】
暗号解析アプリケーション118が、選択データがユーザのユーザ属性と一致するかどうかを判定し、かつ/または選択データとユーザ属性との間の一致の程度を決定する(212)。暗号解析アプリケーション118は、ゼロ知識証明プロトコルを使用して、候補デジタルコンポーネントのための暗号化された選択データを、クライアントデバイス110のユーザ、例えばアプリケーション112のユーザの、暗号化されたユーザ属性と比較する。上述したように、暗号解析アプリケーション118は、トラステッドハードウェアモジュール116内で実行されることが可能であり、トラステッドハードウェアモジュール116内で暗号機能を実施することができる。
【0055】
暗号解析アプリケーション118が、コンテンツ選択モジュール114に、各候補デジタルコンポーネントについての一致標識を送る(214)。一致標識は、暗号解析アプリケーション118によって出力された、暗号化された結果とすることができる。一致標識は、候補デジタルコンポーネントのための選択データがユーザのユーザ属性と一致するかどうか、かつ/または候補デジタルコンポーネントのための選択データ間の一致の程度を示すことができる。
【0056】
コンテンツ選択モジュール114が、候補デジタルコンポーネントから、アプリケーション112によって表示するためのデジタルコンポーネントを選択する(216)。コンテンツ選択モジュール114は、各候補デジタルコンポーネントについての一致標識を復号し、少なくとも一部には一致標識に基づいて、デジタルコンポーネントを選択することができる。上述したように、コンテンツ選択モジュール114は、各候補デジタルコンポーネントがユーザのユーザ属性と一致するかどうか(例えば選択データがユーザ属性と一致するかどうか)、各候補デジタルコンポーネントについての一致の程度、各候補デジタルコンポーネントについてのパブリッシャ量、および/または他のデータに基づいて、デジタルコンポーネントを選択することができる。
【0057】
コンテンツ選択モジュール114が、アプリケーション112に、選択されたデジタルコンポーネントについてのデータを送る(218)。このデータは、デジタルコンポーネント自体、または選択されたデジタルコンポーネントを取得するためのリソースロケータを含むことができる。
【0058】
アプリケーション112が、選択されたデジタルコンポーネントを表示する(220)。アプリケーション112はデジタルコンポーネントを、電子リソースまたはネイティブアプリケーションのデジタルコンポーネントスロット内に表示することができる。
【0059】
アプリケーション112が、表示されたデジタルコンポーネントとのユーザインタラクションがないかどうかモニタする(222)。ユーザインタラクションが検出された場合、アプリケーション112は、ユーザインタラクションをコンテンツ管理システム150に報告することができる(224)。いくつかの実装形態では、アプリケーション112は、例えばコンテンツ選択モジュール114を介して暗号解析アプリケーション118とインタラクションして、ユーザインタラクションを示すデータを含む通知を暗号化することができる。次いで、アプリケーション112は、暗号化された通知を、コンテンツ管理システム150に送ることができる。同様に、アプリケーション112は、コンバージョンイベントがないかどうかモニタし、検出された任意のコンバージョンイベントについての暗号化された通知を送ることができる。
【0060】
いくつかの実装形態では、暗号解析アプリケーション118は、ゼロ知識証明プロトコルを使用して通知を暗号化する。いくつかの実装形態では、暗号解析アプリケーション118は、クライアントデバイスに基づく暗号化キーまたはシグネチャを使用して通知を暗号化する。しかし、デバイス固有のキーまたはシグネチャを使用すると、例えばデバイス識別子のように、他のエンティティがユーザを識別することが可能になるおそれがある。ゼロ知識証明を使用すると、確実にユーザの識別情報が観察から秘匿されるようになる。
【0061】
加えて、暗号解析アプリケーション118を使用して、ユーザインタラクションに関係する通知を暗号化すると、ユーザがイベントのシーケンスに関与していることが証明される。これは特別重要であり、というのも、それが、実際のユーザインタラクションの証明となることによって、クリック詐欺のような攻撃を防止する助けとなるためである。基本的には、ユーザインタラクションによって確認された課題が与えられる(スレッドまたは他の自動化されたプロセスを介してインタラクションすることはできないが、スクリーンをタッチすることなどの特権的な入力からのみインタラクションすることのできる保護されたOS機能)。
【0062】
図3は、デジタルコンポーネントを選択し表示する例示的なプロセス300の図である。プロセス300の動作は、例えば、クライアントデバイス、例えば
図1のクライアントデバイス110によって実装されることが可能である。プロセス300の動作は、非一時的であってよい1つまたは複数のコンピュータ可読媒体上に格納された命令として実装されることも可能であり、この命令が1つまたは複数のデータ処理装置によって実行されると、1つまたは複数のデータ処理装置が、プロセス300の動作を実施することができる。
【0063】
クライアントデバイスが、1つまたは複数の候補デジタルコンポーネントを識別するデータ要素を受信する(302)。データ要素は、各候補デジタルコンポーネントのためのデータを含むことができる。各候補デジタルコンポーネントのためのデータは、デジタルコンポーネント自体、候補デジタルコンポーネントを取得するためのリソースロケータ、各デジタルコンポーネントのための配信パラメータ、および候補デジタルコンポーネントのプロバイダが電子リソースのパブリッシャに、候補デジタルコンポーネントを表示するために進んで提供するパブリッシャ量を含むことができる。各デジタルコンポーネントのためのデータは、暗号解析アプリケーションによって使用されるゼロ知識証明プロトコルを使用して暗号化されることが可能である。
【0064】
各デジタルコンポーネントについて、クライアントデバイスが、暗号化された選択データを、暗号解析アプリケーションへの入力として提供する(304)。上述したように、暗号解析アプリケーションは、クライアントデバイスのトラステッドハードウェアモジュール内で実行されることが可能である。暗号化された選択データは、候補デジタルコンポーネントのための配信パラメータのセットを表すことができ、暗号解析アプリケーションによって使用されるゼロ知識証明プロトコルを使用して暗号化されたものとすることができる。上述したように、候補デジタルコンポーネントのための選択データは、選択されたデジタルコンポーネントが表示されることになる環境についてのコンテキストデータを含むこともできる。
【0065】
いくつかの実装形態では、クライアントデバイスが、複数のデジタルコンポーネントのための配信パラメータの集合を受信する。集合が一緒に暗号化されることも可能であり、あるいは各デジタルコンポーネントのための配信パラメータが、他の各デジタルコンポーネントとは別に暗号化されることも可能である。コンテンツ管理システムは、例えばユーザのクライアントデバイスによって要求されたウェブページなどのリソースに基づいて、集合内に含めるための複数のデジタルコンポーネントを選択することができる。クライアントデバイスは、クライアントデバイスにおいてユーザに表示するためのデジタルコンポーネントを選択する際に使用できるように、集合のための配信パラメータを暗号解析アプリケーションに提供する。
【0066】
暗号解析アプリケーションは、選択データとクライアントデバイスのユーザのユーザ属性との間の一致の程度を決定するように構成されている。ユーザ属性は、上述したように、トラステッドハードウェアモジュール内に格納されることが可能である。暗号解析アプリケーションは、選択データの各データアイテムをユーザの対応するユーザ属性と比較することによって、選択データとユーザ属性との間の一致の程度を決定することができる。
【0067】
各候補デジタルコンポーネントについて、クライアントデバイス(例えばクライアントデバイスのコンテンツ選択モジュール)が、暗号解析アプリケーションの出力として、選択データとユーザのユーザ属性との間の一致の程度を示す暗号化された結果を受信する(306)。暗号化された結果は、暗号解析アプリケーションのゼロ知識証明プロトコルを使用して暗号化されたものとすることができる。
【0068】
クライアントデバイスが、各候補デジタルコンポーネントのための暗号化された結果を復号する(308)。クライアントデバイスのコンテンツ選択モジュールが、暗号化された結果を、暗号解析アプリケーションのゼロ知識証明プロトコルを使用して復号することができる。
【0069】
クライアントデバイスが、各候補デジタルコンポーネントについての一致の程度に基づいて、候補デジタルコンポーネントから所与のデジタルコンポーネントを選択する(310)。上述したように、クライアントデバイスのコンテンツ選択モジュールが、各候補デジタルコンポーネントについての一致の程度、および各候補デジタルコンポーネントについてのパブリッシャ量に基づいて、デジタルコンポーネントを選択することができる。
【0070】
クライアントデバイスが、所与のデジタルコンポーネントを表示する(312)。例えば、クライアントデバイス上で実行されているアプリケーションが、所与のデジタルコンポーネントを、クライアントデバイスのディスプレイによって表示されている電子リソース、例えばウェブページのデジタルコンポーネントスロット内に表示することができる。
【0071】
図4は、上述した動作を実施するために使用することのできる例示的なコンピュータシステム400のブロック図である。システム400は、プロセッサ410、メモリ420、記憶デバイス430、および入力/出力デバイス440を含む。コンポーネント410、420、430、および440はそれぞれ、例えば、システムバス450を使用して相互接続することができる。プロセッサ410は、システム400内で実行するための命令を処理することが可能である。いくつかの実装形態では、プロセッサ410はシングルスレッドプロセッサである。別の実装形態では、プロセッサ410はマルチスレッドプロセッサである。プロセッサ410は、メモリ420内または記憶デバイス430上に格納された命令を処理することが可能である。
【0072】
メモリ420は、システム400内の情報を格納する。一実装形態では、メモリ420はコンピュータ可読媒体である。いくつかの実装形態では、メモリ420は揮発性メモリユニットである。別の実装形態では、メモリ420は不揮発性メモリユニットである。
【0073】
記憶デバイス430は、システム400のマスストレージを提供することが可能である。いくつかの実装形態では、記憶デバイス430はコンピュータ可読媒体である。異なるさまざまな実装形態では、記憶デバイス430は、例えば、ハードディスクデバイス、光ディスクデバイス、ネットワーク経由で複数のコンピューティングデバイスによって共有される記憶デバイス(例えばクラウド記憶デバイス)、または他の何らかの大容量記憶デバイスを含むことができる。
【0074】
入力/出力デバイス440は、システム400の入力/出力動作を可能にする。いくつかの実装形態では、入力/出力デバイス440は、ネットワークインターフェースデバイス、例えばイーサネットカード、シリアル通信デバイス、例えばRS-232ポート、および/またはワイヤレスインターフェースデバイス、例えば802.11カードのうちの1つまたは複数を含むことができる。別の実装形態では、入力/出力デバイスは、入力データを受信し、出力データを外部デバイス460、例えばキーボードデバイス、プリンタデバイス、およびディスプレイデバイスに送るように構成された、ドライバデバイスを含むことができる。しかし、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビジョンクライアントデバイスなど、他の実装形態を使用することもできる。
【0075】
例示的な処理システムについて、
図4において説明してきたが、本明細書において説明した本主題および機能的動作の実装形態は、他のタイプのデジタル電子回路として、またはコンピュータソフトウェア、コンピュータファームウェア、もしくは本明細書において開示した構造およびそれらの構造的等価物を含むコンピュータハードウェアとして、またはそれらのうちの1つもしくは複数のものの組合せとして、実装することができる。
【0076】
本明細書において説明した本主題および動作の実施形態は、デジタル電子回路として、またはコンピュータソフトウェア、コンピュータファームウェア、もしくは本明細書において開示した構造およびそれらの構造的等価物を含むコンピュータハードウェアとして、またはそれらのうちの1つもしくは複数のものの組合せとして、実装することができる。本明細書において説明した本主題の実施形態は、データ処理装置によって実行するために、またはデータ処理装置の動作を制御するために、複数のコンピュータ記憶媒体(または1つのコンピュータ記憶媒体)上に符号化された、1つまたは複数のコンピュータプログラム、すなわちコンピュータプログラム命令の1つまたは複数のモジュールとして、実装することができる。その代わりにまたはそれに加えて、プログラム命令は、情報をデータ処理装置によって実行する目的で適切なレシーバ装置に送信できるように符号化するために生成される、人工的に生成された伝搬信号、例えばマシンにより生成された電気信号、光信号、または電磁信号上に、符号化することもできる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムアクセスもしくはシリアルアクセスのメモリアレイもしくはメモリデバイス、またはそれらのうちの1つもしくは複数のものの組合せとすることもでき、あるいはその中に含めることもできる。さらに、コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号内に符号化されたコンピュータプログラム命令の供給元または供給先とすることができる。コンピュータ記憶媒体はまた、1つまたは複数の別々の物理的コンポーネントまたは媒体(例えば複数のCD、ディスク、または他の記憶デバイス)とすることもでき、あるいはその中に含めることもできる。
【0077】
本明細書において説明した動作は、1つまたは複数のコンピュータ可読記憶デバイス上に格納されたかまたは他の供給元から受信したデータに対してデータ処理装置によって実施される動作として、実装することができる。
【0078】
「データ処理装置」という用語は、例としてプログラマブルプロセッサ、コンピュータ、システムオンチップ、または前述のものの複数のもの、もしくは前述のものの組合せを含めて、データを処理するためのあらゆる種類の装置、デバイス、およびマシンを包含する。装置は、専用論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置は、ハードウェアに加えて、当該のコンピュータプログラムのための実行環境を作り出すコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォーム実行時環境、仮想マシン、またはそれらのうちの1つもしくは複数のものの組合せを構成するコードを含むこともできる。装置および実行環境は、ウェブサービスインフラストラクチャ、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなど、異なるさまざまなコンピューティングモデルインフラストラクチャを実現することができる。
【0079】
(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)コンピュータプログラムは、コンパイル型言語またはインタープリタ型言語、宣言型言語または手続き型言語を含む、任意の形態のプログラミング言語で記述することができ、またそれは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他のユニットとして、を含む、任意の形態でデプロイすることができる。コンピュータプログラムは、その必要はないが、ファイルシステム内のファイルに対応してよい。プログラムは、他のプログラムもしくはデータを保持するファイルの一部分(例えばマークアップ言語ドキュメント内に格納された1つもしくは複数のスクリプト)内に、当該のプログラム専用の単一のファイル内に、または複数の連係されたファイル(例えばコードの1つもしくは複数のモジュール、サブプログラム、もしくは一部分を格納したファイル)内に、格納することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するかもしくは複数のサイトにわたって分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように、デプロイすることができる。
【0080】
本明細書において説明したプロセスおよび論理フローは、入力データに作用し出力を生成することによってアクションを実施するための1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって、実施されることが可能である。プロセスおよび論理フローは、専用論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実施されることも可能であり、装置を、専用論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)として実装することもできる。
【0081】
コンピュータプログラムの実行に適したプロセッサとしては、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方がある。一般に、プロセッサは、命令およびデータを、読出し専用メモリまたはランダムアクセスメモリまたはその両方から受領する。コンピュータの不可欠な要素が、命令に従ってアクションを実施するためのプロセッサ、ならびに命令およびデータを格納するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを格納するための1つまたは複数のマスストレージデバイス、例えば磁気ディスク、光磁気ディスク、または光ディスクを含むか、またはそこからデータを受領し、もしくはそこにデータを転送し、もしくはその両方を行うように、動作可能に結合される。しかし、コンピュータはそのようなデバイスを有している必要はない。さらに、コンピュータは別のデバイスに、例えば、ほんの数例を挙げると、モバイル電話、パーソナルデジタルアシスタント(PDA)、モバイルオーディオプレーヤもしくはモバイルビデオプレーヤ、ゲーム機、グローバルポジショニングシステム(GPS)レシーバ、またはポータブル記憶デバイス(例えばユニバーサルシリアルバス(USB)フラッシュドライブ)に、埋め込むことができる。コンピュータプログラム命令およびデータを格納するのに適したデバイスとしては、例として、半導体メモリデバイス、例えばEPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、例えば内蔵ハードディスクまたはリムーバブルディスク;光磁気ディスク;ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性のメモリ、媒体、およびメモリデバイスがある。プロセッサおよびメモリは、専用論理回路によって補完されることが可能であり、または専用論理回路に組み込むことができる。
【0082】
ユーザとのインタラクションを可能にするために、本明細書において説明した本主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えばCRT(陰極線管)モニタまたはLCD(液晶ディスプレイ)モニタと、ユーザがそれによってコンピュータに入力することのできるキーボードおよびポインティングデバイス、例えばマウスまたはトラックボールとを有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとのインタラクションを可能にすることもでき、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバックとすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受領することができる。加えて、コンピュータはユーザと、そのユーザによって使用されているデバイスにドキュメントを送り、そこからドキュメントを受信することによって、例えば、ユーザのクライアントデバイス上のウェブブラウザに、そのウェブブラウザから受信した要求に応答してウェブページを送ることによって、インタラクションすることもできる。
【0083】
本明細書において説明した本主題の実施形態は、例えばデータサーバとしてのバックエンドコンポーネントを含むか、またはミドルウェアコンポーネント、例えばアプリケーションサーバを含むか、またはフロントエンドコンポーネント、例えば本明細書において説明した本主題の一実装形態とユーザがそれを通じてインタラクションすることのできるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステム内に、実装することができる。システムのこれらのコンポーネントは、任意の形態または媒体のデジタルデータ通信、例えば通信ネットワークによって、相互接続されることが可能である。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、インターネットワーク(例えばインターネット)、ならびにピアツーピアネットワーク(例えばアドホックピアツーピアネットワーク)がある。
【0084】
コンピューティングシステムは、クライアントとサーバを含むことができる。クライアントとサーバは一般に、相互に遠隔にあり、典型的には通信ネットワークを通じてインタラクションする。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、相互にクライアント-サーバ関係を有する、コンピュータプログラムによって生じる。いくつかの実施形態では、サーバが、データ(例えばHTMLページ)を、(例えばクライアントデバイスとインタラクションしているユーザにデータを表示し、そのユーザからユーザ入力を受領する目的で)クライアントデバイスに送信する。クライアントデバイスにおいて生成されたデータ(例えばユーザインタラクションの結果)は、クライアントデバイスからサーバにおいて受信されることが可能である。
【0085】
本明細書は、実装形態の多くの具体的詳細を含んでいるが、これらは、任意の発明の範囲または特許請求され得るものの範囲に対する限定と解釈するのではなく、特定の発明の特定の実施形態に固有の特徴についての説明と解釈されたい。本明細書において別々の実施形態の文脈の中で説明される、ある特定の特徴は、単一の実施形態において組み合わせて実装することもできる。反対に、単一の実施形態の文脈の中で説明されるさまざまな特徴は、複数の実施形態において別々に、または任意の適切な部分組合せで、実装することもできる。さらに、特徴については上で、ある特定の組合せで作用するものと説明されていることがあり、さらにはそのようなものとして最初に特許請求されていることすらあるが、特許請求された組合せからの1つまたは複数の特徴を、場合によっては、その組合せから削除することができ、特許請求された組合せが、部分組合せまたは部分組合せの変形を対象としてよい。
【0086】
同様に、動作は図面中に特定の順序で描かれているが、これは、望ましい結果を達成するために、そのような動作が図示の特定の順序で、もしくは順番に実施されること、または図示の全ての動作が実施されることを必要とするものと理解すべきではない。ある特定の状況下では、マルチタスキングおよび並列処理が有利となることがある。さらに、上述した実施形態におけるさまざまなシステムコンポーネントの分離は、全ての実施形態においてそのような分離を必要とするものと理解すべきではなく、ここで説明したプログラムコンポーネントとシステムは一般に、単一のソフトウェア製品内に一緒に統合するか、または複数のソフトウェア製品にパッケージングできることを理解されたい。
【0087】
以上、本主題の特定の実施形態について説明してきた。他の実施形態が、以下の特許請求の範囲に記載の範囲内に含まれる。場合によっては、特許請求の範囲に記載のアクションを、異なる順序で実施し、それでもなお、望ましい結果を達成することができる。加えて、添付の図中に描かれたプロセスは、望ましい結果を達成するために、図示の特定の順序、または順番を必ずしも必要とするとは限らない。ある特定の実装形態では、マルチタスキングおよび並列処理が有利となることがある。
【符号の説明】
【0088】
100 環境
105 データ通信ネットワーク
110 クライアントデバイス
112 アプリケーション
114 コンテンツ選択モジュール
116 トラステッドハードウェアモジュール
118 暗号解析アプリケーション
120 ユーザ属性データストア
122 コンテンツデータストア
140 コンテンツパブリッシャ
142 ウェブサイト
145 電子リソース
150 コンテンツ管理システム
152 デジタルコンテンツデータ記憶ユニット
161 要求
162 データ要素
163 データ要素
164 クエリ
165 暗号化された結果データ
166 デジタルコンポーネントデータ
200 プロセス
300 プロセス
400 コンピュータシステム
410 プロセッサ、コンポーネント
420 メモリ、コンポーネント
430 記憶デバイス、コンポーネント
440 入力/出力デバイス、コンポーネント
450 システムバス
460 外部デバイス
【手続補正書】
【提出日】2023-01-17
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
候補デジタルコンポーネントのセットを識別するデータ要素、および各候補デジタルコンポーネントについて、前記候補デジタルコンポーネントのための配信パラメータのセットを受信するステップと、
各候補デジタルコンポーネントについて、
前記候補デジタルコンポーネントのための暗号化された選択データを、クライアントデバイスのトラステッドハードウェアモジュール内で実行されている暗号解析アプリケーションへの入力として提供するステップであって、前記暗号化された選択データが、前記候補デジタルコンポーネントのための配信パラメータの前記セットを表し、ゼロ知識証明プロトコルを使用して暗号化されたものであり、前記暗号解析アプリケーションが、前記選択データと前記クライアントデバイスのユーザのユーザ属性との間の一致の程度を決定するように構成されている、ステップと、
前記暗号解析アプリケーションの出力として、前記選択データとユーザの前記ユーザ属性との間の一致の前記程度を示す暗号化された結果を受信するステップであって、前記暗号化された結果が、前記ゼロ知識証明プロトコルを使用して暗号化されたものである、ステップと、
各候補デジタルコンポーネントのための前記暗号化された結果を復号するステップと、
各候補デジタルコンポーネントについての一致の前記程度に基づいて、前記候補デジタルコンポーネントから所与のデジタルコンポーネントを選択するステップと、
前記所与のデジタルコンポーネントを表示するステップと
を含むコンピュータ実装方法。
【請求項2】
前記暗号解析
アプリケーションが、前記選択データの各データアイテムを前記ユーザの対応するユーザ属性と比較することによって、前記選択データとユーザ属性との間の一致の前記程度を決定する、請求項1に記載のコンピュータ実装方法。
【請求項3】
各候補デジタルコンポーネントのための前記選択データが、選択されたデジタルコンポーネントが表示されることになる環境についてのコンテキストデータを含む、請求項1から2のいずれか一項に記載のコンピュータ実装方法。
【請求項4】
前記ユーザ属性
を示すデータが、前記トラステッドハードウェアモジュール内に格納され、前記ユーザ属性
を示すデータが、前記ゼロ知識証明プロトコルを使用して暗号化される、請求項1から3のいずれか一項に記載のコンピュータ実装方法。
【請求項5】
各候補デジタルコンポーネントのための配信パラメータの前記セットが、前記ゼロ知識証明プロトコルを使用して暗号化される、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
【請求項6】
前記ゼロ知識証明プロトコルが、ring learning with errorsプロトコルを含む、請求項1から5のいずれか一項に記載のコンピュータ実装方法。
【請求項7】
各候補デジタルコンポーネントについての一致の前記程度に基づいて、前記候補デジタルコンポーネントから前記所与のデジタルコンポーネントを選択するステップが、各候補デジタルコンポーネントについて、一致の前記程度とパブリッシャ量との組合せに基づいて、前記所与のデジタルコンポーネントを選択するステップを含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
1つまたは複数のプロセッサと、
1つまたは複数の記憶デバイスであって、命令を格納し、前記命令が、前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに請求項1から7のいずれか一項に記載の方法を実行させる、1つまたは複数の記憶デバイスと
を備える、システム。
【請求項9】
コンピュータ可読記憶媒体であって、命令を保持し、前記命令が、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに請求項1から7のいずれか一項に記載の方法を実行させる、コンピュータ可読記憶媒体。
【請求項10】
コンピュータプログラ
ムであって、命令を含み、前記命令が、コンピュータによって実行されると、前記コンピュータに請求項1から7のいずれか一項に記載の方法の前記ステップを実行させる、コンピュータプログラ
ム。
【国際調査報告】