JP7475492B2 - 機密情報を保護するためのマルチパーティ計算およびk-匿名性技法の使用 - Google Patents

機密情報を保護するためのマルチパーティ計算およびk-匿名性技法の使用 Download PDF

Info

Publication number
JP7475492B2
JP7475492B2 JP2022568895A JP2022568895A JP7475492B2 JP 7475492 B2 JP7475492 B2 JP 7475492B2 JP 2022568895 A JP2022568895 A JP 2022568895A JP 2022568895 A JP2022568895 A JP 2022568895A JP 7475492 B2 JP7475492 B2 JP 7475492B2
Authority
JP
Japan
Prior art keywords
identifier
computing system
digital component
request
user group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022568895A
Other languages
English (en)
Other versions
JP2023527709A (ja
Inventor
マーセル・エム・モティ・ユン
ガン・ワン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2023527709A publication Critical patent/JP2023527709A/ja
Application granted granted Critical
Publication of JP7475492B2 publication Critical patent/JP7475492B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0478Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

関連出願の相互参照
本出願は、2020年8月2日に出願されたイスラエル出願第276440号の優先権を主張する。前述の出願の開示は、本明細書によりその全体が参照により組み込まれている。
マルチパーティ計算は、各参加者が他の参加者のデータへのアクセスを有することがないように、複数の参加者に計算を分散する暗号論的技法である。k-匿名性技法は、グループの各メンバーについてのデータが匿名であることを確実にするのに使うことができる。データがk-匿名性プロパティを有するために、メンバーについてのデータは、グループのk-1人の他のメンバーについてのデータと区別することができない。
本明細書は、マルチパーティ計算(MPC)およびk-匿名性技法を使って複数のエンティティの機密情報を保護することに関する技術について記載する。
概して、本明細書に記載する主題の1つの発明的態様は、第1のマルチパーティ計算(MPC)コンピューティングシステムによって、およびクライアントデバイスから、暗号化されたユーザグループ識別子のセットを含むコンテンツ要求を受信するステップであって、各暗号化されたユーザグループ識別子は、第2のMPCコンピューティングシステムの第1の暗号化鍵を使って暗号化されている、ステップと、各暗号化されたユーザグループ識別子について、第2のMPCコンピューティングシステムへ要求を送信するステップであって、要求は、暗号化されたユーザグループ識別子を含む、ステップと、第2のMPCコンピューティングシステムによって実施されたk-匿名性プロセスを満足する各ユーザグループ識別子について、第2のMPCコンピューティングシステムから第1のMPCコンピューティングシステムによって、ユーザグループ識別子の平文値を受信するステップと、第1のMPCコンピューティングシステムによって、1つまたは複数のプラットフォームへ選択パラメータ要求を送信するステップであって、選択パラメータ要求は、ユーザグループ識別子の平文値を含む、ステップと、第1のMPCコンピューティングシステムによって、および第2のMPCコンピューティングシステムから、対応するデジタルコンポーネント用の創作要素およびデジタルコンポーネントについての選択パラメータ識別子を各々が含む選択パラメータ要素のセットを受信するステップと、第1のMPCコンピューティングシステムによって、選択パラメータ識別子に基づいて所与のデジタルコンポーネントを選択するステップと、第1のMPCコンピューティングシステムによって、およびクライアントデバイスへ、デジタルコンポーネント用の創作要素を送信するステップとを含む方法で具現化することができる。この態様の他の実装形態は、コンピュータ記憶デバイス上で符号化された方法の態様を実施するように構成された、対応する装置、システム、およびコンピュータプログラムを含む。
これらのおよび他の実装形態は各々、以下の特徴のうちの1つまたは複数を任意選択で含み得る。いくつかの態様では、コンテンツ要求は、デジタルコンポーネントが要求されているリソースについてのリソースロケータを含む。いくつかの態様は、第1のMPCコンピューティングシステムによって、リソースロケータおよびコンテンツ要求に対応するノンスに基づいて要求識別子を生成するステップと、第1のMPCコンピューティングシステムによって、要求識別子を暗号化するステップとを含み得る。要求は、暗号化された要求識別子を含み得る。
いくつかの態様では、k-匿名性プロセスを満足する各ユーザグループ識別子の平文値を受信するステップは、k-匿名性プロセスを満足する各ユーザグループ識別子についてのリターン要求を受信するステップを含み得る。各リターン要求は、ユーザグループ識別子と、第2のMPCコンピューティングシステムの第2の暗号化鍵を使って、暗号化された要求識別子を暗号化することによって、第2のMPCコンピューティングシステムによって生成された二重暗号化要求識別とを含み得る。各選択パラメータ要求は、二重暗号化要求識別子を含み得る。各選択パラメータ要素は、プラットフォームから、創作要素および選択パラメータ要素の選択パラメータ識別子とともに二重暗号化要求を受信した後、二重暗号化要求識別子を解読(decrypt)することによって、第2のMPCコンピューティングシステムによって生成された、暗号化された要求識別子を含むことができる。
いくつかの態様では、第2のMPCコンピューティングシステムは、1つまたは複数のプラットフォームの各々から、二重暗号化要求識別子、それぞれのデジタルコンポーネント用のそれぞれの創作要素、それぞれのデジタルコンポーネント用の選択パラメータ、およびそれぞれのデジタルコンポーネントを公開するデジタルコンポーネント提供者識別子を含む選択パラメータ応答を受信する。第2のMPCコンピューティングシステムは、各選択パラメータ応答について、選択パラメータが含まれる選択パラメータ値の範囲に基づいて、対応する選択パラメータ識別子を識別する。第2のMPCコンピューティングシステムは、選択パラメータ応答および選択パラメータ識別子に基づいて、選択パラメータ要素を生成する。
いくつかの態様では、コンテンツ要求は、各ユーザグループ識別子について、暗号化された複合メッセージを含む。暗号化された複合メッセージは、ユーザグループ識別子、コンテンツ要求を発動したクライアントデバイスのアプリケーション用のアプリケーション公開鍵、およびクライアントデバイスが信用できると判断したことに応答して、信用トークン発行者によって発行された署名付き引換えレコードを含む複合メッセージの暗号化されたバージョンを含み得る。
いくつかの態様では、コンテンツ要求はコンテキスト信号を含む。いくつかの態様は、コンテキスト信号がk-匿名性を満足すると判断することを含み得る。コンテキスト信号がk-匿名性を満足すると判断したことに応答して、第1のMPCコンピューティングシステムは、コンテキスト信号を暗号化する。第1のMPCコンピューティングシステムは、要求の中に、k-匿名性を満足する各コンテキスト信号を含める。
いくつかの態様は、各創作要素の中で、対応するデジタルコンポーネントについてのプロパティの第1のセットを識別するステップと、ルックアップテーブル中で、リソースの公開元によって排除される排除プロパティの第2のセットを識別するステップとを含み得る。第1のMPCコンピューティングシステムによって、選択パラメータに基づいて所与のデジタルコンポーネントを選択するステップは、各創作要素について、創作要素についてのプロパティの第1のセットの中の1つまたは複数のプロパティが、排除されたプロパティと一致するかどうかを判断するステップと、排除されたプロパティと一致する少なくとも1つのプロパティを有する各創作要素を排除するステップとを含み得る。
いくつかの態様では、第1のMPCコンピューティングシステムによって、選択パラメータ識別子に基づいて所与のデジタルコンポーネントを選択するステップは、各選択パラメータ要素について、第1のルックアップテーブル中で、リソースについてのリソースロケータ、および創作要素の対応するデジタルコンポーネントを公開するデジタルコンポーネント提供者に対するデジタルコンポーネント識別子に基づいて、選択パラメータ要素の創作要素用の共有コードを識別するステップと、第2のルックアップテーブル中で、共有コードおよび選択パラメータ要素の選択パラメータ識別子に基づいて公開元リターン識別子を識別するステップと、所与のデジタルコンポーネントとして、最も高い公開元リターン識別子を有する所与の選択パラメータ要素のデジタルコンポーネントを選択するステップとを含み得る。
いくつかの態様では、第1のMPCコンピューティングシステムによって、およびクライアントデバイスへ、デジタルコンポーネント用の創作要素を送信するステップは、創作要素と、所与の選択パラメータ要素についての公開元リターン識別子と、所与のデジタルコンポーネントについてのデジタルコンポーネント提供者識別子と、所与のデジタルコンポーネントが選択された時間を示すタイムスタンプと、デジタル署名とを含むコンテンツ要求結果を送信するステップを含み得る。
いくつかの態様では、クライアントデバイスは、第2のプラットフォームへ第2のコンテンツ要求を送信する。第2のコンテンツ要求結果は、コンテンツ結果要求および追加コンテキスト信号を含み得る。第2のプラットフォームは、所与のデジタルコンポーネントと、追加コンテキスト信号に基づいて選択された1つまたは複数のデジタルコンポーネントとを含むデジタルコンポーネントのセットの中から、第2のデジタルコンポーネントを、クライアントデバイスにおける表示のために選択する。
本明細書において説明される主題は、以下の利点のうちの1つまたは複数を実現するために特定の実施形態で実装され得る。コンテンツ選択プロセスを実施するためにMPCおよびk-匿名性技法を使うことは、プロセスに関与するエンティティの機密、たとえば、個人情報が、他のエンティティに漏洩されるのを防ぎ、そうでなければプロセスを実施する必要があるエンティティの間での機密情報の共有を防ぐ。本文書において説明される技法は、異なるコンピューティングシステム内の機密情報とプロセスの動作とを区切り、あるエンティティのコンピュータが危険にさらされる場合に、アクセスできる機密の情報の量が最小限になり、または少なくとも他の技法と比較して減ることを確実にする。
本文書に記載するMPC技法は、テーブル中の情報の機密性を保護するためのMPCプロセスに関与する複数のコンピューティングシステムによって維持される複数のルックアップテーブルを使う。テーブルは、実際のデータの代わりにコードを含んでよく、それにより、MPCプロセスに関与するコンピューティングシステムは、背後にあるデータにアクセスできないが、それでもこれらのコードを使ってプロセスの動作を実施することができる。実際のデータの代わりにコードを使用することはまた、データが危険にさらされた、たとえば盗まれた、または別のエンティティに漏洩した場合でも、データを保護する。このようにルックアップテーブルおよびコードを使うことで、別様にデータを保護するために必要とされるであろう暗号化技法(たとえば、準同型暗号化技法)と比較して、MPCプロセスを実装するのに使われるコンピューティングシステムへの計算負荷が減る。これは、プロセスを実施するのに必要とされる必要な中央処理ユニット(CPU)サイクルを減らし(たとえば、大量のデータを暗号化して復号しなくてよいことにより)、ユーザデバイスに提供するため、およびユーザデバイス上に提示するためのコンテンツを選択するためにプロセスが使われるような実装形態においては重要であるプロセスを実施する際のレイテンシを減らし、プロセス全体をより効率的にする。
コンテンツ提供におけるレイテンシを減らすことは、そのようなコンテンツが到着するのを待機している間にユーザデバイスにおいて起こるエラーの数も減らす。コンテンツは、ワイヤレスネットワークにより接続されるモバイルデバイスに数ミリ秒で提供されなければならないことが多いので、コンテンツを選択して提供する際のレイテンシを減らすことは、エラーを防ぎユーザの不満を減らすのに重要である。バッチ化技法も、(たとえば、多数の個々の要求を扱うための)演算要件を削減し、様々なエンティティのコンピューティングシステムを接続するネットワークの帯域幅消費を削減するのに使うことができる。
本文書に記載するように、MPC、k-匿名性、確率的暗号化、およびルックアップテーブルを組み合わせて使うと、コンテンツを要求し、起こり得る選択のための候補コンテンツと、候補コンテンツ用の選択パラメータとを提供し、コンテンツを選択し、コンテンツを提示のために提供するプロセスに関わるエンティティ各々のデータの機密性を保護するという相乗効果が与えられる。これは、コンテンツが提供されているユーザのユーザデータの機密性、候補コンテンツ用のプラットフォーム(たとえば、DSP)によって提出された選択パラメータの機密性、およびプラットフォーム(たとえば、SSP)がコンテンツを選択するやり方を保護することを含む。
前述の主題の様々な特徴および利点が、図面に関して以下で説明される。追加の特徴および利点は、本明細書で説明する主題および特許請求の範囲から明らかである。
コンテンツがクライアントデバイスに配信される環境のブロック図である。 コンテンツを選択し、クライアントデバイスに提供するための例示的なプロセスを示すスイムレーン図である。 コンテンツを選択するための例示的なプロセスを示すスイムレーン図である。 例示的なコンピュータシステムのブロック図である。
様々な図面における同様の参照番号および名称は、同様の要素を示す。
概して、本文書は、電子コンテンツの選択およびクライアントデバイスへの配信に関わる各エンティティの機密情報の共有または漏洩を防ぐために、MPC、k-匿名性技法、および他のタイプの暗号化を利用するシステムについて記載する。デジタル署名技法も、データ送信における不正を検出し、防ぐのに使うことができる。
図1は、コンテンツがクライアントデバイス110に配信される環境100のブロック図である。例示的環境100は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、モバイルネットワーク、またはそれらの組合せなどのデータ通信ネットワーク105を含む。ネットワーク105は、クライアントデバイス110、MPCクラスタ130、需要側プラットフォーム(DSP)150、供給側プラットフォーム(SSP)170、公開元140、およびウェブサイト142に接続する。例示的な環境100は、多くの異なるクライアントデバイス110、MPCクラスタ130、DSP150、SSP170、公開元140、およびウェブサイト142を含み得る。
クライアントデバイス110は、ネットワーク105を介して通信することが可能な電子デバイスである。例示的なクライアントデバイス110は、パーソナルコンピュータ、モバイル通信デバイス、たとえば、スマートフォン、およびネットワーク105を介してデータを送り、受信することができる他のデバイスを含む。クライアントデバイスはまた、マイクロフォンを通してオーディオ入力を受け入れ、かつスピーカーを通してオーディオ出力を出力する、デジタルアシスタントデバイスを含むことができる。デジタルアシスタントが、オーディオ入力を受け入れるためにマイクロフォンをアクティブ化する「ホットワード」または「ホットフレーズ」を検出すると、デジタルアシスタントは、(たとえば、オーディオ入力を受け入れる準備ができている)聴取モードに入ることができる。デジタルアシスタントデバイスはまた、画像をキャプチャするとともに情報を視覚的に提示するためのカメラおよび/またはディスプレイを含むことができる。デジタルアシスタントは、ウェアラブルデバイス(たとえば、時計もしくは眼鏡)、スマートフォン、スピーカーデバイス、タブレットデバイス、または別のハードウェアデバイスを含む、異なる形態のハードウェアデバイスの中に実装され得る。クライアントデバイスはまた、デジタルメディアデバイス、たとえば、テレビにビデオをストリーミングするためにテレビまたは他のディスプレイに差し込まれるストリーミングデバイスを含み得る。
クライアントデバイス110は一般に、ネットワーク105を介してデータの送付および受信を円滑にする、ウェブブラウザおよび/またはネイティブアプリケーションなどのアプリケーション112を含む。ネイティブアプリケーションは、特定のプラットフォームまたは特定のデバイス(たとえば、特定のオペレーティングシステムを有するモバイルデバイス)のために開発されたアプリケーションである。公開元140は、ネイティブアプリケーションを開発し、クライアントデバイス110に提供する、たとえばダウンロード可能にすることができる。ウェブブラウザは、たとえば、クライアントデバイス110のユーザによる、ウェブブラウザのアドレスバーへのリソース145のリソースアドレスの入力、またはリソースアドレスを参照するリンクの選択に応答して、公開元140のウェブサイト142をホストするウェブサーバに対してリソース145を要求することができる。同様に、ネイティブアプリケーションは、公開元のリモートサーバにアプリケーションコンテンツを要求することができる。
いくつかのリソース、アプリケーションページ、または他のアプリケーションコンテンツは、リソース145またはアプリケーションページとともにデジタルコンポーネントを提示するためのデジタルコンポーネントスロットを含むことができる。本文書全体を通して使われる限り、「デジタルコンポーネント」というフレーズは、デジタルコンテンツまたはデジタル情報の個別単位(たとえば、ビデオクリップ、オーディオクリップ、マルチメディアクリップ、画像、テキスト、または別のコンテンツ単位)を指す。デジタルコンポーネントは、単一のファイルとして、またはファイルの集合として物理メモリデバイスに電子的に記憶することができ、デジタルコンポーネントは、ビデオファイル、オーディオファイル、マルチメディアファイル、画像ファイル、またはテキストファイルの形態をとり、広告情報を含むことができ、したがって、広告は、デジタルコンポーネントの一種である。たとえば、デジタルコンポーネントは、アプリケーション112によって提示されるウェブページまたは他のリソースのコンテンツを補足することが意図されるコンテンツであってよい。より具体的には、デジタルコンポーネントは、リソースコンテンツに関連するデジタルコンテンツを含み得る(たとえば、デジタルコンポーネントは、ウェブページコンテンツと同じトピック、または関連するトピックに関連し得る)。したがって、デジタルコンポーネントのプロビジョニングは、ウェブページまたはアプリケーションコンテンツを補足し、一般に強化することができる。
アプリケーション112が、1つまたは複数のデジタルコンポーネントスロットを含むリソース(またはアプリケーションコンテンツ)をロードするとき、アプリケーション112は、スロットごとにデジタルコンポーネントを要求することができる。いくつかの実装形態では、デジタルコンポーネントスロットは、アプリケーション112に、クライアントデバイス110のユーザへの提示のためにデジタルコンポーネントを選択しそのデジタルコンポーネントをアプリケーション112に提供するデジタルコンポーネント配信システムにデジタルコンポーネントを要求させる、コード(たとえば、スクリプト)を含むことができる。
いくつかの公開元140は、SSP170を使用して、そのリソースおよび/またはアプリケーションのデジタルコンポーネントスロットのためのデジタルコンポーネントを取得するプロセスを管理する。SSP170は、リソースおよび/またはアプリケーションに対するデジタルコンポーネントを取得するプロセスを自動化するハードウェアおよび/またはソフトウェアにおいて実装される技術プラットフォームである。SSP170は、1つまたは複数のDSP150と対話して、デジタルコンポーネントスロットに対するデジタルコンポーネントを選択するために使用され得る情報を取得することができる。以下でより詳しく説明するように、この情報は、デジタルコンポーネント提供者160がデジタルコンポーネント提供者160のデジタルコンポーネントの提示のために公開元140に提供する意思のある量を表す選択パラメータを含み得る。各公開元140は、対応するSSP170または複数のSSP170を有し得る。いくつかの公開元140が、同じSSP170を使用してよい。
デジタルコンポーネント提供者160は、公開元のリソースおよびアプリケーションのデジタルコンポーネントスロット内に提示されるデジタルコンポーネントを作成(またはそうでなければ公開)することができる。デジタルコンポーネント提供者160は、DSP150を使用して、デジタルコンポーネントスロット内に提示するために、そのデジタルコンポーネントのプロビジョニングを管理することができる。DSP150は、リソースおよび/またはアプリケーションで提示するためのデジタルコンポーネントを配信するプロセスを自動化するハードウェアおよび/またはソフトウェアにおいて実装される技術プラットフォームである。DSP150は、デジタルコンポーネント提供者160に代わって複数のSSP170と対話して、複数の異なる公開元140のリソースおよび/またはアプリケーションで提示するためのデジタルコンポーネントを提供することができる。一般に、DSP150は、デジタルコンポーネントに対する要求を(たとえば、SSP170から直接、または交換によって)受信し、要求に基づいて1つまたは複数のデジタルコンポーネント提供者によって作成された1つまたは複数のデジタルコンポーネントに対する選択パラメータを生成(または選択)し、デジタルコンポーネントに関するデータ(たとえば、デジタルコンポーネント自体)および選択パラメータをSSP170に提供することができる。
SSP170がデジタルコンポーネントを選択するやり方、ならびにDSP150がデジタルコンポーネントを配信する(たとえば、選択パラメータおよび/または選択パラメータ自体を生成する)やり方は概して、他の参加者と共有されるべきでない機密情報を含む。本文書において説明される技法は、この情報が他の参加者に共有されまたは漏洩されることから保護する。
いくつかの場合、ウェブページ、アプリケーションページ、または、以前にユーザが訪問した、および/もしくはユーザと対話した他の電子リソースに関連する、デジタルコンポーネントをユーザが受信することが有益である。そのようなデジタルコンポーネントをユーザに配信するために、ユーザが特定のリソースを訪れると、またはリソースにおいて特定のアクションを実施する(たとえば、ウェブページ上に提示された特定のアイテムと対話する、もしくはアイテムを仮想カートに追加する)と、ユーザがユーザグループに割り当てられ得る。ユーザグループは、デジタルコンポーネント提供者160によって生成され得る。すなわち、各デジタルコンポーネント提供者160は、ユーザがデジタルコンポーネント提供者160の電子リソースを訪問すると、デジタルコンポーネント提供者160のユーザグループにユーザを割り当てることができる。
ユーザプライバシーを保護するために、ユーザのグループメンバーシップが、デジタルコンポーネント提供者、または他の参加者によってではなく、たとえば、アプリケーション112のうちの1つによって、ユーザのクライアントデバイス110において維持され得る。特定の例では、ウェブブラウザは、ウェブブラウザを使用して、ユーザのためのユーザグループ識別子のリスト(「ユーザグループリスト」)を維持することができる。ユーザグループリストは、ユーザが追加された各ユーザグループのためのグループ識別子を含み得る。ユーザグループを作成するデジタルコンポーネント提供者160は、それらのユーザグループのためのユーザグループ識別子を指定することができる。ユーザグループに対するユーザグループ識別子は、グループ(たとえば、園芸グループ)、またはグループを表すコード(たとえば、記述的でない英数字系列)を記述することができる。ユーザのためのユーザグループリストは、クライアントデバイス110において安全なストレージに記憶されてよく、かつ/または記憶されるときに暗号化されてよい。
アプリケーション112が、デジタルコンポーネント提供者160に関係するリソースもしくはアプリケーションコンテンツ、またはウェブサイト142上のウェブページを提示するとき、リソースは、アプリケーション112がユーザグループリストに1つまたは複数のユーザグループ識別子を追加することを要求することができる。それに応答して、アプリケーション112は、ユーザグループリストに1つまたは複数のユーザグループ識別子を追加することができ、ユーザグループリストをセキュアに記憶することができる。以下でより詳しく説明されるように、アプリケーション112は、コンテンツに対する要求、たとえば1つまたは複数のデジタルコンポーネントに対する要求とともに、ユーザグループリストの中のユーザグループ識別子をMPCクラスタ130に送信することができる。ユーザグループ識別子のプレーンテキスト値を送るのではなく、アプリケーション112は、ユーザグループ識別子の意図されていない受信者がユーザグループ識別子のプレーンテキスト値にアクセスできないように、ユーザグループ識別子を暗号化し、暗号化されたユーザグループ識別子をMPCクラスタ130に送ることができる。
MPCクラスタ130は、1つまたは複数のユーザグループ識別子および追加の情報に基づいてデジタルコンポーネントを選択するためにマルチパーティ計算プロセスを実施する、複数のコンピューティングシステムを含む。この例では、MPCクラスタ130は、第1のコンピューティングシステムS1および第2のコンピューティングシステムS2を含む。コンピューティングシステムS1およびS2は、同じ参加者(たとえば、ブラウザ開発者、アプリケーション開発者、もしくは産業グループ)によって、または異なる参加者によって(たとえば、一方はブラウザ開発者によって運用され、他方は産業グループにより運用される)、所有され運用され得る。量が1つより多い限り、他の量のコンピューティングシステムも使用され得る。
MPCを使用してユーザグループ識別子に基づいてデジタルコンポーネントを選択することは、ユーザがどのグループに属するかを任意の参加者(MPCクラスタ130のコンピューティングシステムを運用する参加者を含む)が判断するのを防ぐことによって、ユーザのプライバシーを保護し、そうすることによって、ユーザの個人情報を保護する。MPCプロセスはまた、k-匿名性技法とともに、SSP170およびDSP150の機密情報に他の参加者がアクセスするのを防ぐ。k-匿名性技法は、DSP150および/またはデジタルコンポーネント提供者160が、たとえば、ユーザ向けのデジタルコンポーネントを選択するためにユーザの特定のユーザ情報を使うことによって、特定のクライアントデバイス110をマイクロターゲット化することを防ぐこともできる。コンテンツを選択して配信するためのMPC、k-匿名性技法、および他の暗号化技法を使うための例示的なプロセスが、図2および図3に示される。
いくつかの実装形態では、アプリケーション112は、ユーザが、ユーザが割り当てられたユーザグループを管理することを可能にするユーザインターフェースを提供し得る。たとえば、ユーザインターフェースは、ユーザが、ユーザグループ識別子を除去することを可能にし、すべてのまたは特定のリソース、公開元、デジタルコンポーネント提供者、デジタルコンポーネント交換、および/またはDSP150がユーザをユーザグループに追加することを防ぐこと(たとえば、エンティティが、アプリケーション112によって維持されるユーザグループ識別子のリストにユーザグループ識別子を追加することを防ぐこと)ができる。これは、ユーザにより良い透明性および制御を提供する。
図2は、コンテンツを選択し、クライアントデバイス110に提供するための例示的なプロセス200を示すスイムレーン図である。プロセス200の動作は、たとえば、クライアントデバイス110、MPCクラスタ130、1つまたは複数のDSP150、およびSSP170によって実装され得る。プロセス200の動作は、非一時的であり得る、1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装されてもよく、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス200の動作を実施させ得る。
この例では、SSP170は、そのリソースおよび/またはアプリケーションのためのデジタルコンポーネントスロット用のデジタルコンポーネントを取得するプロセスを管理するために、特定の公開元によって使われるSSPであり、クライアントデバイス110は、クライアントデバイス110のアプリケーションが公開元の電子リソース(たとえば、ウェブページまたはネイティブアプリケーション)をロードしたことに応答してコンテンツを要求する。SSP170は、SSP170がデジタルコンポーネントをそのために取得する公開元の電子リソースを用いた提示のためにデジタルコンポーネントが提供されることを可能にするのに先立って、デジタルコンポーネントを検討することができる。たとえば、SSP170は、デジタルコンポーネントが様々な基準を満たすこと、たとえば、特定のタイプのコンテンツを含まないこと、データおよび/または表示サイズ要件を満たすことなどを確実にするために、デジタルコンポーネントのコンテンツおよびフォーマットを検討し得る。
SSP170がデジタルコンポーネントを承認した場合、SSP170は、デジタルコンポーネント用の署名付き創作要素(creative element)を生成することができる。署名付き創作要素は、コンテンツのセットと、コンテンツのセットに基づいて生成されたデジタル署名とを含み得る。たとえば、コンテンツのセットは、創作スニペット、デジタルコンポーネントを作成および/もしくは公開したデジタルコンポーネント提供者を一意に識別するデジタルコンポーネント提供者識別子(これにより、SSP170は、デジタルコンポーネント用の対応するDSP150を判断することができる)、創造的メタデータ、SSP170についてのリソースロケータ、ならびに/またはデジタル署名の満了日付(たとえば、デジタルコンポーネントを再検証のために定期的に再提出するよう、DSPに求めるための)を含み得る。
創作スニペットは、デジタルコンポーネント自体(またはリソースロケータもしくはデジタルコンポーネントをそこからダウンロードすることができるサーバへのリンク)を含み得る。創作スニペットは、デジタルコンポーネントをレンダリングするためのコンピュータ実行可能コード、たとえば、サーバからデジタルコンポーネントをダウンロードし、デジタルコンポーネントをデジタルコンポーネントスロットの中でレンダリングするためのスクリプトも含むことができる。創作スニペットは、デジタルコンポーネントの提示についての情報をアグリゲーションサーバへ送信するためのコンピュータ実行可能コード、たとえば、クライアントデバイスに、アグリゲーションサーバへ情報を送信させるスクリプトも含むことができる。
SSP170用のリソースロケータは、SSP170のドメインのeTLD+1であってよい。eTLD+1は、パブリックサフィックスを超える、有効トップレベルドメイン(eTLD)+1ラベルである。例示的なeTLD+1は「example.com」であり、ここで、「.com」がトップレベルドメインである。
メタデータは、SSP170がデジタルコンポーネントに対して公開元定義の排除を強制することを可能にするプロパティのセットを含み得る。たとえば、公開元は、そのリソースを用いて、特定のプロパティを有する(たとえば、特定のカテゴリに関連したコンテンツを有する)デジタルコンポーネントを提示させなくてよい。メタデータは、公開元によって禁止されるデジタルコンポーネントの、禁止カテゴリ、トピック、または他のプロパティのリストを含み得る。いくつかの実装形態では、SSP170は、各プロパティを暗号化し、各暗号化プロパティを署名付き創作要素の中に含めることができる。たとえば、SSP170は、SSP170の非対称公開鍵を使って、各プロパティを暗号化することができる。このようにして、SSP170のみが、公開鍵に対応する非対称秘密鍵を使って、各プロパティの平文値にアクセスすることができる。以下で説明するように、MPCクラスタ130は、公開元用のデジタルコンポーネントを排除するのにプロパティを(たとえば、暗号化された形で)使うことができる。プロパティが暗号化されている場合、MPCクラスタ130は依然として、どのプロパティを公開元が排除するかを判断することはできないが、排除を実施することができ、そうすることによって、公開元の機密情報を保護する。
SSP170は、SSP170の非対称秘密鍵を使ってコンテンツのセットに署名することによって、デジタル署名を作成することができる。署名付き創作要素の受信者は、署名を生成するのに使われる秘密鍵に対応する非対称公開鍵を使って、デジタル署名を検証することができる。デジタル署名が生成された後でコンテンツのセットの中のどのデータが変化した場合でも、デジタル署名の検証は失敗することになる。SSP170は、各デジタルコンポーネント用の署名付き創作要素を、デジタルコンポーネントを作成/公開したデジタルコンポーネント提供者160用のDSP150へ送ることができる。
クライアントデバイス110は、ユーザグループベースの要求をMPCクラスタ130へ送信する(202)。たとえば、クライアントデバイス110上で稼動するウェブブラウザが、1つまたは複数のデジタルコンポーネントスロットを有する公開元のリソースをロードすることができる。別の例では、ユーザが、公開元のネイティブアプリケーションを起動してよく、アプリケーションのコンテンツは、1つまたは複数のデジタルコンポーネントスロットを含み得る。デジタルコンポーネントスロットを含むアプリケーション112は、ユーザグループベースのコンテンツ要求を送信することができる。
この例示的なプロセス200において、アプリケーション112は、2つの別個のコンテンツ要求を送信することができる。アプリケーション112は最初に、クライアントデバイス110のユーザが割り当てられている1つまたは複数のユーザグループに基づいて、デジタルコンポーネントを要求するための、ユーザグループベースのコンテンツ要求を送信することができる。アプリケーション112は次いで、追加コンテキスト情報に基づくデジタルコンポーネントと、1つのデジタルコンポーネントがユーザグループベースのコンテンツ要求を使って取得される場合、1つまたは複数のユーザグループに基づいて選択された1つまたは複数のデジタルコンポーネントとを要求するコンテキストコンテンツ要求を送ることができる。こうすることにより、コンテキストコンテンツ選択プロセスは、ユーザが割り当てられているユーザグループの機密性と、デジタルコンポーネントを選択するのに使われるDSPの情報の機密性とを維持したまま、1つまたは複数のユーザグループに基づいて選択されたデジタルコンポーネントを含むことが可能になる。
ユーザグループベースのコンテンツ要求は、以下で説明するコンテキストコンテンツ要求に含まれるものよりも少ないが、いくつかのコンテキスト信号を含み得る。たとえば、ユーザグループコンテンツ要求は、リソースについてのリソースロケータ、たとえば、ウェブページについてのユニバーサルリソースロケータ(URL)またはアプリケーションコンテンツについてのユニバーサルリソース識別子(URI)を含み得る。ユーザグループコンテンツ要求は、言語(たとえば、コンテンツをレンダリングするアプリケーションによってコンテンツが提示される言語)および/またはクライアントデバイス110の粗いロケーションを示す粗い地理的ロケーション情報も含むことができる。
ユーザグループベースのコンテンツ要求は、クライアントデバイス110のユーザが割り当てられているユーザグループについてのユーザグループ識別子も含むことができる。以下でより詳しく説明するように、ユーザグループベースのコンテンツ要求は、暗号化されたユーザグループ識別子と、ユーザプライバシーを保護し、不正を防ぐための署名付き引換え(redemption)レコード(SRR)とを含み得る。SRRは、クライアントデバイスが、信用トークン発行者によって評価され、信用できると判断されたことを示す。
MPCクラスタ130は、ユーザグループベースのコンテンツ要求を受信し、対応するユーザグループベースのコンテンツ要求を1つまたは複数のDSP150へ送信する(204)。ユーザグループベースのコンテンツ要求を受信した後、MPCクラスタ130はSRRを検証することができる。MPCクラスタ130は、要求に含まれる様々な情報に対してk-匿名性を強制し、ユーザグループベースの要求をDSP150へ送信すること、DSP150から選択パラメータを受信すること(206)、および選択パラメータに基づいてコンテンツ(たとえば、1つまたは複数のデジタルコンポーネント)を選択すること(208)を含むMPCプロセスを実施することもできる。これらの動作は、図3を参照して以下でより詳しく記述される。
MPCクラスタ130は、選択されたコンテンツについてのユーザグループコンテンツ応答をアプリケーション112へ送信する(210)。MPCクラスタ130は、デジタルコンポーネントを選択することができ、アプリケーション112へ、選択されたデジタルコンポーネント用の署名付き創作要素を少なくとも含むユーザグループコンテンツ応答を送信する。このデジタルコンポーネントは、ユーザのユーザグループメンバーシップに基づいてデジタルコンポーネントが選択されるので、ユーザグループベースのデジタルコンポーネントとも呼ばれ得る。
いくつかの実装形態では、ユーザグループコンテンツ応答は、ユーザグループベースのデジタルコンポーネント用の署名付き創作要素、公開元リターン識別子、選択パラメータ識別子(以下で説明する)、ユーザグループベースのデジタルコンポーネントを作成/公開したデジタルコンポーネント提供者を一意に識別するデジタルコンポーネント提供者識別子、および/またはユーザグループベースのデジタルコンポーネントを選択するためにコンテンツ選択プロセスが実施された時間を示すタイムスタンプ(ミリ秒、もしくはより細かい粒度をもつ高解像度タイムスタンプであってよい)を含むコンテンツのセットを含む。ユーザグループコンテンツ応答は、署名付き創作要素の暗号学的ハッシュ(たとえば、SHA256)に対してMPCクラスタ130のコンピューティングシステムS1によって生成されたデジタル署名、デジタルコンポーネントが提示されるためのリソースについてのリソースロケータ、公開元リターン識別子、選択パラメータ識別子、デジタルコンポーネント識別子、およびタイムスタンプも含むことができる。コンピューティングシステムS1は、コンピューティングシステムS1の秘密鍵を使ってデジタル署名を生成することができる。
署名付き創作要素自体ではなく、署名付き創作要素の暗号学的ハッシュのデジタル署名を生成すると、署名を認証するのに求められるデータサイズ、およびデジタル署名を認証するのに求められる処理能力(たとえば、CPU周期の数)が削減される。データサイズの削減により、データ送信速度が増大し、帯域幅消費が削減し、データ記憶要件が削減し得る。デジタル署名が創作要素全体にわたる場合、署名を認証したい受信者は、創作要素の暗号ハッシュよりもはるかに大きい、創作要素の全体をどうにかして受信しなければならない。
タイムスタンプは、選択プロセスのための一意の識別子として働き、デジタル署名は、不正を防ぐのに使うことができる。選択プロセスのための一意の識別子とデジタル署名の組合せは、障害のある/悪意のあるアプリケーション(たとえば、ブラウザ)またはスクリプトが、選択パラメータを偽造すること、または同じコンテンツセットを使って反射攻撃(たとえば、サービスの拒否)を起動することによって、不正を犯すのを防ぐ。たとえば、クライアントデバイス110(もしくはSSP、または監査プロセス)は、コンテンツに署名するのに使われる、コンピューティングシステムS1の秘密鍵に対応する、コンピューティングシステムS1の公開鍵を使ってデジタル署名を検証することができる。署名の検証が失敗した場合、署名されたコンテンツは修正されている。さらに、同じタイムスタンプを有する複数のユーザコンテンツ応答が受信された場合、(SSP、または監査プロセスの)クライアントデバイス110は、反射攻撃を検出することができる。さらに、リソースについてのリソースロケータを、デジタル署名されているコンテンツのセットに含めると、この特定の提示をもつユーザグループコンテンツ応答をリソースとバインドする。
公開元リターン識別子は、公開元が、公開元のリソースを用いて提示されるデジタルコンポーネントのためのデジタルコンポーネント提供者から受信する量を表す識別子(たとえばであって、量自体ではない)である。ただし、公開元リターン識別子は、公開元およびそのSSP170以外のエンティティにとっては無意味である。
アプリケーション112は、コンテキストコンテンツ要求をSSP170へ送信する(212)。コンテキストコンテンツ要求は、ユーザグループコンテンツ応答の中の情報の少なくとも一部分と、コンテキストデータとを含み得る。たとえば、コンテキストコンテンツ要求は、ユーザグループコンテンツ応答から、公開元リターン識別子および/またはデジタルコンポーネント提供者識別子を含み得る。公開元リターン識別子は、SSP170が、コンテキストデータのフルセットに基づいて、公開元のリソースを用いた提示のためにデジタルコンポーネントを選択するコンテキストコンテンツ選択プロセスにおいてMPCクラスタ130によって選択されたデジタルコンポーネントを含むことを可能にする。
コンテキストコンテンツ要求のコンテキストデータは、ユーザグループベースのコンテンツ要求に、リソースに含まれるデジタルコンポーネントスロットの数、リソース内のデジタルコンポーネントスロットのロケーション、デジタルコンポーネントスロットのサイズ、デジタルコンポーネントスロットのタイプなどのような追加コンテキストデータを加えたものと同じコンテキストデータを含み得る。
SSP170は、コンテキストコンテンツ要求を1つまたは複数のDSP150へ送る(214)。これらのコンテキストコンテンツ要求は、アプリケーション112から受信されたコンテキストコンテンツ要求のコンテキストデータを含み得るが、コンテキストコンテンツ要求に含まれていたユーザグループコンテンツ応答からの情報は含まない。
各DSP150は、SSP170へ選択パラメータを送信することができる(216)。たとえば、各DSP150は、DSP150によって表されるデジタルコンポーネント提供者の代わりに、コンテキストデータに基づいて1つまたは複数のデジタルコンポーネントを選択することができる。各デジタルコンポーネントに対して、DSP150はまた、デジタルコンポーネントに対する選択パラメータを生成または選択し得る。DSP150は次いで、SSP170へ、デジタルコンポーネントについての選択パラメータおよびデータ(たとえば、署名付き創作要素、デジタルコンポーネント自体、またはデジタルコンポーネントについてのリソースロケータ)を送信することができる。
SSP170は、DSP150から受信された選択パラメータ、およびMPCクラスタ130によって選択されたデジタルコンポーネントについての公開元リターン識別子に少なくとも部分的に基づいて、コンテンツを選択する。SSP170は、ユーザグループベースのコンテンツ要求のための選択パラメータの大きさを判断することができる。たとえば、SSP170は、公開元の選択パラメータ識別子を選択パラメータにマップする(たとえば、リンクし、インデックス付けし、または他の方法で関連付ける)ルックアップテーブルまたは他の適切なデータ構造を含み得る。ルックアップテーブルは、選択パラメータ識別子の配列(たとえば、列)と、各選択パラメータ識別子に対して、対応する選択パラメータとを含み得る。選択パラメータは量子化することができる。たとえば、各選択パラメータ識別子は、選択パラメータ値の範囲に対応し得る。
SSP170は、ユーザグループベースのデジタルコンポーネントについての選択パラメータ識別子、およびDSP150から受信された選択パラメータ識別子の中で、最も高い選択パラメータ識別子を有するデジタルコンポーネントを選択することができる。いくつかの実装形態では、以下でより詳しく説明するように、選択パラメータ識別子は、SSP170および/またはDSP150にシェアが割り当てられた後で公開元が受信する事後共有量を表す。この例では、SSP170は、DSP150から受信された選択パラメータについての事後共有量を判断し、最も高い事後共有量を有するデジタルコンポーネントを選択することもできる。
SSP170は次いで、選択されたデジタルコンポーネントおよび/または選択されたデジタルコンポーネント用の創作スニペットをクライアントデバイス110へ送信することができる(220)。次に、アプリケーション112は、選択されたデジタルコンポーネントを、公開元のリソースを用いて提示することができる(222)。
上述したように、コンテキストコンテンツ要求は、ユーザグループコンテンツ応答から、公開元リターン識別子および/またはデジタルコンポーネント提供者識別子を含み得る。これにより、この手法の採用を簡素化し、手法が採用される速度を増し、本文書に記載するユーザグループベースの技法を用いない従来のコンテキストコンテンツ要求に基づいて、デジタルコンポーネントを提示のために選択する既存のSSPのための、手法の採用を簡素化することができる。コンテキストコンテンツ要求が、公開元リターン識別子を含むがデジタルコンポーネント提供者識別子を含まない場合、SSP170は、ユーザグループベースのデジタルコンポーネントが選択されたとき、ユーザグループベースのデジタルコンポーネント用のDSPとして、プレースホルダー(たとえば、仮想)DSPを含むように修正することができる。この例では、(たとえば、DSP用のデジタルコンポーネントの提示に基づいて)DSPに対して要求されるべき集約値が、アグリゲーションシステムから、たとえば、アグリゲーションシステムのアプリケーションプログラミングインターフェース(API)から受信されると、SSP170は、仮想DSP用に要求されるべき量を、アグリゲーションシステムによって報告された量で置き換えることができる。コンテキストコンテンツ要求がデジタルコンポーネント提供者識別子を含む場合、SSP170は、まったく修正される必要はなくてよい。
いくつかの実装形態では、創作スニペットは、アプリケーション112に、ユーザグループベースのデジタルコンポーネントに対するデジタルコンポーネントの提示を報告するレポートをアグリゲーションサーバへ送信させることができる。このレポートは、MPCクラスタ130から受信された、デジタルコンポーネントについてのユーザグループコンテンツ応答の少なくとも一部分を含み得る。たとえば、レポートは、公開元リターン識別子と、選択パラメータ識別子と、ユーザグループベースのデジタルコンポーネントを作成/公開したデジタルコンポーネント提供者を一意に識別するデジタルコンポーネント提供者識別子と、ユーザグループベースのデジタルコンポーネントを選択するためにコンテンツ選択プロセスが実施された時間を示すタイムスタンプと、コンピューティングシステムS1によって生成されたデジタル署名とを含み得る。
図3は、コンテンツを選択するための例示的なプロセス300を示すスイムレーン図である。プロセス300の動作は、たとえば、クライアントデバイス110、MPCクラスタ130のコンピューティングシステムS1およびS2、ならびに1つまたは複数のDSP150によって実装され得る。プロセス300の動作は、非一時的であり得る、1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装されてもよく、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス300の動作を実施させ得る。
クライアントデバイス110は、ユーザグループベースの要求をコンピューティングシステムS1へ送信する(302)。図2の動作202に関して上述したように、クライアントデバイス110は、クライアントデバイスに提供される1つまたは複数のデジタルコンポーネントを選択するために、2つの異なるコンテンツ要求、すなわちユーザグループベースのコンテンツ要求およびコンテキストコンテンツ要求を送信することができる。この例では、クライアントデバイス110上で稼動するアプリケーション112が、コンピューティングシステムS1へユーザグループベースのコンテンツ要求を送信することができる。
ユーザグループベースのコンテンツ要求は、いくつかのコンテキスト信号、たとえば、URLもしくはURIなど、リソースについてのリソースロケータ、言語(たとえば、コンテンツをレンダリングするアプリケーションによってコンテンツが提示される言語)および/またはクライアントデバイス110の粗いロケーションを示す粗い地理的ロケーション情報を含み得る。
ユーザグループベースのコンテンツ要求は、クライアントデバイス110のユーザが割り当てられているユーザグループについてのユーザグループ識別子も含むことができる。たとえば、各ユーザグループ識別子向けに個々の要求を送るのではなく、ユーザグループ識別子はすべて、1つの要求の中で送ることができる。アプリケーション112は、各ユーザグループ識別子を暗号化し、暗号化されたユーザグループ識別子をユーザグループベースのコンテンツ要求の中に含めることができる。
いくつかの実装形態では、クライアントデバイス110は、MPCクラスタ130のコンピューティングシステムS2の公開鍵を使って、各ユーザグループ識別子を暗号化する。確率的公開鍵暗号化方式が、各ユーザグループ識別子を暗号化するのに使うことができる。そのような暗号化方式の確率的性質は、暗号化方式が同じ公開鍵で繰り返し呼び出されると、暗号化方式が同じ平文(たとえば、ユーザグループ識別子)を異なる暗号文に暗号化するという意味的機密保護を与える。ユーザグループ識別子を暗号化するのに使うことができる確率的暗号化方式の例は、楕円曲線P-256および楕円曲線P25519である。
各ユーザグループ識別子について、アプリケーション112は、複合メッセージを生成し、コンピューティングシステムS2の公開鍵を用いる、確率的公開鍵ベースの暗号化アルゴリズムを使って、複合メッセージを暗号化することができる。ユーザグループ識別子についての複合メッセージは、ユーザグループ識別子と、アプリケーション公開鍵(たとえば、ユーザグループベースのコンテンツ要求を送るアプリケーション112の公開鍵であって、アプリケーション112によって機密に維持されるアプリケーション秘密鍵に対応する)と、ユーザグループ識別子についてのSRRと、デジタル署名とを含み得る。アプリケーション112は、たとえば、アプリケーション秘密鍵を使って、ユーザグループ識別子、アプリケーション公開鍵、およびSRRを署名譲渡することによって、複合メッセージの他のコンテンツに基づいてデジタル署名を生成することができる。
アプリケーション112は次いで、コンピューティングシステムS2の暗号化鍵を使って、各ユーザグループ識別子についての複合メッセージを暗号化することができる。この暗号化処理は、コンピューティングシステムS2の公開鍵を使って、複合メッセージに対して確率的非対称鍵アルゴリズムを適用することを含み得る。コンピューティングシステムS2の鍵を使って各ユーザグループ識別子を暗号化すると、ユーザグループベースのコンテンツ要求を受信するコンピューティングシステムS1が、ユーザグループ識別子を、ユーザグループベースのコンテンツ要求に含まれるコンテキスト信号と合わせることが防がれる。
デジタル署名は、コンピューティングシステムS2が不正を検出することを可能にする。たとえば、デジタル署名の検証が失敗した場合、複合メッセージのコンテンツは、デジタル署名が生成された後に修正されている。
SRRは、コンピューティングシステムS2が不正、たとえば、ユーザグループメンバーシップ不正を検出することも可能にする。各複合メッセージは、そのユーザグループ識別子について取得された異なるSRRを含み得る。つまり、ユーザグループベースのコンテンツ要求は、ユーザが割り当てられている各ユーザグループ識別子についてのそれぞれのSRRを含み得る。各複合メッセージは、異なるアプリケーション公開鍵も含むことができ、これは、ユーザグループ識別子についてのSRRを取得するのに使われる。これは、コンピューティングシステムS2が、ユーザグループ識別子のセットが同じアプリケーション112からであることを推論するのを防いで、コンピューティングシステムS2が、ユーザが属すユーザグループすべてを相関させることを可能にしないことによって、ユーザプライバシーを保護する。
各SRRは、公開元起源(たとえば、コンピューティングシステムS2のeTLD+1ドメイン)と、バインディングと、SRRを取得するために引き換えられた信用トークンを発行した信用トークン発行者についてのeTLD+1と、信用トークンが引き換えられた時間を示す引換えタイムスタンプと、信用トークン発行者によって署名されたデジタル署名とを含み得る。署名は、受信者が、信用トークン発行者がクライアントデバイスを評価し、デバイスを信用できると見なしたこと、およびSRRのコンテンツが修正されていないことを検証するのを可能にする。信用トークン発行者は、秘密鍵およびSRRの他のコンテンツを使って、デジタル署名を生成することができる。
バインディングは、ユーザグループ識別子と、ユーザグループ識別子用のアプリケーション公開鍵の両方に、SRRをバインドすることができる。こうすることにより、SRRが、(たとえば、他のデバイス上の)他のアプリケーションによって、または他のグループ識別子用に使われるのが防がれる。いくつかの実装形態では、バインディングは、ユーザグループ識別子およびユーザグループ識別子用のアプリケーション公開鍵の暗号学的ハッシュである。いくつかの実装形態では、バインディングは、ユーザグループ識別子およびユーザグループ識別子用のアプリケーション公開鍵のハッシュベースのメッセージ認証コード(HMAC)である。
アプリケーション112は、各ユーザグループ識別子についてのSRRを信用トークン発行者に対して要求することができる。信用トークン発行者は、クライアントデバイス110および/またはアプリケーション112の信用性のレベルに基づいて、信用トークンを発行することができる。要求は、各ユーザグループ識別子について、それぞれの信用トークンと、公開鍵およびユーザグループ識別子の暗号ハッシュ(またはHMAC)とを含み得る。いくつかの実装形態では、アプリケーション112は、暗号化関数を使って、各ユーザグループ識別子についての暗号学的ハッシュを生成する。たとえば、アプリケーション112は、ユーザグループ識別子について、ユーザグループ識別子およびそのそれぞれのアプリケーション公開鍵のHMACを生成することができる。
ユーザグループ識別子ではなく暗号学的ハッシュ(たとえば、いくつかの実装形態ではHMAC)を信用トークン発行者へ送ることによって、ユーザが割り当てられているユーザグループは、信用トークン発行者に対して漏洩されない。信用トークン発行者は、各ユーザグループ識別子についてのSRRを生成することができ、これは、信用トークン発行者の秘密鍵を使ってデジタル署名を生成することを含む。これにより、SRRの受信者は、信用トークン発行者の秘密鍵に対応する公開鍵を使ってデジタル署名を検証しようと試みることによって、SRRの内容が変化したかどうかを検出することが可能になる。
クライアントデバイス110のユーザが割り当てられているユーザグループの数をコンピューティングシステムS1が知るのを防ぐために、要求を送信するアプリケーション112は、偽のユーザグループ識別子を暗号化し、暗号化された偽のユーザグループ識別子をユーザグループベースのコンテンツ要求の中に挿入することができる。たとえば、アプリケーション112は、任意の、または定期的に変化する数の暗号化された偽のユーザグループ識別子を、ユーザグループベースのコンテンツ要求の中に挿入することができる。各偽のユーザグループ識別子は、MPCクラスタ130のコンピューティングシステムS2の公開鍵を使って暗号化することができる。偽のユーザグループ識別子は、共通値、たとえば、ゼロまたは何らかの他の定数の値を有することができる。
ユーザグループコンテンツ要求をこのように生成することにより、コンピューティングシステムS1が、各ユーザについてのユーザグループ識別子を(ユーザグループ識別子を暗号化することによって)相関させるのを、および各ユーザが割り当てられているユーザグループの数を(偽の識別子を使って)知るのを防ぐ。MPCクラスタ130は、多くの異なるクライアントデバイスから多くの要求を受信する可能性があるので、これらの技法は、コンピューティングシステムS1およびS2が、ユーザの各々のユーザグループメンバーシップについて学習するのを防ぐことができる。
ユーザグループコンテンツ要求は、たとえば、各ユーザグループ識別子についての暗号化されたSRRに加え、要求自体についてのSRRも含むことができる。これにより、コンピューティングシステムS1は、信用されるクライアントデバイスによってユーザグループコンテンツ要求が送られたことを検証することが可能になる。コンピューティングシステムS1は、このSRRを、アプリケーション112からユーザグループコンテンツ要求が受信された後で検証することができる。たとえば、コンピューティングシステムS1は、信用トークン発行者の公開鍵を、SRRの署名を検証するのに使い、したがって、署名が生成されてから、SRRのコンテンツが修正されていないことを確実にすることができる。コンピューティングシステムS1は、回復タイムスタンプが最新である、たとえば、ユーザグループベースのコンテンツ要求が受信される時間の閾時間量以内であることを確実にすることもできる。
コンピューティングシステムS1は、ユーザグループベースのコンテンツ要求に含まれるコンテキスト信号に対してk-匿名性を適用する(304)。k-匿名性技法は、アプリケーションがユーザグループベースのコンテンツ要求を送る各ユーザ向けのコンテキスト信号が、少なくともK人のユーザの間で共有され、したがって単一ユーザまたはユーザの小グループを一意には識別することができないことを確実にするのに使うことができる。コンテキスト信号に対してk-匿名性を適用するとき、コンピューティングシステムS1は、たとえば、一定の時間期間、たとえば、その日、週、月、などにわたって、ユーザグループコンテンツ要求がそこから受信された、多くの異なるユーザの複数のクライアントデバイスから受信されたコンテキスト信号を使うことができる。
コンピューティングシステムS1は、各SRRに含まれる暗号学的ハッシュ(たとえば、ユーザグループ識別子およびアプリケーション公開鍵の暗号学的ハッシュ)を、コンテキスト信号の特定のセットを送った一意のアプリケーションの数を判断するのに使うことができる。コンピューティングシステムS1は、一意のアプリケーションの数を匿名性閾と比較し、数が匿名性閾を満たすか、または超える場合、コンテキスト信号のセットがk-匿名性を満足すると判断することができる。たとえば、一意のアプリケーションの数が匿名性閾未満であることにより、コンテキスト信号のセットがk-匿名性を満足しない場合、コンピューティングシステムS1は、ユーザグループベースのコンテンツ要求に、デジタルコンポーネントなしで応答することができる。匿名性閾は、目標k-匿名性のパラメータkに基づき得る。
別の例では、コンピューティングシステムS1は、ユーザグループベースのコンテンツ要求に含まれる各コンテキスト信号に、k-匿名性を適用することができる。たとえば、コンピューティングシステムS1は、個々のコンテキスト信号がそこから受信された一意のアプリケーションの数を匿名性閾と比較することができる。一意のアプリケーションの数が匿名性閾を満たすか、または超える場合、個々のコンテキスト信号はk-匿名性を満足する。コンピューティングシステムS1は、k-匿名性を満足しないコンテキスト信号を無視する(たとえば、消去する)が、k-匿名性を満足するコンテキスト信号でプロセスを続けることができる。
コンピューティングシステムS1は、アプリケーション112から受信されたユーザグループベースのコンテンツ要求についての一意の要求識別子を作成する。この要求識別子は、選択されたコンテンツが提示されるためのリソースについての、ノンス(たとえば、任意、擬似ランダム、または乱数)およびリソースロケータを含む複合メッセージであってよい。たとえば、要求識別子は、リソースの、ノンスおよびドメイン(たとえば、example.com)、URL、またはURIを含み得る。これにより、コンピューティングシステムS1は、以下で説明するように、コンピューティングシステムS2から受信された選択パラメータ識別子を相関させ、選択パラメータ識別子を、アプリケーション112に戻すべきデジタルコンポーネントを選択するのに使うことが可能になる。
コンピューティングシステムS1は次いで、アプリケーション112から受信された各ユーザグループ識別子(たとえば、コンピューティングシステムS1が平文ユーザグループ識別子へのアクセスを有していないので、アプリケーション112から受信された、各暗号化された複合メッセージ)について、コンピューティングシステムS2へそれぞれの要求を送ることができる(308)。要求を生成するのに先立って、コンピューティングシステムS1は、アプリケーション112から受信されたユーザグループベースのコンテンツ要求の中で受信された要求識別子およびコンテキスト信号を、コンピューティングシステムS1によって所有される秘密鍵を使って暗号化することができる。要求識別子の暗号化は、確率的対称暗号化アルゴリズムを、鍵を使って要求識別子の平文に対して利用することができる。同様に、コンテキスト信号の暗号化は、確率的対称暗号化アルゴリズムを、鍵を使ってコンテキスト信号の平文に対して利用することができる。各要求は、暗号化された要求識別子、暗号化されたコンテキスト信号、およびユーザグループ識別子についての暗号化された複合メッセージを含み得る。
ユーザグループ識別子ごとに1つの要求を送ることによっては、コンピューティングシステムS2は、どのユーザグループ識別子が、同じアプリケーション112または同じクライアントデバイス110からのものであるかを推論することができない。たとえば、コンピューティングシステムS1は、同じときに、または短い時間期間内に、たとえば、数秒、数ミリ秒、もしくは数分以内に多くの異なるクライアントデバイスについて、コンピューティングシステムS2へ要求を送ることができる。多くの異なる要求が多くの異なるクライアントデバイスについて送られ、各々が1つのユーザグループ識別子についてであるので、コンピューティングシステムS2は、特定のクライアントデバイスについてのユーザグループ識別子を相関させることができない。
コンピューティングシステムS2は、ユーザグループ識別子に対してk-匿名性を強制する(310)。コンピューティングシステムS2は、ユーザグループベースのコンテンツ要求の中で、アプリケーション112から受信されたユーザグループ識別子に対して、k-匿名性を強制することができ、そうすることによって、共通でないユーザグループ識別子は、クライアントデバイス110のユーザに相関されなくてよい。
ユーザグループ識別子に対してk-匿名性を強制するために、コンピューティングシステムS2は、各要求の複合メッセージを、複合メッセージを暗号化するのに使われる公開鍵に対応する、その秘密鍵を使って解読する。上述したように、ユーザグループ識別子についての複合メッセージは、ユーザグループ識別子と、アプリケーション公開鍵(たとえば、ユーザグループベースのコンテンツ要求を送るアプリケーション112の公開鍵であって、アプリケーション112によって機密に維持されるアプリケーション秘密鍵に対応する)と、ユーザグループ識別子についてのSRRと、デジタル署名とを含み得る。
コンピューティングシステムS2は次いで、複合メッセージを認証することができる。これは、複数の認証を含み得る。コンピューティングシステムS2は、複合メッセージの他のコンテンツが修正されていないことを確実にするために、アプリケーション公開鍵を使って、デジタル署名を認証しようと試みることができる。コンピューティングシステムS2は、たとえば、SRRのタイムスタンプによって表される時間が、認証が実施される現在時刻の閾時間量以内であることを確実にすることによって、SRRの鮮度を認証しようと試みることができる。コンピューティングシステムS2は、SRRのコンテンツが修正されていないことを確実にするために、信用トークン発行者の公開鍵を使って、SRRのデジタル署名を認証しようと試みることができる。コンピューティングシステムS2は、SRRの、公開元での起源がコンピューティングシステムS2のeTLD+1と合致することを確実にするために、SRRの公開元起源を認証しようと試みることができる。コンピューティングシステムS2は、たとえば、SRRのバインディング値がユーザグループ識別子およびアプリケーション公開鍵の暗号学的ハッシュであることを確実にすることによって、バインディング値を認証しようと試みることができる。たとえば、コンピューティングシステムS2は、同じ暗号化関数および鍵を使って暗号学的ハッシュを再計算し、このハッシュをバインディング値と比較することができる。
これらの認証は、信用できない可能性があるアプリケーション、たとえば、アプリケーション112、または信用できないコンピューティングシステムS1を検出するのに使うことができる。認証がすべて成功した場合、コンピューティングシステムS2は、ユーザグループ識別子に対してk-匿名性を強制することができる。個々のユーザグループ識別子がk-匿名性を満足するかどうかを判断するために、コンピューティングシステムS1は、ユーザグループ識別子を含んでいた要求の数、たとえば、ユーザグループ識別子を含む要求を送ったアプリケーションの数を、匿名性閾と比較することができる。要求の数が匿名性閾を満たすか、または超える場合、コンピューティングシステムS1は、ユーザグループ識別子がk-匿名性を満足すると判断することができる。ユーザグループ識別子が偽(たとえば、アプリケーション112によって送られた偽の識別子)であるか、またはk-匿名性を満足しない場合、コンピューティングシステムS2は、要求を無視し、そのユーザグループ識別子について、コンピューティングシステムS1へリターン要求を送らなくてよい。
偽でなく、k-匿名性に合格するユーザグループ識別子について、コンピューティングシステムS2は、コンピューティングシステムS1へリターン要求を送信する(312)。ユーザグループ識別子についてのこのリターン要求は、ユーザグループ識別子について受信された、暗号化されたコンテキスト信号(たとえば、コンピューティングシステムS2へ送られた要求の中で受信されたコンピューティングシステムS1の鍵を使って暗号化されたコンテキスト信号)と、二重暗号化要求識別子と、解読されたユーザグループ識別子とを含み得る。つまり、コンピューティングシステムS1から受信された要求の中で受信された、暗号化された複合メッセージのユーザグループ識別子が、k-匿名性に合格し、偽でないとき、コンピューティングシステムS2は、すでに暗号化された要求識別子(コンピューティングシステムS1の秘密鍵を使って暗号化された)を、コンピューティングシステムS2の秘密鍵を使って暗号化することができる(やはり、確率的対称鍵暗号化であってよい)。コンピューティングシステムS2は次いで、この二重暗号化要求識別子と、要求の中で受信された、暗号化されたコンテキスト信号と、ユーザグループ識別子の平文値(コンピューティングシステムS1からの要求とともに、暗号化された形で受信された)とを含むリターン要求を生成し、送信することができる。
コンピューティングシステムS1は、DSP/デジタルコンポーネント提供者排除を各リターン要求に適用する(314)。コンピューティングシステムS1は、暗号化されたコンテキスト信号を、コンテキスト信号を平文で回復するために、その秘密鍵を使って解読することができる。これらのコンテキスト信号は、選択されたコンテンツが提示されるための公開元リソースのドメイン、URL、またはURIを含み得る。コンピューティングシステムS1は、この情報を、ドメイン、URL、またはURIを、デジタルコンポーネントを公開元のリソースでの提示のために提供するのに適格であるDSPおよび/またはデジタルコンポーネント提供者にマップするルックアップテーブルと比較することができる。公開元用のSSP170は、ルックアップテーブルをコンピューティングシステムS1にアップロードすることができる。こうすることにより、コンピューティングシステムS1はDSPフィルタを実装することが可能になり、これは、DSPのコンピュータへ送られる要求の数、たとえば、毎秒当たりの照会の数を大幅に削減することができ、したがって、DSPのコンピュータによる、ネットワーク使用と、要求にサービスする負担とを削減する。
いくつかの実装形態では、ユーザグループ識別子は、ユーザグループ識別子が意図しているDSPおよび/またはデジタルコンポーネント提供者のセットを指定するための十分な情報を符号化することができる。コンピューティングシステムS1は、ユーザグループ識別子によって指定されたDSPおよび/またはデジタルコンポーネント提供者のセットと、ルックアップテーブルフィルタリングを乗り切るDSPおよび/またはデジタルコンポーネントのセットの和集合を判断することができる。
コンピューティングシステムS1は、ユーザグループベースのコンテンツ選択パラメータ要求を生成し、1つまたは複数のDSP150へ送信する(316)。コンピューティングシステムS2から受信された各リターン要求について、コンピューティングシステムS1は、ユーザグループベースのコンテンツ要求を、2つのセットの和集合の中で各DSPへ送ることができ、各デジタルコンポーネント提供者用のDSPを、2つのセットの和集合に含める。これらの選択パラメータ要求の各々は、リターン要求の二重暗号化ユーザグループ識別子と、リターン要求のユーザグループ識別子と、リターン要求に対応する平文でのコンテキスト信号とを含み得る。したがって、クライアントデバイス110から受信されたユーザグループベースのコンテンツ要求について、コンピューティングシステムS1は、1つまたは複数のDSP150の各々へ、k-匿名性を満足したユーザグループベースのコンテンツ要求の各ユーザグループ識別子についてのそれぞれの選択パラメータ要求を送ることができる。
各DSP150は、コンピューティングシステムS2へ選択パラメータを送信することができる(318)。たとえば、各DSP150は、DSP150によって表されるデジタルコンポーネント提供者の代わりに、ユーザグループ識別子および/またはコンテキストデータに基づいて1つまたは複数のデジタルコンポーネントを選択することができる。各デジタルコンポーネントに対して、DSP150はまた、ユーザグループ識別子および/またはコンテキストデータに基づいて、デジタルコンポーネントに対する選択パラメータを生成または選択し得る。
DSP150は次いで、選択パラメータ要求の中で受信された二重暗号化要求識別子と、選択されたデジタルコンポーネント用の署名付き創作要素と、判断された選択パラメータと、選択されたデジタルコンポーネントを作成/公開したデジタルコンポーネント提供者を一意に識別するデジタルコンポーネント提供者識別子とを含む選択パラメータ応答を生成することができる。DSP150は次いで、選択パラメータ応答をコンピューティングシステムS2へ送信することができる。
コンピューティングシステムS2は、DSP150から受信された選択パラメータに対してk-匿名性を適用する(320)。いくつかの実装形態では、MPCクラスタ130は、k-匿名性を強制し、事前および事後共有選択パラメータの機密性と、SSP170に割り振られたシェア量とを維持するのに、複数のルックアップテーブルを使う。DSP150から受信された選択パラメータは、事前共有選択パラメータであってよい。たとえば、公開元用のSSP170は、選択パラメータ境界と、対応する選択パラメータ識別子とを含む第1のルックアップテーブル(Table 1(表1))をアップロードすることができる。
このテーブルにおいて、境界は、各範囲の上限を定義する。選択パラメータが特定の範囲内である場合、コンピューティングシステムS2は、その範囲用の選択パラメータ識別子を選択パラメータに割り当てる。
選択パラメータ識別子は、SSP170およびコンピューティングシステムS2に対してのみ知られている特定の選択パラメータ範囲の任意の一意の識別子以外のセマンティクスを有することができない。コンピューティングシステムS2は、このルックアップテーブルにアクセスし、DSP150から受信された選択パラメータに対応する選択パラメータ識別子を識別することができる。コンピューティングシステムS2は、選択パラメータ応答の中でDSP150から受信された各選択パラメータについての選択パラメータ識別子を識別することができる。
コンピューティングシステムS2は次いで、選択パラメータ応答、選択パラメータ識別子、およびデジタルコンポーネント提供者識別子の署名付き創作要素のうちの1つまたは複数に対してk-匿名性を強制することができる。このk-匿名性技法は、クライアントデバイス110から受信されたユーザグループベースのコンテンツ要求に基づいて生成された選択パラメータ応答を含む、多くの異なるクライアントデバイスからMPCクラスタ130によって受信されたユーザグループベースのコンテンツ要求向けの選択パラメータ応答を伴うことができる。個々の選択パラメータがk-匿名性を満足するかどうかを判断するために、コンピューティングシステムS2は、個々の選択パラメータを含む選択パラメータ応答の数を匿名性閾と比較することができる。その数が匿名性閾を満たすか、または超える場合、コンピューティングシステムS2は、選択パラメータがk-匿名性を満足すると判断することができる。コンピューティングシステムS2は、k-匿名性を満足しないどの選択パラメータも無視することができる。
k-匿名性を満足する各選択パラメータについて、コンピューティングシステムS2は、選択パラメータ要素を生成し、コンピューティングシステムS1へ送信する(322)。選択パラメータ用の選択パラメータ要素は、選択パラメータに対応する暗号化された要求識別子、選択パラメータに対応する署名付き創作要素、選択パラメータに対応する選択パラメータ識別子、および/または選択パラメータに対応するデジタルコンポーネントを作成/公開したデジタルコンポーネント提供者を含み得る。たとえば、コンピューティングシステムS2は、コンピューティングシステムS1の秘密鍵を使って暗号化されている、暗号化された要求識別子を回復するために、二重暗号化要求識別子を、その秘密鍵を使って解読することができる。
コンピューティングシステムS1は、選択パラメータ要素に創作排除を適用する(324)。コンピューティングシステムS1は、各要求識別子を平文で回復するために、各選択パラメータ要素の要求識別子を、その秘密鍵を使って解読することができる。上述したように、各要求識別子は、選択されたコンテンツが提示されるためのリソースについてのノンスおよびリソースロケータを含む複合メッセージである。リソースロケータは、創作排除を適用するのに使うことができる。
上述したように、公開元は、そのリソースを用いて、特定のプロパティを有する(たとえば、特定のカテゴリに関連したコンテンツを有する)デジタルコンポーネントを提示させなくてよい。公開元用のSSP170は、創作排除をサポートするように、デジタルコンポーネントプロパティのセットを定義することができる。そのようなプロパティは、有限離散セット、すなわちP={P1,P2,...,Pn}と表すことができる。SSP170は任意選択で、これらのプロパティを、プロパティが、署名付き創作要素に含めるためにどのように暗号化され得るかと同様の、SSPの秘密暗号化鍵を使う決定性対称暗号化アルゴリズムを使って暗号化することができる。
コンピューティングシステムS1は、各公開元についてのプロパティのセットを、公開元用のSSP170から定期的に取得することができる。SSP170は、各公開元についてのプロパティのセットをローカルに、たとえば、キャッシュに記憶することができる。たとえば、コンピューティングシステムS1は、以下のTable 2(表2)と同様のデータ構造を維持することができる。
このテーブルにおいて、各プロパティ(たとえば、P1、P41、など)は、デジタルコンポーネントのコンテンツのカテゴリ、デジタルコンポーネントによって示されるオブジェクト、またはデジタルコンポーネントの他のプロパティであってよい。各リソースロケータについて、創作排除列中のプロパティのセットは、デジタルコンポーネントに割り当てられる場合、デジタルコンポーネントが、リソースロケータに対応するリソースを用いる提示のために提供されるべきでないことを示すプロパティを示す。
選択パラメータ要素のための創作排除を適用するために、コンピューティングシステムS1は、署名付き創作要素から、署名付き創作要素のメタデータに含まれるプロパティのセットを取得することができる。コンピューティングシステムS1は次いで、署名付き創作要素のプロパティのセットと、選択パラメータ要素に含まれる要求識別子のリソースロケータのための創作排除として定義されるプロパティのセットの交わりを計算することができる。交わりが空である場合、署名付き創作要素のデジタルコンポーネントは、リソースロケータに対応するリソースを用いる提示に適格である。そうでない場合、コンピューティングシステムS1は、創作要素およびその選択パラメータ要素を無視することができる。
コンピューティングシステムS1は、ユーザグループベースのコンテンツ要求に応答して、アプリケーション112に提供するためのコンテンツを選択する(326)。アプリケーション112から受信されたユーザグループベースのコンテンツ要求は、そのノンスおよびコンテンツがそのために選択されているリソースのリソースロケータに基づく、対応する要求識別子を有する。この要求識別子をもつ選択パラメータ要素に創作排除を適用した後、コンピューティングシステムS1は、この要求識別子を用いて受信された選択パラメータ要素すべてのセットを収集することができる。コンピューティングシステムS1は次いで、選択パラメータ要素のセットの中に含まれる選択パラメータ識別子に基づいて、デジタルコンポーネントを選択することができる。
いくつかの実装形態では、公開元には、選択されたデジタルコンポーネント用の選択パラメータの部分が割り振られ、シェアはSSP170および/またはDSP150へ渡る。選択パラメータは金額を表すことができ、各シェアは、この金額の一部分であってよい。選択パラメータ要素の中の選択パラメータ識別子は、事前共有選択パラメータに対応する。シェアが判断されるやり方は、保護されるべき機密情報である。そうするために、コンピューティングシステムS1は、2つのルックアップテーブルを使うことができ、こうすることにより、コンピューティングシステムS1が、シェアが判断されるやり方についての情報を取得するのを防ぐ。他の実装形態では、準同型暗号化などの暗号化技法が選択パラメータに対して使われてもよい。ただし、この結果、ルックアップテーブルを使うのに比べ、レイテンシが大幅に増え、情報を暗号化し、解読するための計算リソース(たとえば、CPU周期)が求められ、トラブルシューティングの複雑さが増し、効率が大幅に削減される。
第1のルックアップテーブル(以下のTable 3(表3))は、リソースロケータをデジタルコンポーネント識別子および共有コードにマップすることができる。SSP170は、このルックアップテーブルをコンピューティングシステムS1にアップロードすることができる。共有コードは、SSP170以外のエンティティにとっては無意味であり得る。
ユーザグループベースのコンテンツ要求のために、コンピューティングシステムS1は、各署名付き創作要素向けの共有コードを、選択パラメータ要素のセットの中でルックアップすることができる。コンピューティングシステムS1は、署名付き創作要素用の共有コードを、要求識別子のリソースロケータおよび署名付き創作要素のデジタルコンポーネント識別子を使ってルックアップすることができる。
コンピューティングシステムS1は次いで、第2のルックアップテーブル(以下のTable 4(表4))を、選択パラメータ要素のセットの中で各署名付き創作要素についての選択パラメータ識別子をルックアップするのに使うことができる。SSP170は、このルックアップテーブルをコンピューティングシステムS1にアップロードすることもできる。
公開元リターン識別子は、公開元が受信する選択パラメータのシェアに対応する。公開元リターン識別子の値は単調であってよく、すなわち、公開元リターン識別子が大きくなるほど、公開元が受信する量が増える。
コンピューティングシステムS1は、創作要素(Table 3(表3)を使って識別される)用の共有コードと、創作要素についての選択パラメータ識別子とを使って、選択パラメータ要素のセットの中で、各署名付き創作要素についての公開元リターン識別子をルックアップすることができる。
同じ要求識別子をもつすべての適格な創作要素、たとえば、選択パラメータ要素のセットの中の各創作要素の中で、コンピューティングシステムS1は、最も大きい公開元リターン識別子に対応する署名付き創作要素を選択する。
コンピューティングシステムS1は、ユーザグループコンテンツ応答をアプリケーション112へ送信する(328)。図2の動作210に関して上述したように、ユーザグループコンテンツ応答は、選択された署名付き創作要素と、選択された署名付き創作要素についての公開元リターン識別子と、署名付き創作要素のデジタルコンポーネントについてのデジタルコンポーネント提供者識別子と、署名付き創作要素を選択するためにコンテンツ選択プロセスが実施された時間を示すタイムスタンプとを含むコンテンツのセットを含み得る。ユーザグループコンテンツ応答は、コンピューティングシステムS1によって生成されたデジタル署名も含むことができる。このユーザグループコンテンツ要求を受信した後、アプリケーション112は、SSP170へコンテキストコンテンツ要求を送信し、図2のプロセス200を、リソースを用いる提示のために最終的デジタルコンポーネントを選択するために続けることができる。
図4は、上述の動作を実施するために使うことができる例示的コンピュータシステム400のブロック図である。システム400は、プロセッサ410、メモリ420、記憶デバイス430、および入力/出力デバイス440を含む。構成要素410、420、430、および440の各々は、たとえば、システムバス450を使って相互接続され得る。プロセッサ410は、システム400内での実行のための命令を処理することが可能である。いくつかの実装形態では、プロセッサ410は、シングルスレッドのプロセッサである。別の実装形態では、プロセッサ410はマルチスレッドプロセッサである。プロセッサ410は、メモリ420の中または記憶デバイス430上に記憶された命令を処理することが可能である。
メモリ420は、システム400内に情報を記憶する。一実装形態では、メモリ420はコンピュータ可読媒体である。いくつかの実装形態では、メモリ420は揮発性メモリユニットである。別の実装形態では、メモリ420は不揮発性メモリユニットである。
記憶デバイス430は、システム400に大容量記憶を提供することが可能である。いくつかの実装形態では、記憶デバイス430はコンピュータ可読媒体である。様々な異なる実装形態では、記憶デバイス430は、たとえば、ハードディスクデバイス、光ディスクデバイス、ネットワークを介して複数のコンピューティングデバイスによって共有される記憶デバイス(たとえば、クラウド記憶デバイス)、またはいくつかの他の大容量記憶デバイスを含むことができる。
入力/出力デバイス440は、システム400のための入力/出力動作を提供する。いくつかの実装形態では、入出力デバイス440は、ネットワークインターフェースデバイス、たとえば、Ethernetカード、シリアル通信デバイス、たとえば、RS-232ポート、および/またはワイヤレスインターフェースデバイス、たとえば、802.11カードのうちの1つまたは複数を含み得る。別の実装形態では、入力/出力デバイスは、入力データを受信するとともに出力データを外部デバイス460、たとえば、キーボード、プリンタ、およびディスプレイデバイスへ送るように構成されたドライバデバイスを含むことができる。しかしながら、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビクライアントデバイスなど、他の実装形態が使われてもよい。
図4では、例示的処理システムが記述されているが、本明細書に記載する主題および機能的動作の実装形態は、他のタイプのデジタル電子回路構成で、またはコンピュータソフトウェア、ファームウェア、もしくは本明細書において開示した構造およびそれらの構造的等価物を含むハードウェアで、またはそれらのうちの1つもしくは複数からなる組合せで実装することができる。
本明細書に記載する主題および動作の実施形態は、デジタル電子回路構成で、またはコンピュータソフトウェア、ファームウェア、もしくは本明細書において開示した構造およびそれらの構造的等価物を含むハードウェアで、またはそれらのうちの1つもしくは複数からなる組合せで実装することができる。本明細書で説明する題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、(1つまたは複数の)コンピュータ記憶媒体上で符号化された、コンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替または追加として、プログラム命令は、データ処理装置による実行のための、好適な受信機装置への送信のために情報を符号化するために生成される、人工的に生成された伝搬信号、たとえば、機械生成された電気信号、光信号、または電磁信号上で符号化され得る。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであり得るか、またはそれらに含まれ得る。その上、コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号の中で符号化されたコンピュータプログラム命令のソースまたは宛先であり得る。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であり得るか、またはそれらに含まれ得る。
本明細書に記載した動作は、1つもしくは複数のコンピュータ可読記憶デバイス上に記憶された、または他のソースから受信されたデータに対して、データ処理装置によって実施される動作として実装されてよい。
「データ処理装置」という用語は、例として、プログラム可能プロセッサ、コンピュータ、システムオンチップ、または上記の複数のもの、もしくは組合せを含む、データを処理するための、あらゆる種類の装置、デバイス、および機械を包含する。装置は、専用論理回路構成、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置は、ハードウェアに加えて、当該のコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つまたは複数の組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービス、分散コンピューティング基盤およびグリッドコンピューティング基盤などの様々な異なるコンピューティングモデル基盤を実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている)は、コンパイル型またはインタープリタ型言語、宣言型または手続き型言語を含む、どの形のプログラミング言語でも書かれてよく、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、オブジェクト、もしくはコンピューティング環境における使用に適した他のユニットとして、を含む、どの形でも展開することができる。コンピュータプログラムは、ファイルシステムの中のファイルに対応し得るが、そうである必要はない。プログラムは、他のプログラムもしくはデータ(たとえば、マークアップ言語文書の中に記憶された1つまたは複数のスクリプト)を保持するファイルの一部分の中に、当該のプログラムに専用の単一のファイルの中に、または複数の協調ファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)の中に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに配置されるかもしくは複数のサイトにわたって分散され通信ネットワークによって相互接続される、複数のコンピュータ上で実行されるように展開され得る。
本明細書に記載したプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによってアクションを実施するための1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能プロセッサによって実施され得る。プロセスおよび論理フローは、特殊目的論理回路構成、たとえば、FPGA(フィールドプログラム可能ゲートアレイ)やASIC(特定用途向け集積回路)によって実施することもでき、装置が、そのような回路構成として実装されてもよい。
コンピュータプログラムの実行に適したプロセッサは、例として、汎用および特殊目的マイクロプロセッサの両方を含む。一般に、プロセッサは、命令およびデータを読取り専用メモリ、もしくはランダムアクセスメモリ、またはその両方から受信することになる。コンピュータの必須要素は、命令に従ってアクションを実施するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらからデータを受信することもしくはそれらにデータを転送すること、またはその両方を行うために、動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、ほんの数例を挙げると、別のデバイス、たとえば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に埋め込まれ得る。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、不揮発性媒体、および不揮発性メモリデバイスを含む。プロセッサおよびメモリは、専用論理回路構成によって増補され得るか、または専用論理回路構成の中に組み込まれ得る。
ユーザとの対話を提供するために、本明細書に記載される主題の実施形態は、ユーザに情報を表示するための、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびにキーボードおよび、ユーザがコンピュータに入力を提供することができる、たとえば、マウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装することができる。他の種類のデバイスも、ユーザとの対話を提供するために使用され得る。たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってもよく、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受け取られてもよい。加えて、コンピュータは、ユーザが使用するデバイスに文書を送り、そこから文書を受信することによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザから受信された要求に応じて、ウェブブラウザにウェブページを送ることによって、ユーザと対話し得る。
本明細書に記載する主題の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含む、もしくはミドルウェア構成要素、たとえば、アプリケーションサーバを含む、もしくはフロントエンド構成要素、たとえば、本明細書に記載する主題の実装形態とユーザが対話し得るためのグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータ、または1つもしくは複数のそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素のどの組合せも含むコンピューティングシステムで実装することができる。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって、相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントとサーバは概して、互いから離れており、通常、通信ネットワークを通して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で稼動するとともに互いとのクライアントサーバ関係を有するコンピュータプログラムにより発生する。いくつかの実施形態では、サーバは、(たとえば、クライアントデバイスと対話するユーザにデータを表示するとともにそのユーザからユーザ入力を受信するために)データ(たとえば、HTMLページ)をクライアントデバイスへ送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザ対話の結果)は、サーバにおいてクライアントデバイスから受信され得る。
本明細書は、多くの具体的な実装形態詳細を含むが、これらは、任意の発明の、または特許請求され得るものの範囲において、限定と解釈されるべきではなく、特定の発明の特定の実施形態に特有な特徴の記述として解釈されるべきである。別個の実施形態の文脈において本明細書で説明されるいくつかの特徴はまた、単一の実施形態において組み合わせて実施され得る。反対に、単一の実施形態の文脈において説明される様々な特徴はまた、複数の実施形態において別々に、または任意の好適な部分組合せにおいて実施され得る。その上、特徴はいくつかの組合せで働くものとして上記で説明されることがあり、当初はそのようなものとして特許請求されることさえあるが、特許請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除することができ、特許請求される組合せは、部分組合せまたは部分組合せの変形形態を対象としてよい。
同様に、動作は、特定の順序で図面に示されるが、これは、望ましい結果を達成するために、そのような動作が図示された特定の順序でもしくは順番に行われること、または例示したすべての動作が行われることを必要とするものと理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上記で説明した実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明したプログラム構成要素およびシステムが、一般に、単一のソフトウェア製品の中に一緒に組み込まれ得るか、または複数のソフトウェア製品の中にパッケージ化され得ることを理解されたい。
以上、本主題の特定の実施形態について記載した。他の実施形態が以下の特許請求の範囲内に入る。いくつかのケースでは、請求項に具陳されるアクションは、異なる順序で実施され、依然として望ましい結果を達成し得る。加えて、添付の図面に示されるプロセスは、望ましい結果を達成するために、必ずしも図示の特定の順序または逐次的な順序を必要とするとは限らない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利であり得る。
105 データ通信ネットワーク、ネットワーク
110 クライアントデバイス
130 MPCクラスタ
150 需要側プラットフォーム(DSP)
170 供給側プラットフォーム(SSP)
400 コンピュータシステム、システム
410 プロセッサ、構成要素
420 メモリ、構成要素
430 記憶デバイス、構成要素
440 入力/出力デバイス、構成要素
450 システムバス
460 外部デバイス

Claims (12)

  1. 第1のマルチパーティ計算(MPC)コンピューティングシステムによって、およびクライアントデバイスから、暗号化されたユーザグループ識別子のセットを含むコンテンツ要求を受信するステップであって、各暗号化されたユーザグループ識別子は、第2のMPCコンピューティングシステムの第1の暗号化鍵を使って暗号化される、ステップと、
    前記第1のMPCコンピューティングシステムによって、各暗号化されたユーザグループ識別子について、前記第2のMPCコンピューティングシステムへ要求を送信するステップであって、前記要求は、前記暗号化されたユーザグループ識別子を含む、ステップと、
    前記第2のMPCコンピューティングシステムによって実施されたk-匿名性プロセスを満足する各ユーザグループ識別子について、
    前記第2のMPCコンピューティングシステムから前記第1のMPCコンピューティングシステムによって、前記ユーザグループ識別子の平文値を受信することと、
    前記第1のMPCコンピューティングシステムによって、1つまたは複数のプラットフォームへ選択パラメータ要求を送信することであって、前記選択パラメータ要求は、前記ユーザグループ識別子の前記平文値を含む、送信することとを含むステップと、
    前記第1のMPCコンピューティングシステムによって、および前記第2のMPCコンピューティングシステムから、対応するデジタルコンポーネント用の創作要素および前記デジタルコンポーネントについての選択パラメータ識別子を各々が含む選択パラメータ要素のセットを受信するステップと、
    前記第1のMPCコンピューティングシステムによって、前記選択パラメータ識別子に基づいて所与のデジタルコンポーネントを選択するステップと、
    前記第1のMPCコンピューティングシステムによって、および前記クライアントデバイスへ、前記デジタルコンポーネント用の前記創作要素を送信するステップとを含む方法。
  2. 前記コンテンツ要求は、デジタルコンポーネントが要求されているリソースについてのリソースロケータを含み、前記方法は、
    前記第1のMPCコンピューティングシステムによって、前記リソースロケータおよび前記コンテンツ要求に対応するノンスに基づいて要求識別子を生成するステップと、
    前記第1のMPCコンピューティングシステムによって、前記要求識別子を暗号化するステップとをさらに含み、
    前記要求は、前記暗号化された要求識別子を含む、請求項1に記載の方法。
  3. 前記k-匿名性プロセスを満足する各ユーザグループ識別子の前記平文値を受信することは、前記k-匿名性プロセスを満足する各ユーザグループ識別子についてのリターン要求を受信することを含み、各リターン要求は、前記ユーザグループ識別子と、前記第2のMPCコンピューティングシステムの第2の暗号化鍵を使って、前記暗号化された要求識別子を暗号化することによって、前記第2のMPCコンピューティングシステムによって生成された二重暗号化要求識別子とを含み、
    各選択パラメータ要求は前記二重暗号化要求識別子を含み、
    各選択パラメータ要素は、プラットフォームから、前記創作要素および前記選択パラメータ要素の前記選択パラメータ識別子とともに二重暗号化要求を受信した後、前記二重暗号化要求識別子を解読することによって、前記第2のMPCコンピューティングシステムによって生成された、前記暗号化された要求識別子を含む、請求項2に記載の方法。
  4. 前記第2のMPCコンピューティングシステムは、
    前記1つまたは複数のプラットフォームの各々から、前記二重暗号化要求識別子、それぞれのデジタルコンポーネント用のそれぞれの創作要素、前記それぞれのデジタルコンポーネント用の選択パラメータ、および前記それぞれのデジタルコンポーネントを公開するデジタルコンポーネント提供者識別子を含む選択パラメータ応答を受信し、
    各選択パラメータ応答について、前記選択パラメータが含まれる選択パラメータ値の範囲に基づいて、対応する選択パラメータ識別子を識別し、
    前記選択パラメータ応答および前記選択パラメータ識別子に基づいて、前記選択パラメータ要素を生成する、請求項3に記載の方法。
  5. 前記コンテンツ要求は、各ユーザグループ識別子について、暗号化された複合メッセージを含み、前記暗号化された複合メッセージは、前記ユーザグループ識別子と、前記コンテンツ要求を発動した前記クライアントデバイスのアプリケーション用のアプリケーション公開鍵と、前記クライアントデバイスが信用できると判断したことに応答して、信用トークン発行者によって発行された署名付き引換えレコードとを含む複合メッセージの暗号化されたバージョンを含む、請求項1から4のいずれか一項に記載の方法。
  6. 前記コンテンツ要求はコンテキスト信号を含み、前記方法は、
    前記コンテキスト信号がk-匿名性を満足すると判断するステップと、
    前記コンテキスト信号がk-匿名性を満足すると判断したことに応答して、
    前記第1のMPCコンピューティングシステムによって、前記コンテキスト信号を暗号化するステップと、
    前記要求の中に、k-匿名性を満足する各コンテキスト信号を含めるステップとをさらに含む、請求項1から5のいずれか一項に記載の方法。
  7. 各創作要素の中で、前記対応するデジタルコンポーネントについてのプロパティの第1のセットを識別するステップと、
    ルックアップテーブル中で、前記リソースの公開元によって排除される排除プロパティの第2のセットを識別するステップとをさらに含み、
    前記第1のMPCコンピューティングシステムによって、前記選択パラメータ識別子に基づいて所与のデジタルコンポーネントを選択するステップは、
    各創作要素について、前記創作要素についてのプロパティの前記第1のセットの中の1つまたは複数のプロパティが、排除されたプロパティと一致するかどうかを判断するステップと、
    排除されたプロパティと一致する少なくとも1つのプロパティを有する各創作要素を排除するステップとを含む、請求項2から4のいずれか一項に記載の方法。
  8. 前記第1のMPCコンピューティングシステムによって、前記選択パラメータ識別子に基づいて所与のデジタルコンポーネントを選択するステップは、
    各選択パラメータ要素について、
    第1のルックアップテーブル中で、リソースについてのリソースロケータ、および前記創作要素の前記対応するデジタルコンポーネントを公開するデジタルコンポーネント提供者に対するデジタルコンポーネント識別子に基づいて、前記選択パラメータ要素の前記創作要素用の共有コードを識別することと、
    第2のルックアップテーブル中で、前記共有コードおよび前記選択パラメータ要素の前記選択パラメータ識別子に基づいて公開元リターン識別子を識別することとを含むステップと、
    前記所与のデジタルコンポーネントとして、最も高い公開元リターン識別子を有する所与の選択パラメータ要素のデジタルコンポーネントを選択するステップとを含む、請求項1から7のいずれか一項に記載の方法。
  9. 前記第1のMPCコンピューティングシステムによって、および前記クライアントデバイスへ、前記デジタルコンポーネント用の前記創作要素を送信することは、前記創作要素と、前記所与の選択パラメータ要素についての前記公開元リターン識別子と、前記所与のデジタルコンポーネントについてのデジタルコンポーネント提供者識別子と、前記所与のデジタルコンポーネントが選択された時間を示すタイムスタンプと、デジタル署名とを含むコンテンツ要求結果を送信することを含む、請求項8に記載の方法。
  10. 前記クライアントデバイスは、第2のプラットフォームへ第2のコンテンツ要求を送信し、
    前記第2のコンテンツ要求は、前記コンテンツ要求結果および追加コンテキスト信号を含み、
    前記第2のプラットフォームは、前記所与のデジタルコンポーネントと、前記追加コンテキスト信号に基づいて選択された1つまたは複数のデジタルコンポーネントとを含むデジタルコンポーネントのセットの中から、第2のデジタルコンポーネントを、前記クライアントデバイスにおける表示のために選択する、請求項9に記載の方法。
  11. 1つまたは複数のプロセッサと、
    命令を記憶した1つまたは複数の記憶デバイスとを備え、前記命令は、前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、請求項1から10のいずれか一項に記載の方法を実行させる、システム。
  12. 1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、請求項1から10のいずれか一項に記載の方法を実行させる命令を記録するコンピュータ可読記録媒体。
JP2022568895A 2020-08-02 2021-04-21 機密情報を保護するためのマルチパーティ計算およびk-匿名性技法の使用 Active JP7475492B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IL276440A IL276440A (en) 2020-08-02 2020-08-02 Using multilateral calculation techniques and k-anonymity to protect confidential information
IL276440 2020-08-02
PCT/US2021/028354 WO2022031329A1 (en) 2020-08-02 2021-04-21 Using multi-party computation and k-anonymity techniques to protect confidential information

Publications (2)

Publication Number Publication Date
JP2023527709A JP2023527709A (ja) 2023-06-30
JP7475492B2 true JP7475492B2 (ja) 2024-04-26

Family

ID=80117619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022568895A Active JP7475492B2 (ja) 2020-08-02 2021-04-21 機密情報を保護するためのマルチパーティ計算およびk-匿名性技法の使用

Country Status (7)

Country Link
US (1) US20230144140A1 (ja)
EP (1) EP4128645A1 (ja)
JP (1) JP7475492B2 (ja)
KR (1) KR20220163483A (ja)
CN (1) CN115552838A (ja)
IL (1) IL276440A (ja)
WO (1) WO2022031329A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240163259A1 (en) * 2022-06-02 2024-05-16 Google Llc Privacy preserving group-based content distribution
CN117614612A (zh) * 2024-01-24 2024-02-27 蓝象智联(杭州)科技有限公司 一种保护隐私的多方数据统计方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012165518A1 (ja) 2011-06-02 2012-12-06 日本電気株式会社 分散匿名化システム、分散匿名化装置及び分散匿名化方法
JP2013084063A (ja) 2011-10-06 2013-05-09 Dentsu Inc 端末装置、サーバ装置、ネットワークシステム、通信方法及び通信プログラム
JP2014170369A (ja) 2013-03-04 2014-09-18 Nec Corp 情報処理装置、情報処理システム、及び、情報匿名化方法
US20180096166A1 (en) 2016-09-30 2018-04-05 Northwestern University System and Method for Secure Query Processing for Private Data Networks
US20200074112A1 (en) 2018-08-31 2020-03-05 Visa International Service Association System, Method, and Computer Program Product for Maintaining User Privacy in Advertisement Networks

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3477527A1 (en) * 2017-10-31 2019-05-01 Twinpeek Privacy management
JP7132350B2 (ja) * 2018-04-05 2022-09-06 グーグル エルエルシー ブラウザクッキーの置換えとしてのドメイン固有ブラウザ識別子

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012165518A1 (ja) 2011-06-02 2012-12-06 日本電気株式会社 分散匿名化システム、分散匿名化装置及び分散匿名化方法
JP2013084063A (ja) 2011-10-06 2013-05-09 Dentsu Inc 端末装置、サーバ装置、ネットワークシステム、通信方法及び通信プログラム
JP2014170369A (ja) 2013-03-04 2014-09-18 Nec Corp 情報処理装置、情報処理システム、及び、情報匿名化方法
US20180096166A1 (en) 2016-09-30 2018-04-05 Northwestern University System and Method for Secure Query Processing for Private Data Networks
US20200074112A1 (en) 2018-08-31 2020-03-05 Visa International Service Association System, Method, and Computer Program Product for Maintaining User Privacy in Advertisement Networks

Also Published As

Publication number Publication date
KR20220163483A (ko) 2022-12-09
WO2022031329A1 (en) 2022-02-10
EP4128645A1 (en) 2023-02-08
IL276440A (en) 2022-03-01
JP2023527709A (ja) 2023-06-30
US20230144140A1 (en) 2023-05-11
CN115552838A (zh) 2022-12-30

Similar Documents

Publication Publication Date Title
US11790111B2 (en) Verifiable consent for privacy protection
US20230050222A1 (en) Cryptographically secure request verification
US20220300643A1 (en) Cryptographically secure data protection
JP7238213B2 (ja) コンテンツ選択プロセスの完全性を改善するためのセキュアマルチパーティ計算の使用
JP7319380B2 (ja) ブラウザクッキーを保護する
JP7475492B2 (ja) 機密情報を保護するためのマルチパーティ計算およびk-匿名性技法の使用
KR102608325B1 (ko) 클라이언트 장치에서 통신의 무결성 보호
US20230421544A1 (en) Preventing fraud in aggregated network measurements
EP4320540A1 (en) Privacy secure batch retrieval using private information retrieval and secure multi-party computation
US20220417034A1 (en) Anonymous event attestation
JP7383142B2 (ja) オンライン対話における情報へのアクセスの保護
JP7492036B2 (ja) 情報アクセスを制限するセキュアなネットワーク通信
KR20220052352A (ko) 온라인 프라이버시 보호 기술

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221202

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231211

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240318

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240416

R150 Certificate of patent or registration of utility model

Ref document number: 7475492

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150