(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-28
(54)【発明の名称】オンラインプライバシー保護技法
(51)【国際特許分類】
G09C 1/00 20060101AFI20221221BHJP
H04L 9/32 20060101ALI20221221BHJP
【FI】
G09C1/00 650Z
H04L9/32 200B
H04L9/32 200E
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022518299
(86)(22)【出願日】2021-08-13
(85)【翻訳文提出日】2022-04-25
(86)【国際出願番号】 US2021045888
(87)【国際公開番号】W WO2022036183
(87)【国際公開日】2022-02-17
(32)【優先日】2020-08-14
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ガン・ワン
(72)【発明者】
【氏名】アルディアン・ポエルノモ
(57)【要約】
本文書は、ユーザ情報の共有または漏洩を防ぐ技法を説明する。一態様では、方法は、第1のMPCサーバによって、クライアントデバイスのユーザが属する少なくとも1つの関心グループの選択基準に対する要求を受信するステップを含む。受信された要求は、クライアントデバイスの識別子を第1のMPCサーバに明らかにしない。要求を受信したことに応答して、第1のMPCサーバは、第1のMPCサーバのキャッシュから取り出された少なくとも1つの関心グループの順序付けられた選択基準の集合を決定する。順序付けられた選択基準の集合は、第2のMPCサーバによって明らかにされることから守られる鍵/値のペアの集合へと変換される。第1のMPCサーバは、最高の値を有する鍵を第2のMPCサーバが特定することを可能にするデータとともに、鍵/値のペアの集合を第2のMPCサーバに送信する。
【特許請求の範囲】
【請求項1】
マルチパーティ計算(MPC)クラスタの第1のMPCサーバによって、前記MPCクラスタの第2のMPCサーバから、クライアントデバイスの特定のユーザが属する2つ以上の関心グループの集合のうちの少なくとも1つの関心グループの選択基準に対する要求を受信するステップであって、前記受信された要求が前記第1のMPCサーバに前記クライアントデバイスの識別子を明らかにしない、ステップと、
前記要求を受信したことに応答して、
前記第1のMPCサーバによって、前記第2のMPCサーバにより明らかにされることから守られる前記要求の部分を使用して、前記第1のMPCサーバのキャッシュから取り出される、前記クライアントデバイスの前記特定のユーザが属する2つ以上の関心グループの前記集合のうちの前記少なくとも1つの関心グループの順序付けられた選択基準の集合を決定するステップと、
前記順序付けられた選択基準の前記集合を鍵/値のペアの集合へと変換するステップであって、前記鍵/値のペアの各々の前記値が、前記第2のMPCサーバにより明らかにされることから守られる、ステップと、
前記第1のMPCサーバによって、鍵/値のペアの前記集合の前記値を前記第2のMPCサーバに明らかにすることなく、最高の値を有する鍵を前記第2のMPCサーバが特定することを可能にするデータとともに、鍵/値のペアの前記集合を前記第2のMPCサーバに送信するステップと
を備える、方法。
【請求項2】
前記第1のMPCサーバによって、前記第1のMPCサーバおよび前記第2のMPCサーバと異なるコンテンツ配信システムから、前記クライアントデバイスの前記特定のユーザを含むものとして前記コンテンツ配信システムによって予測される所与の関心グループの所与の選択基準を受信するステップと、
前記第1のMPCサーバによって、前記第1のMPCサーバの前記キャッシュに、前記クライアントデバイスの前記特定のユーザを含むものとして予測される前記所与の関心グループの前記所与の選択基準をキャッシュするステップとをさらに備える、請求項1に記載の方法。
【請求項3】
前記コンテンツ配信システムによって、前記クライアントデバイスによって出されるコンテンツ要求を受信するステップと、
前記コンテンツ要求に応答して、前記コンテンツ要求に応答した選択基準候補を生成するステップと、
前記コンテンツ要求に基づいて、前記クライアントデバイスの前記特定のユーザを含むものとして予測される前記所与の関心グループを決定するステップと、
前記所与の関心グループが前記クライアントデバイスの前記特定のユーザを含むものとして予測されるという前記決定に基づいて、前記所与の関心グループの前記所与の選択基準を生成するステップと、
前記コンテンツ配信システムによって、配信基準候補および所与の配信基準を前記クライアントデバイスに送信するステップと、
前記コンテンツ配信システムによって、前記第1のMPCサーバに、前記所与の関心グループの前記所与の配信基準を送信するが、前記配信基準候補を送信しないステップとをさらに備える、請求項2に記載の方法。
【請求項4】
前記第2のMPCサーバによって、前記第2のMPCサーバによってアクセス不可能である第1の暗号化された要求を受信するステップと、
前記第2のMPCサーバによって、前記第1の暗号化された要求を前記第1のMPCサーバに転送するステップと、
前記第1のMPCサーバから、鍵/値のペアの前記集合を受信するステップと、
前記第2のMPCサーバによって、前記鍵/値のペアの前記値を明らかにすることなく、最高の値を有する所与の鍵/値のペアを特定するステップと、
前記所与の鍵/値のペアを含む前記第1の暗号化された要求への第1の暗号化され署名された応答を生成するステップであって、第1の署名された応答が前記第2のMPCサーバの秘密鍵で署名される、ステップと、
前記第1の暗号化された要求に応答して、前記第1の暗号化され署名された応答を前記クライアントデバイスに送信するステップとをさらに備える、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記クライアントデバイスによって、前記第2のMPCサーバによって送信される前記第1の暗号化され署名された応答を受信するステップと、
前記クライアントデバイスによって、前記第1の暗号化され署名された応答が前記第1のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記第1の署名された応答から第1の関心グループを復元するステップと、
前記クライアントデバイスによって、前記第1の関心グループが前記特定のユーザを含むことを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値が前記第1のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値を復号して第1の選択基準を復元するステップと、
前記クライアントデバイスによって、選択基準候補および前記所与の選択基準をコンテンツ配信システムから受信するステップと、
前記クライアントデバイスによって、前記第1の選択基準、前記所与の選択基準、および前記選択基準候補の中から制御選択基準を選択するステップとをさらに備える、請求項4に記載の方法。
【請求項6】
前記クライアントデバイスによって、前記特定のユーザを含む関心グループを、関心グループの第1の集合および関心グループの前記第1の集合と異なる関心グループの第2の集合へと画定するステップと、
前記クライアントデバイスによって、前記第1の暗号化された要求を前記第2のMPCサーバに送信するステップであって、前記第1の暗号化された要求が、前記特定のユーザを含む関心グループの第1の集合を含む、ステップと、
前記クライアントデバイスによって、第2の暗号化された要求を前記第1のMPCサーバに送信するステップであって、前記第2の暗号化された要求が、前記特定のユーザを含む関心グループの第2の集合を含む、ステップと、
前記クライアントデバイスによって、前記第1のMPCサーバによって送信される第2の署名された応答を受信するステップと、
前記クライアントデバイスによって、前記第2の署名された応答が前記第2のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記署名された応答から指定された関心グループを復元するステップと、
前記クライアントデバイスによって、前記指定された関心グループが前記特定のユーザを含むことを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値が前記第2のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、第3の選択基準を復元するために前記所与の鍵/値のペアの前記値を復号するステップとをさらに備え、前記制御選択基準を選択するステップが、前記第1の選択基準、前記所与の選択基準、前記選択基準候補、および前記第3の選択基準の中から前記制御選択基準を選択するステップを備える、請求項5に記載の方法。
【請求項7】
前記第1のMPCサーバによって、前記第1のMPCサーバによってアクセス不可能である第2の暗号化された要求を受信するステップと、
前記第1のMPCサーバによって、前記第2の暗号化された要求を前記第2のMPCサーバに転送するステップと、
前記第2のMPCサーバから、鍵/値のペアの異なる集合を受信するステップと、
前記第1のMPCサーバによって、前記異なる集合の中の前記鍵/値のペアの前記値を明らかにすることなく、最高の値を有する特定の鍵/値のペアを特定するステップと、
前記特定の鍵/値のペアを含む前記第2の暗号化された要求への第2の署名された応答を生成するステップであって、前記第1の署名された応答が前記第2のMPCサーバの秘密鍵で署名される、ステップと、
前記第2の暗号化された要求に応答して、前記第2の署名された応答を前記クライアントデバイスに送信するステップとをさらに備える、請求項4から6のいずれか一項に記載の方法。
【請求項8】
1つまたは複数のプロセッサと、
実行されると、前記1つまたは複数のプロセッサに動作を実行させる命令を含む1つまたは複数のメモリ要素とを備え、前記動作が、
マルチパーティ計算(MPC)クラスタの第1のMPCシステムサーバによって、前記MPCクラスタの第2のMPCサーバから、クライアントデバイスの特定のユーザが属する2つ以上の関心グループの集合のうちの少なくとも1つの関心グループの選択基準に対する要求を受信するステップであって、前記受信された要求が前記第1のMPCサーバに前記クライアントデバイスの識別子を明らかにしない、ステップと、
前記要求を受信したことに応答して、
前記第1のMPCサーバによって、前記第2のMPCサーバにより明らかにされることから守られる前記要求の部分を使用して、前記第1のMPCサーバのキャッシュから取り出される、前記クライアントデバイスの前記特定のユーザが属する2つ以上の関心グループの前記集合のうちの前記少なくとも1つの関心グループの順序付けられた選択基準の集合を決定するステップと、
前記順序付けられた選択基準の前記集合を鍵/値のペアの集合へと変換するステップであって、前記鍵/値のペアの各々の前記値が、前記第2のMPCサーバにより明らかにされることから守られる、ステップと、
前記第1のMPCサーバによって、鍵/値のペアの前記集合の前記値を前記第2のMPCサーバに明らかにすることなく、最高の値を有する鍵を前記第2のMPCサーバが特定することを可能にするデータとともに、鍵/値のペアの前記集合を前記第2のMPCサーバに送信するステップと
を含む、システム。
【請求項9】
前記動作が、
前記第1のMPCサーバによって、前記第1のMPCサーバおよび前記第2のMPCサーバと異なるコンテンツ配信システムから、前記コンテンツ配信システムによって前記クライアントデバイスの前記特定のユーザを含むものとして予測される所与の関心グループの所与の選択基準を受信するステップと、
前記第1のMPCサーバによって、前記第1のMPCサーバの前記キャッシュに、前記クライアントデバイスの前記特定のユーザを含むものとして予測される前記所与の関心グループの前記所与の選択基準をキャッシュするステップとをさらに備える、請求項8に記載のシステム。
【請求項10】
前記動作が、
前記コンテンツ配信システムによって、前記クライアントデバイスによって出されるコンテンツ要求を受信するステップと、
前記コンテンツ要求に応答して、前記コンテンツ要求に応答した選択基準候補を生成するステップと、
前記コンテンツ要求に基づいて、前記クライアントデバイスの前記特定のユーザを含むものとして予測される前記所与の関心グループを決定するステップと、
前記所与の関心グループが前記クライアントデバイスの前記特定のユーザを含むものとして予測されるという前記決定に基づいて、前記所与の関心グループの前記所与の選択基準を生成するステップと、
前記コンテンツ配信システムによって、配信基準候補および所与の配信基準を前記クライアントデバイスに送信するステップと、
前記コンテンツ配信システムによって、前記第1のMPCサーバに、前記所与の関心グループの前記所与の配信基準を送信するが、前記配信基準候補を送信しないステップとをさらに備える、請求項9に記載のシステム。
【請求項11】
前記動作が、
前記第2のMPCサーバによって、前記第2のMPCサーバによってアクセス不可能である第1の暗号化された要求を受信するステップと、
前記第2のMPCサーバによって、前記第1の暗号化された要求を前記第1のMPCサーバに転送するステップと、
前記第1のMPCサーバから、鍵/値のペアの前記集合を受信するステップと、
前記第2のMPCサーバによって、前記鍵/値のペアの前記値を明らかにすることなく、最高の値を有する所与の鍵/値のペアを特定するステップと、
前記所与の鍵/値のペアを含む前記第1の暗号化された要求への第1の暗号化され署名された応答を生成するステップであって、第1の署名された応答が前記第2のMPCサーバの秘密鍵で署名される、ステップと、
前記第1の暗号化された要求に応答して、前記第1の暗号化され署名された応答を前記クライアントデバイスに送信するステップとをさらに備える、請求項8から10のいずれか一項に記載のシステム。
【請求項12】
前記動作が、
前記クライアントデバイスによって、前記第2のMPCサーバによって送信される前記第1の暗号化され署名された応答を受信するステップと、
前記クライアントデバイスによって、前記第1の暗号化され署名された応答が前記第1のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記第1の署名された応答から第1の関心グループを復元するステップと、
前記クライアントデバイスによって、前記第1の関心グループが前記特定のユーザを含むことを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値が前記第1のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値を復号して第1の選択基準を復元するステップと、
前記クライアントデバイスによって、選択基準候補および前記所与の選択基準をコンテンツ配信システムから受信するステップと、
前記クライアントデバイスによって、前記第1の選択基準、前記所与の選択基準、および前記選択基準候補の中から制御選択基準を選択するステップとをさらに備える、請求項11に記載のシステム。
【請求項13】
前記動作が、
前記クライアントデバイスによって、前記特定のユーザを含む関心グループを、関心グループの第1の集合および関心グループの前記第1の集合と異なる関心グループの第2の集合へと画定するステップと、
前記クライアントデバイスによって、前記第1の暗号化された要求を前記第2のMPCサーバに送信するステップであって、前記第1の暗号化された要求が、前記特定のユーザを含む関心グループの第1の集合を含む、ステップと、
前記クライアントデバイスによって、第2の暗号化された要求を前記第1のMPCサーバに送信するステップであって、前記第2の暗号化された要求が、前記特定のユーザを含む関心グループの第2の集合を含む、ステップと、
前記クライアントデバイスによって、前記第1のMPCサーバによって送信される第2の署名された応答を受信するステップと、
前記クライアントデバイスによって、前記第2の署名された応答が前記第2のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記署名された応答から指定された関心グループを復元するステップと、
前記クライアントデバイスによって、前記指定された関心グループが前記特定のユーザを含むことを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値が前記第2のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、第3の選択基準を復元するために前記所与の鍵/値のペアの前記値を復号するステップとをさらに備え、前記制御選択基準を選択するステップが、前記第1の選択基準、前記所与の選択基準、前記選択基準候補、および前記第3の選択基準の中から前記制御選択基準を選択するステップを備える、請求項12に記載のシステム。
【請求項14】
前記動作が、
前記第1のMPCサーバによって、前記第1のMPCサーバによってアクセス不可能である第2の暗号化された要求を受信するステップと、
前記第1のMPCサーバによって、前記第2の暗号化された要求を前記第2のMPCサーバに転送するステップと、
前記第2のMPCサーバから、鍵/値のペアの異なる集合を受信するステップと、
前記第1のMPCサーバによって、前記異なる集合の中の前記鍵/値のペアの前記値を明らかにすることなく、最高の値を有する特定の鍵/値のペアを特定するステップと、
前記特定の鍵/値のペアを含む前記第2の暗号化された要求への第2の署名された応答を生成するステップであって、前記第1の署名された応答が前記第2のMPCサーバの秘密鍵で署名される、ステップと、
前記第2の暗号化された要求に応答して、前記第2の署名された応答を前記クライアントデバイスに送信するステップとをさらに備える、請求項11から13のいずれか一項に記載のシステム。
【請求項15】
コンピューティングシステムによって実行されると前記コンピューティングシステムに動作を実行させる命令が符号化された非一時的コンピュータ記憶媒体であって、前記動作が、
マルチパーティ計算(MPC)クラスタの第1のMPCサーバによって、前記MPCクラスタの第2のMPCサーバから、クライアントデバイスの特定のユーザが属する2つ以上の関心グループの集合のうちの少なくとも1つの関心グループの選択基準に対する要求を受信するステップであって、前記受信された要求が前記第1のMPCサーバに前記クライアントデバイスの識別子を明らかにしない、ステップと、
前記要求を受信したことに応答して、
前記第1のMPCサーバによって、前記第2のMPCサーバにより明らかにされることから守られる前記要求の部分を使用して、前記第1のMPCサーバのキャッシュから取り出される、前記クライアントデバイスの前記特定のユーザが属する2つ以上の関心グループの前記集合のうちの前記少なくとも1つの関心グループの順序付けられた選択基準の集合を決定するステップと、
前記順序付けられた選択基準の前記集合を鍵/値のペアの集合へと変換するステップであって、前記鍵/値のペアの各々の前記値が、前記第2のMPCサーバにより明らかにされることから守られる、ステップと、
前記第1のMPCサーバによって、鍵/値のペアの前記集合の前記値を前記第2のMPCサーバに明らかにすることなく、最高の値を有する鍵を前記第2のMPCサーバが特定することを可能にするデータとともに、鍵/値のペアの前記集合を前記第2のMPCサーバに送信するステップと
を備える、非一時的コンピュータ記憶媒体。
【請求項16】
前記動作が、
前記第1のMPCサーバによって、前記第1のMPCサーバおよび前記第2のMPCサーバと異なるコンテンツ配信システムから、前記クライアントデバイスの前記特定のユーザを含むものとして前記コンテンツ配信システムによって予測される所与の関心グループの所与の選択基準を受信するステップと、
前記第1のMPCサーバによって、前記第1のMPCサーバの前記キャッシュに、前記クライアントデバイスの前記特定のユーザを含むものとして予測される前記所与の関心グループの前記所与の選択基準をキャッシュするステップとをさらに備える、請求項15に記載の非一時的コンピュータ記憶媒体。
【請求項17】
前記動作が、
前記コンテンツ配信システムによって、前記クライアントデバイスによって出されるコンテンツ要求を受信するステップと、
前記コンテンツ要求に応答して、前記コンテンツ要求に応答した選択基準候補を生成するステップと、
前記コンテンツ要求に基づいて、前記クライアントデバイスの前記特定のユーザを含むものとして予測される前記所与の関心グループを決定するステップと、
前記所与の関心グループが前記クライアントデバイスの前記特定のユーザを含むものとして予測されるという前記決定に基づいて、前記所与の関心グループの前記所与の選択基準を生成するステップと、
前記コンテンツ配信システムによって、配信基準候補および所与の配信基準を前記クライアントデバイスに送信するステップと、
前記コンテンツ配信システムによって、前記第1のMPCサーバに、前記所与の関心グループの前記所与の配信基準を送信するが、前記配信基準候補を送信しないステップとをさらに備える、請求項16に記載の非一時的コンピュータ記憶媒体。
【請求項18】
前記動作が、
前記第2のMPCサーバによって、前記第2のMPCサーバによってアクセス不可能である第1の暗号化された要求を受信するステップと、
前記第2のMPCサーバによって、前記第1の暗号化された要求を前記第1のMPCサーバに転送するステップと、
前記第1のMPCサーバから、鍵/値のペアの前記集合を受信するステップと、
前記第2のMPCサーバによって、前記鍵/値のペアの前記値を明らかにすることなく、最高の値を有する所与の鍵/値のペアを特定するステップと、
前記所与の鍵/値のペアを含む前記第1の暗号化された要求への第1の暗号化され署名された応答を生成するステップであって、第1の署名された応答が前記第2のMPCサーバの秘密鍵で署名される、ステップと、
前記第1の暗号化された要求に応答して、前記第1の暗号化され署名された応答を前記クライアントデバイスに送信するステップとをさらに備える、請求項15から17のいずれか一項に記載の非一時的コンピュータ記憶媒体。
【請求項19】
前記動作が、
前記クライアントデバイスによって、前記第2のMPCサーバによって送信される前記第1の暗号化され署名された応答を受信するステップと、
前記クライアントデバイスによって、前記第1の暗号化され署名された応答が前記第1のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記第1の署名された応答から第1の関心グループを復元するステップと、
前記クライアントデバイスによって、前記第1の関心グループが前記特定のユーザを含むことを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値が前記第1のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値を復号して第1の選択基準を復元するステップと、
前記クライアントデバイスによって、選択基準候補および前記所与の選択基準をコンテンツ配信システムから受信するステップと、
前記クライアントデバイスによって、前記第1の選択基準、前記所与の選択基準、および前記選択基準候補の中から制御選択基準を選択するステップとをさらに備える、請求項18に記載の非一時的コンピュータ記憶媒体。
【請求項20】
前記動作が、
前記クライアントデバイスによって、前記特定のユーザを含む関心グループを、関心グループの第1の集合および関心グループの前記第1の集合と異なる関心グループの第2の集合へと画定するステップと、
前記クライアントデバイスによって、前記第1の暗号化された要求を前記第2のMPCサーバに送信するステップであって、前記第1の暗号化された要求が、前記特定のユーザを含む関心グループの第1の集合を含む、ステップと、
前記クライアントデバイスによって、第2の暗号化された要求を前記第1のMPCサーバに送信するステップであって、前記第2の暗号化された要求が、前記特定のユーザを含む関心グループの第2の集合を含む、ステップと、
前記クライアントデバイスによって、前記第1のMPCサーバによって送信される第2の署名された応答を受信するステップと、
前記クライアントデバイスによって、前記第2の署名された応答が前記第2のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記署名された応答から指定された関心グループを復元するステップと、
前記クライアントデバイスによって、前記指定された関心グループが前記特定のユーザを含むことを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値が前記第2のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、第3の選択基準を復元するために前記所与の鍵/値のペアの前記値を復号するステップとをさらに備え、前記制御選択基準を選択するステップが、前記第1の選択基準、前記所与の選択基準、前記選択基準候補、および前記第3の選択基準の中から前記制御選択基準を選択するステップを備える、請求項19に記載の非一時的コンピュータ記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
本明細書は、オンライン環境におけるデータ処理およびユーザプライバシーの保護に関する。オンラインユーザプライバシーの強化により、ユーザデータが扱われる方法を、多くのブラウザ開発者が変えるようになった。たとえば、サードパーティのクッキーは、もはや一部のブラウザではサポートされていないが、サードパーティのクッキーを推奨しないことで、ユーザに届けられる関連のあるコンテンツが少なくなることがある。
【発明の概要】
【課題を解決するための手段】
【0002】
一般に、本明細書において説明される主題の1つの革新的な態様は、マルチパーティ計算(MPC)クラスタの第1のMPCサーバ(第1のMPCシステムまたは第1のコンピューティングシステムとも本明細書では呼ばれる)によって、MPCクラスタの第2のMPCサーバ(第2のMPCシステムまたは第2のコンピューティングシステムとも本明細書では呼ばれる)から、クライアントデバイスの特定のユーザが属する2つ以上の関心グループの集合のうちの少なくとも1つの関心グループの選択基準に対する要求を受信するステップであって、受信された要求がクライアントデバイスの識別子をいずれのMPCシステムにも明らかにしない、ステップと、要求を受信したことに応答して、第1のMPCサーバによって、第2のMPCサーバによって明らかにされることから守られる要求の部分を使用して第1のMPCサーバのキャッシュから取り出される、クライアントデバイスの特定のユーザが属する2つ以上の関心グループの集合のうちの少なくとも1つの関心グループの順序付けられた選択基準の集合を決定するステップと、順序付けられた選択基準の集合を鍵/値のペアの集合へと変換するステップであって、鍵/値のペアの各々の値が第2のMPCサーバによって明らかにされることから守られる、ステップと、第1のMPCサーバによって、鍵/値のペアの集合の値を第2のMPCサーバに明らかにすることなく最高の値を有する鍵を第2のMPCサーバが特定することを可能にするデータとともに、鍵/値のペアの集合を第2のMPCサーバに送信するステップとを含む、方法である。
【0003】
いくつかの実装形態では、方法はさらに、第1のMPCサーバによって、第1のMPCサーバおよび第2のMPCサーバと異なるコンテンツ配信システムから、クライアントデバイスの特定のユーザを含むものとしてコンテンツ配信システムによって予測される所与の関心グループの所与の選択基準を受信するステップと、第1のMPCサーバによって、第1のMPCサーバのキャッシュに、クライアントデバイスの特定のユーザを含むものとして予測される所与の関心グループの所与の選択基準をキャッシュするステップとを含む。
【0004】
いくつかの実装形態では、方法はさらに、コンテンツ配信システムによって、クライアントデバイスによって出されたコンテンツ要求を受信するステップと、コンテンツ要求に応答して、コンテンツ要求に応答した選択基準候補を生成するステップと、コンテンツ要求に基づいて、クライアントデバイスの特定のユーザを含むものとして予測される所与の関心グループを決定するステップと、所与の関心グループがクライアントデバイスの特定のユーザを含むものとして予測されるという決定に基づいて、所与の関心グループの所与の選択基準を生成するステップと、コンテンツ配信システムによって、配信基準候補および所与の配信基準をクライアントデバイスに送信するステップと、コンテンツ配信システムによって、第1のMPCサーバに、所与の関心グループの所与の配信基準を送信するが、配信基準候補を送信しないステップとを含む。
【0005】
いくつかの実装形態では、方法はさらに、第2のMPCサーバによって、第2のMPCサーバがアクセスできない第1の暗号化された要求を受信するステップと、第2のMPCサーバによって、第1の暗号化された要求を第1のMPCサーバに転送するステップと、第1のMPCサーバから、鍵/値のペアの集合を受信するステップと、第2のMPCサーバによって、鍵/値のペアの値を明らかにすることなく、最高の値を有する所与の鍵/値のペアを特定するステップと、所与の鍵/値のペアを含む第1の暗号化された要求への第1の暗号化され署名された応答を生成するステップであって、第1の署名された応答が第2のMPCサーバの秘密鍵で署名される、ステップと、第1の暗号化された要求に応答して、第1の暗号化され署名された応答をクライアントデバイスに送信するステップとを含む。
【0006】
いくつかの実装形態では、方法はさらに、クライアントデバイスによって、第2のMPCサーバによって送信された第1の暗号化され署名された応答を受信するステップと、クライアントデバイスによって、第1の暗号化され署名された応答が第1のMPCサーバによって署名されることを検証するステップと、クライアントデバイスによって、第1の署名された応答から第1の関心グループを復元するステップと、クライアントデバイスによって、第1の関心グループが特定のユーザを含むことを検証するステップと、クライアントデバイスによって、所与の鍵/値のペアの値が第1のMPCサーバによって署名されることを検証するステップと、クライアントデバイスによって、第1の選択基準を復元するために所与の鍵/値のペアの値を復号するステップと、クライアントデバイスによって、コンテンツ配信システムから選択基準候補および所与の選択基準を受信するステップと、クライアントデバイスによって、第1の選択基準、所与の選択基準、および選択基準候補の中から制御選択基準を選択するステップとを含む。
【0007】
いくつかの実装形態では、方法はさらに、クライアントデバイスによって、特定のユーザを含む関心グループを、関心グループの第1の集合および関心グループの第1の集合と異なる関心グループの第2の集合へと画定する(delineate)ステップと、クライアントデバイスによって、第1の暗号化された要求を第2のMPCサーバに送信するステップであって、第1の暗号化された要求が、特定のユーザを含む関心グループの第1の集合を含む、ステップと、クライアントデバイスによって、第2の暗号化された要求を第1のMPCサーバに送信するステップであって、第2の暗号化された要求が、特定のユーザを含む関心グループの第2の集合を含む、ステップと、クライアントデバイスによって、第1のMPCサーバによって送信される第2の署名された応答を受信するステップと、クライアントデバイスによって、第2の署名された応答が第2のMPCサーバによって署名されることを検証するステップと、クライアントデバイスによって、署名された応答から指定された関心グループを復元するステップと、クライアントデバイスによって、指定された関心グループが特定のユーザを含むことを検証するステップと、クライアントデバイスによって、所与の鍵/値のペアの値が第2のMPCサーバによって署名されることを検証するステップと、クライアントデバイスによって、第3の選択基準を復元するために所与の鍵/値のペアの値を復号するステップとを含み、制御選択基準を選択するステップが、第1の選択基準、所与の選択基準、選択基準候補、および第3の選択基準の中から制御選択基準を選択するステップを備える。
【0008】
いくつかの実装形態では、方法はさらに、第1のMPCサーバによって、第1のMPCサーバがアクセスできない第2の暗号化された要求を受信するステップと、第1のMPCサーバによって、第2の暗号化された要求を第2のMPCサーバに転送するステップと、第2のMPCサーバから、鍵/値のペアの異なる集合を受信するステップと、第1のMPCサーバによって、異なる集合の中の鍵/値のペアの値を明らかにすることなく、最高の値を有する特定の鍵/値のペアを特定するステップと、特定の鍵/値のペアを含む第2の暗号化された要求への第2の署名された応答を生成するステップであって、第1の署名された応答が第2のMPCサーバの秘密鍵で署名される、ステップと、第2の暗号化された要求に応答して、第2の署名された応答をクライアントデバイスに送信するステップとを含む。
【0009】
一般に、本明細書において説明される主題の別の革新的な態様は、1つまたは複数のプロセッサと、実行されると1つまたは複数のプロセッサに動作を実行させる命令を含む1つまたは複数のメモリ要素とを含む、システムであり、動作は、マルチパーティ計算(MPC)クラスタの第1のMPCシステムサーバによって、MPCクラスタの第2のMPCサーバから、クライアントデバイスの特定のユーザが属する2つ以上の関心グループの集合のうちの少なくとも1つの関心グループの選択基準に対する要求を受信するステップであって、受信された要求がクライアントデバイスの識別子を第1のMPCサーバに明らかにしない、ステップと、要求を受信したことに応答して、第1のMPCサーバによって、第2のMPCサーバによって明らかにされることから守られる要求の部分を使用して第1のMPCサーバのキャッシュから取り出される、クライアントデバイスの特定のユーザが属する2つ以上の関心グループの集合のうちの少なくとも1つの関心グループの順序付けられた選択基準の集合を決定するステップと、順序付けられた選択基準の集合を鍵/値のペアの集合へと変換するステップであって、鍵/値のペアの各々の値が第2のMPCサーバによって明らかにされることから守られる、ステップと、第1のMPCサーバによって、鍵/値のペアの集合の値を第2のMPCサーバに明らかにすることなく最高の値を有する鍵を第2のMPCサーバが特定することを可能にするデータとともに、鍵/値のペアの集合を第2のMPCサーバに送信するステップとを含む。
【0010】
いくつかの実装形態では、動作(上で説明されたシステムの1つまたは複数のプロセッサによって実行される)はさらに、第1のMPCサーバによって、第1のMPCサーバおよび第2のMPCサーバと異なるコンテンツ配信システムから、クライアントデバイスの特定のユーザを含むものとしてコンテンツ配信システムによって予測される所与の関心グループの所与の選択基準を受信するステップと、第1のMPCサーバによって、第1のMPCサーバのキャッシュに、クライアントデバイスの特定のユーザを含むものとして予測される所与の関心グループの所与の選択基準をキャッシュするステップとを含む。
【0011】
いくつかの実装形態では、動作はさらに、コンテンツ配信システムによって、クライアントデバイスによって出されたコンテンツ要求を受信するステップと、コンテンツ要求に応答して、コンテンツ要求に応答した選択基準候補を生成するステップと、コンテンツ要求に基づいて、クライアントデバイスの特定のユーザを含むものとして予測される所与の関心グループを決定するステップと、所与の関心グループがクライアントデバイスの特定のユーザを含むものとして予測されるという決定に基づいて、所与の関心グループの所与の選択基準を生成するステップと、コンテンツ配信システムによって、配信基準候補および所与の配信基準をクライアントデバイスに送信するステップと、コンテンツ配信システムによって、第1のMPCサーバに、所与の関心グループの所与の配信基準を送信するが、配信基準候補を送信しないステップとを含む。
【0012】
いくつかの実装形態では、動作はさらに、第2のMPCサーバによって、第2のMPCサーバがアクセスできない第1の暗号化された要求を受信するステップと、第2のMPCサーバによって、第1の暗号化された要求を第1のMPCサーバに転送するステップと、第1のMPCサーバから、鍵/値のペアの集合を受信するステップと、第2のMPCサーバによって、鍵/値のペアの値を明らかにすることなく、最高の値を有する所与の鍵/値のペアを特定するステップと、所与の鍵/値のペアを含む第1の暗号化された要求への第1の暗号化され署名された応答を生成するステップであって、第1の署名された応答が第2のMPCサーバの秘密鍵で署名される、ステップと、第1の暗号化された要求に応答して、第1の暗号化され署名された応答をクライアントデバイスに送信するステップとを含む。
【0013】
いくつかの実装形態では、動作はさらに、クライアントデバイスによって、第2のMPCサーバによって送信された第1の暗号化され署名された応答を受信するステップと、クライアントデバイスによって、第1の暗号化され署名された応答が第1のMPCサーバによって署名されることを検証するステップと、クライアントデバイスによって、第1の署名された応答から第1の関心グループを復元するステップと、クライアントデバイスによって、第1の関心グループが特定のユーザを含むことを検証するステップと、クライアントデバイスによって、所与の鍵/値のペアの値が第1のMPCサーバによって署名されることを検証するステップと、クライアントデバイスによって、第1の選択基準を復元するために所与の鍵/値のペアの値を復号するステップと、クライアントデバイスによって、コンテンツ配信システムから選択基準候補および所与の選択基準を受信するステップと、クライアントデバイスによって、第1の選択基準、所与の選択基準、および選択基準候補の中から制御選択基準を選択するステップとを含む。
【0014】
いくつかの実装形態では、動作はさらに、クライアントデバイスによって、特定のユーザを含む関心グループを、関心グループの第1の集合および関心グループの第1の集合と異なる関心グループの第2の集合へと画定するステップと、クライアントデバイスによって、第1の暗号化された要求を第2のMPCサーバに送信するステップであって、第1の暗号化された要求が、特定のユーザを含む関心グループの第1の集合を含む、ステップと、クライアントデバイスによって、第2の暗号化された要求を第1のMPCサーバに送信するステップであって、第2の暗号化された要求が、特定のユーザを含む関心グループの第2の集合を含む、ステップと、クライアントデバイスによって、第1のMPCサーバによって送信される第2の署名された応答を受信するステップと、クライアントデバイスによって、第2の署名された応答が第2のMPCサーバによって署名されることを検証するステップと、クライアントデバイスによって、署名された応答から指定された関心グループを復元するステップと、クライアントデバイスによって、指定された関心グループが特定のユーザを含むことを検証するステップと、クライアントデバイスによって、所与の鍵/値のペアの値が第2のMPCサーバによって署名されることを検証するステップと、クライアントデバイスによって、第3の選択基準を復元するために所与の鍵/値のペアの値を復号するステップとを含み、制御選択基準を選択するステップが、第1の選択基準、所与の選択基準、選択基準候補、および第3の選択基準の中から制御選択基準を選択するステップを備える。
【0015】
いくつかの実装形態では、動作はさらに、第1のMPCサーバによって、第1のMPCサーバがアクセスできない第2の暗号化された要求を受信するステップと、第1のMPCサーバによって、第2の暗号化された要求を第2のMPCサーバに転送するステップと、第2のMPCサーバから、鍵/値のペアの異なる集合を受信するステップと、第1のMPCサーバによって、異なる集合の中の鍵/値のペアの値を明らかにすることなく、最高の値を有する特定の鍵/値のペアを特定するステップと、特定の鍵/値のペアを含む第2の暗号化された要求への第2の署名された応答を生成するステップであって、第1の署名された応答が第2のMPCサーバの秘密鍵で署名される、ステップと、第2の暗号化された要求に応答して、第2の署名された応答をクライアントデバイスに送信するステップとを含む。
【0016】
一般に、本明細書において説明される主題の別の革新的な態様は、分散型コンピューティングシステムによって実行されると分散型コンピューティングシステムに動作を実行させる命令が符号化された非一時的コンピュータ記憶媒体であり、動作は、マルチパーティ計算(MPC)クラスタの第1のMPCサーバによって、MPCクラスタの第2のMPCサーバから、クライアントデバイスの特定のユーザが属する2つ以上の関心グループの集合のうちの少なくとも1つの関心グループの選択基準に対する要求を受信するステップであって、受信された要求がクライアントデバイスの識別子を第1のMPCサーバに明らかにしない、ステップと、要求を受信したことに応答して、第1のMPCサーバによって、第2のMPCサーバによって明らかにされることから守られる要求の部分を使用して第1のMPCサーバのキャッシュから取り出される、クライアントデバイスの特定のユーザが属する2つ以上の関心グループの集合のうちの少なくとも1つの関心グループの順序付けられた選択基準の集合を決定するステップと、順序付けられた選択基準の集合を鍵/値のペアの集合へと変換するステップであって、鍵/値のペアの各々の値が第2のMPCサーバによって明らかにされることから守られる、ステップと、第1のMPCサーバによって、鍵/値のペアの集合の値を第2のMPCサーバに明らかにすることなく最高の値を有する鍵を第2のMPCサーバが特定することを可能にするデータとともに、鍵/値のペアの集合を第2のMPCサーバに送信するステップとを含む。
【0017】
いくつかの実装形態では、動作(分散型コンピューティングシステムによって実行される)はさらに、第1のMPCサーバによって、第1のMPCサーバおよび第2のMPCサーバと異なるコンテンツ配信システムから、クライアントデバイスの特定のユーザを含むものとしてコンテンツ配信システムによって予測される所与の関心グループの所与の選択基準を受信するステップと、第1のMPCサーバによって、第1のMPCサーバのキャッシュに、クライアントデバイスの特定のユーザを含むものとして予測される所与の関心グループの所与の選択基準をキャッシュするステップとを含む。
【0018】
いくつかの実装形態では、動作はさらに、コンテンツ配信システムによって、クライアントデバイスによって出されたコンテンツ要求を受信するステップと、コンテンツ要求に応答して、コンテンツ要求に応答した選択基準候補を生成するステップと、コンテンツ要求に基づいて、クライアントデバイスの特定のユーザを含むものとして予測される所与の関心グループを決定するステップと、所与の関心グループがクライアントデバイスの特定のユーザを含むものとして予測されるという決定に基づいて、所与の関心グループの所与の選択基準を生成するステップと、コンテンツ配信システムによって、配信基準候補および所与の配信基準をクライアントデバイスに送信するステップと、コンテンツ配信システムによって、第1のMPCサーバに、所与の関心グループの所与の配信基準を送信するが、配信基準候補を送信しないステップとを含む。
【0019】
いくつかの実装形態では、動作はさらに、第2のMPCサーバによって、第2のMPCサーバがアクセスできない第1の暗号化された要求を受信するステップと、第2のMPCサーバによって、第1の暗号化された要求を第1のMPCサーバに転送するステップと、第1のMPCサーバから、鍵/値のペアの集合を受信するステップと、第2のMPCサーバによって、鍵/値のペアの値を明らかにすることなく、最高の値を有する所与の鍵/値のペアを特定するステップと、所与の鍵/値のペアを含む第1の暗号化された要求への第1の暗号化され署名された応答を生成するステップであって、第1の署名された応答が第2のMPCサーバの秘密鍵で署名される、ステップと、第1の暗号化された要求に応答して、第1の暗号化され署名された応答をクライアントデバイスに送信するステップとを含む。
【0020】
いくつかの実装形態では、動作はさらに、クライアントデバイスによって、第2のMPCサーバによって送信された第1の暗号化され署名された応答を受信するステップと、クライアントデバイスによって、第1の暗号化され署名された応答が第1のMPCサーバによって署名されることを検証するステップと、クライアントデバイスによって、第1の署名された応答から第1の関心グループを復元するステップと、クライアントデバイスによって、第1の関心グループが特定のユーザを含むことを検証するステップと、クライアントデバイスによって、所与の鍵/値のペアの値が第1のMPCサーバによって署名されることを検証するステップと、クライアントデバイスによって、第1の選択基準を復元するために所与の鍵/値のペアの値を復号するステップと、クライアントデバイスによって、コンテンツ配信システムから選択基準候補および所与の選択基準を受信するステップと、クライアントデバイスによって、第1の選択基準、所与の選択基準、および選択基準候補の中から制御選択基準を選択するステップとを含む。
【0021】
いくつかの実装形態では、動作はさらに、クライアントデバイスによって、特定のユーザを含む関心グループを、関心グループの第1の集合および関心グループの第1の集合と異なる関心グループの第2の集合へと画定するステップと、クライアントデバイスによって、第1の暗号化された要求を第2のMPCサーバに送信するステップであって、第1の暗号化された要求が、特定のユーザを含む関心グループの第1の集合を含む、ステップと、クライアントデバイスによって、第2の暗号化された要求を第1のMPCサーバに送信するステップであって、第2の暗号化された要求が、特定のユーザを含む関心グループの第2の集合を含む、ステップと、クライアントデバイスによって、第1のMPCサーバによって送信される第2の署名された応答を受信するステップと、クライアントデバイスによって、第2の署名された応答が第2のMPCサーバによって署名されることを検証するステップと、クライアントデバイスによって、署名された応答から指定された関心グループを復元するステップと、クライアントデバイスによって、指定された関心グループが特定のユーザを含むことを検証するステップと、クライアントデバイスによって、所与の鍵/値のペアの値が第2のMPCサーバによって署名されることを検証するステップと、クライアントデバイスによって、第3の選択基準を復元するために所与の鍵/値のペアの値を復号するステップとを含み、制御選択基準を選択するステップが、第1の選択基準、所与の選択基準、候補選択基準、および第3の選択基準の中から制御選択基準を選択するステップを備える。
【0022】
本明細書において説明される主題の特定の実施形態は、以下の技術的利点のうちの1つまたは複数を実現するように実装され得る。たとえば、ユーザデータを保護してコンテンツ選択プロセスを実行するために、マルチパーティ計算(MPC)および他の暗号技法を使用することは、プロセスに参加するエンティティが入手可能なユーザ情報が他のエンティティに漏洩するのを防ぐ。本文書全体で論じられる技法は、ユーザ情報を保護して、別様にプロセスを実行するために必要であろうエンティティ間のユーザ情報の共有を防ぐ。本文書において説明される技法は、異なるコンピューティングシステム内のユーザ情報とプロセスの動作とを区切り、あるエンティティのコンピュータが危険にさらされる場合に、アクセスできるユーザの情報の量が最小限になり、または少なくとも他の技法と比較して減ることを確実にする。本文書全体で論じられる技法はまた、個人化されたコンテンツ選択の実行を可能にしながら、コンテンツ選択に関与するシステムのいずれもが複数のウェブサイトにわたって個々のユーザを追跡することができないようにする。
【0023】
本明細書において論じられる技法は、実際のデータの代わりにコードを含むメッセージを送信することを含み、それにより、本明細書において論じられるプロセスに参加するコンピューティングシステムは、背後にあるデータにアクセスできないが、それでもこれらのコードを使用してプロセスの動作を実行できる。実際のデータの代わりにコードを使用することはまた、データが危険にさらされた、たとえば盗まれた、または別のエンティティに漏洩した場合でも、データを保護する。このようにルックアップテーブルおよびコードを使用することで、別様にデータを保護するために必要とされるであろう暗号化技法(たとえば、準同型暗号化技法)と比較して、本明細書において論じられるプロセスを実施するために使用されるコンピューティングシステムへの計算負荷が減る。これは、プロセスを実行するために必要とされる必要な中央処理装置(CPU)サイクルを減らし(たとえば、大量のデータを暗号化して復号しなくてもよいことにより)、ユーザデバイス上へ提示するためのコンテンツを選択するためにプロセスが使用されるような実装形態においては重要であるプロセスを実行する際のレイテンシを減らし、プロセス全体をより効率的にする。さらに、任意のキャッシュされたデータの今後の要求のためにレイテンシが減らされるように、特定のコンピューティングシステムにデータをローカルにキャッシュすることができる。
【0024】
コンテンツ提示におけるレイテンシを減らすことは、そのようなコンテンツが到着するのを待機している間にユーザデバイスにおいて起こるエラーの数も減らす。コンテンツは、ワイヤレスネットワークにより接続されるモバイルデバイスに数ミリ秒で提供されなければならないことが多いので、コンテンツを選択して提供する際のレイテンシを減らすことは、エラーを防ぎユーザの不満を減らすのに重要である。
【0025】
説明される技法はまた、高水準のプライバシーを維持するための簡単なプロセスを提供する。MPC技法を通じて、区分されたプロセスを実施することによって、システムは、需要側のプラットフォームから広範な変更を要求することなく、高水準のユーザプライバシーを提供する。
【0026】
本明細書において説明される主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【0027】
【
図1】コンテンツがクライアントデバイスに配信される例示的な環境のブロック図である。
【
図2】コンテンツを選択してコンテンツをクライアントデバイスに提供するための方法のデータフローを示す図である。
【
図3】コンテンツを選択するための例示的なプロセスの部分を示すスイムレーン図である。
【
図4】コンテンツを選択するための例示的な方法の流れ図である。
【
図5】例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0028】
様々な図面における同じ参照番号および名称は、同じ要素を示す。
【0029】
本開示は、電子コンテンツの選択およびクライアントデバイスへの配信に関与するエンティティによるユーザ情報の共有または漏洩を防ぐ技法を利用する、コンピュータで実施される方法およびシステムに関する。以下でより詳しく説明されるように、プライバシー保護技法は、マルチパーティ計算(MPC)、確率的データ構造、暗号化、および/または2段階(またはn段階)キャッシングの組合せを使用して実装され得る。より具体的には、ユーザのクライアントデバイスは、個人化されたコンテンツのための3つの要求を出すことができる。第1の要求はMPCクラスタにおいてあるサーバに送信されてもよく、第2の要求は同じMPCクラスタにおいて異なるサーバに送信されてもよく、第3の要求はコンテンツ配信システムに送信されてもよい。本文書全体で説明されるように、MPCクラスタの中の2つのサーバに送信される要求は、MPCサーバのいずれもがウェブサイトにわたってユーザを追跡するのに十分な情報を得ることができないが、それでも、ユーザを含む関心グループに基づいてユーザに提供され得る利用可能な個人化されたコンテンツを特定するために2段階キャッシュにアクセスできるような方法で、暗号化され得る。MPCサーバの各々は、ユーザを含む1つまたは複数の関心グループに関するコンテンツ(たとえば、デジタルコンポーネント)の1つまたは複数の部分についての情報でそれぞれの要求に応答し得る。
【0030】
コンテンツ配信システムに送信される第3の要求は、ユーザが訪れているウェブサイトに関する情報(たとえば、URL)を含み、これは、ウェブサイトに関するコンテクスチュアルコンテンツを特定するために使用されてもよく、また、ユーザを含むものとして予測される関心グループを推測するためにも使用されてもよい。特定されたコンテクスチュアルコンテンツは、推測された関心グループのうちの1つまたは複数に関するコンテンツについての情報とともにクライアントデバイスに通信される。1つまたは複数の関心グループに関するコンテンツについての情報は、MPCサーバにより後で使用するためにキャッシュにも記憶される。クライアントデバイスは、2つのMPCサーバおよびコンテンツ配信システムから受信された情報の中から、ユーザに提示されるべき個人化されたコンテンツ(たとえば、デジタルコンポーネント)を選択する。
【0031】
本文書全体で論じられるプライバシー保護技法に加えて、ユーザには、本明細書において説明されるシステム、プログラム、または特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、社会的な行動もしくは活動、職業、ユーザの選好、またはユーザの現在の位置についての情報)の収集を可能にし得るかどうか、およびいつそれを可能にし得るかということと、サーバからのコンテンツまたは通信がユーザに送信されるかどうかということとの両方に関しての選択を、ユーザが行うことを可能にする制御権が与えられ得る。加えて、いくつかのデータは、個人を識別できる情報が除去されるように、記憶または使用される前に1つまたは複数の方法で扱われ得る。たとえば、ユーザの識別情報は、個人を識別できる情報がユーザについて決定できないように扱われてもよく、またはユーザの地理的位置は、ユーザの具体的な位置を決定できないように、位置情報が取得される場合に(都市、ZIPコード、もしくは州のレベルなどに)一般化されてもよい。したがって、ユーザは、ユーザについてのどの情報が収集されるか、その情報がどのように使用されるか、およびどの情報がユーザに提供されるかを制御することができる。
【0032】
図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を含み得る。
【0033】
クライアントデバイス110は、ネットワーク105を介して通信することが可能な電子デバイスである。例示的なクライアントデバイス110は、パーソナルコンピュータ、モバイル通信デバイス、たとえば、スマートフォン、およびネットワーク105を介してデータを送信し、受信することができる他のデバイスを含む。クライアントデバイスはまた、マイクロフォンを介してオーディオ入力を受け入れ、スピーカを介してオーディオ出力を出力するデジタルアシスタントデバイスも含み得る。デジタルアシスタントは、オーディオ入力を受け入れるためにマイクロフォンを起動する「ホットワード」または「ホットフレーズ」を検出すると、聴取モードになり得る(たとえば、オーディオ入力を受け入れる準備ができている)。デジタルアシスタントデバイスはまた、画像をキャプチャし、情報を視覚的に提示するためのカメラおよび/またはディスプレイも含み得る。デジタルアシスタントは、ウェアラブルデバイス(たとえば、腕時計または眼鏡)、スマートフォン、スピーカデバイス、タブレットデバイス、または別のハードウェアデバイスを含む、異なる形態のハードウェアデバイスで実装され得る。クライアントデバイスはまた、デジタルメディアデバイス、たとえば、テレビにビデオをストリーミングするためにテレビまたは他のディスプレイに差し込まれるストリーミングデバイス、またはゲームデバイス、またはゲームコンソールを含み得る。
【0034】
クライアントデバイス110は、典型的に、ネットワーク105を介してデータを送信すること、および受信することを円滑にするために、ウェブブラウザおよび/またはネイティブアプリケーションなどのアプリケーション112を含む。ネイティブアプリケーションは、特定のプラットフォームまたは特定のデバイス(たとえば、特定のオペレーティングシステムを有するモバイルデバイス)のために開発されたアプリケーションである。発行者140は、ネイティブアプリケーションを開発し、クライアントデバイス110に提供する、たとえばダウンロード可能にすることができる。ウェブブラウザは、たとえば、クライアントデバイス110のユーザが、ウェブブラウザのアドレスバーにリソース145のリソースアドレスを入力したこと、またはリソースアドレスを参照するリンクを選択したことに応答して、発行者140のウェブサイト142をホストするウェブサーバからのリソース145を要求することができる。同様に、ネイティブアプリケーションは、発行者のリモートサーバからのアプリケーションコンテンツを要求することができる。
【0035】
いくつかのリソース、アプリケーションページ、または他のアプリケーションコンテンツは、デジタルコンポーネントにリソース145またはアプリケーションページを提示するためのデジタルコンポーネントスロットを含み得る。本明細書全体にわたって使用されるように、「デジタルコンポーネント」という語句は、デジタルコンテンツまたはデジタル情報の別個の単位(たとえば、ビデオクリップ、オーディオクリップ、マルチメディアクリップ、画像、テキスト、またはコンテンツの別の単位)を指す。デジタルコンポーネントは、単一のファイルとして、またはファイルの集合体として物理メモリデバイスに電子的に記憶されてもよく、デジタルコンポーネントは、ビデオファイル、オーディオファイル、マルチメディアファイル、画像ファイル、またはテキストファイルの形態をとり、広告情報を含んでもよく、したがって、広告は、デジタルコンポーネントの一種である。たとえば、デジタルコンポーネントは、アプリケーション112によって提示されるウェブページまたは他のリソースのコンテンツを補足することが意図されるコンテンツであってもよい。より具体的には、デジタルコンポーネントは、リソースコンテンツに関連するデジタルコンテンツを含み得る(たとえば、デジタルコンポーネントは、ウェブページコンテンツと同じトピック、または関連するトピックに関連し得る)。したがって、デジタルコンポーネントの提供は、ウェブページまたはアプリケーションコンテンツを補足し、一般に強化することができる。
【0036】
アプリケーション112が、1つまたは複数のデジタルコンポーネントスロットを含むリソース(またはアプリケーションコンテンツ)をロードすると、アプリケーション112は、各スロットのデジタルコンポーネントを要求することができる。いくつかの実装形態では、デジタルコンポーネントスロットは、アプリケーション112に、デジタルコンポーネントを選択しクライアントデバイス110のユーザへの提示のためにデジタルコンポーネントをアプリケーション112に提供するデジタルコンポーネント配信システムからデジタルコンポーネントを要求させるコード(たとえば、スクリプト)を含み得る。
【0037】
一部の発行者140は、供給側プラットフォーム(「SSP」)170を使用して、そのリソースおよび/またはアプリケーションのデジタルコンポーネントスロットのためのデジタルコンポーネントを取得するプロセスを管理する。SSP170は、リソースおよび/またはアプリケーションのためのデジタルコンポーネントを取得するプロセスを自動化するハードウェアおよび/またはソフトウェアにおいて実装される技術プラットフォームである。SSP170は、1つまたは複数の需要側プラットフォーム「DSP」150と対話して、デジタルコンポーネントスロットのためのデジタルコンポーネントを選択するために使用され得る情報を取得することができる。以下でより詳しく説明されるように、この情報は選択基準または選択パラメータとも呼ばれ得る基準を含んでもよく、この基準は、デジタルコンポーネント提供者160のデジタルコンポーネントの提示のためにデジタルコンポーネント提供者160が提供する意思のある量を表現または指定する。各発行者140は、対応するSSP170または複数のSSP170を有し得る。一部の発行者140は、同じSSP170を使用し得る。
【0038】
デジタルコンポーネント提供者160は、発行者のリソースおよびアプリケーションのデジタルコンポーネントスロットに提示されるデジタルコンポーネントを作成(または別様に発行)することができる。デジタルコンポーネントプロバイダ160は、DSP150を使用して、デジタルコンポーネントスロットに提示するために、そのデジタルコンポーネントのプロビジョニングを管理することができる。DSP150は、リソースおよび/またはアプリケーションで提示するためのデジタルコンポーネントを配信するプロセスを自動化するハードウェアおよび/またはソフトウェアにおいて実装される技術プラットフォームである。DSP150は、デジタルコンポーネントプロバイダ160に代わって複数の交換局と対話して、複数の異なる発行者140のリソースおよび/またはアプリケーションで提示するためのデジタルコンポーネントを提供することができる。一般に、DSP150は、デジタルコンポーネントに対する要求を(たとえば、SSP170から直接、または交換によって)受信し、要求に基づいて1つまたは複数のデジタルコンポーネント提供者によって作成された1つまたは複数のデジタルコンポーネントに対する選択パラメータを生成(または選択)し、デジタルコンポーネントに関するデータ(たとえば、デジタルコンポーネント自体)および選択パラメータをSSP170に提供することができる。
【0039】
これまで、SSP170がデジタルコンポーネントを選択する方法、およびDSP150が個人化されたデジタルコンポーネントを配信する方法(たとえば、選択パラメータを生成する方法および/または選択パラメータ自体)は、クライアントデバイスにレンダリングされているウェブページの領域とは異なる領域によってクライアントデバイスに送られるクッキーである、サードパーティのクッキーから得られるユーザ情報(たとえば、ブラウジング情報、関心グループ情報など)を使用することを含んでいた。しかしながら、ブラウザはサードパーティのクッキーの使用をブロックし、個人化されたデジタルコンポーネントを選択して提供するのをより難しくしており、これは、ユーザが関心のないコンテンツを選択してユーザに配信することにより、コンピューティングリソースおよび帯域幅が無駄になり得ることを意味する。この問題を乗り越えるために、領域にわたるユーザの追跡を妨げながら、かつコンピューティングシステムにわたるユーザ情報の漏洩を防ぎながら、ユーザ関心グループ情報の使用を可能にするプライバシー保護技法が使用され得る。本文書において説明される技法は、このユーザ情報が他の関係者に共有されまたは漏洩されることから保護する。
【0040】
いくつかの場合、ウェブページ、アプリケーションページ、または、以前にユーザが訪問した、および/もしくはユーザと対話した他の電子リソースに関連する、デジタルコンポーネントをユーザが受信することが有益である。そのようなデジタルコンポーネントをユーザに配信するために、ユーザが特定のリソースを訪問するとき、またはリソースにおいて特定の行動を実行する(たとえば、ウェブページに提示された特定のアイテムと対話する、またはアイテムを仮想カートに追加する)ときに、ユーザが関心グループに割り当てられ得る。関心グループは、ブラウジング挙動、自己報告された関心、および/またはソーシャルネットワークページに投稿された情報に基づいて、同じ話題に関心があるものとして特定されたユーザの集合である。たとえば、「フットボール」という関心グループは、(たとえば、フットボールに関係するウェブページを訪れたことにより)フットボールに関心があるものとして特定されているユーザを含み得る。いくつかの実装形態では、関心グループは、デジタルコンポーネント提供者160に代わってデジタルコンポーネント提供者160もしくはDSP150もしくはSSP170によって、生成および/または更新/維持され得る。たとえば、各デジタルコンポーネント提供者160は、ユーザがデジタルコンポーネント提供者160の電子リソースを訪れるとき、ユーザを自分のユーザグループに割り当てることができる。より具体的には、製品情報ページなどの、デジタルコンポーネント提供者のウェブサイトの特定のページをユーザが訪問するとき、デジタルコンポーネント提供者は、そのページで説明されている製品に関心があるユーザを含む関心グループにそのユーザを追加し得る。いくつかの実装形態では、関心グループは発行者140によって生成され得る。たとえば、各発行者140は、発行者140のウェブサイト142の電子リソース145をユーザが訪れるとき、ユーザを自分のユーザグループに割り当てることができる。より具体的には、ハワイの休暇ページなどの、発行者のウェブサイトの特定のページをユーザが訪問するとき、発行者は、ハワイの休暇に関心があるユーザを含む関心グループにそのユーザを追加し得る。
【0041】
ユーザプライバシーを保護するために、ユーザの関心グループのメンバーシップは好ましくは、たとえばアプリケーション112のうちの1つによって、ユーザのクライアントデバイス110においてのみ維持される。特定の例では、ウェブブラウザは、ウェブブラウザを使用して、ユーザのための関心グループ識別子のリスト(「関心グループリスト」)を維持することができる。関心グループリストは、ユーザが追加される各関心グループのための関心グループ識別子を含み得る。関心グループを作成するデジタルコンポーネント提供者160または発行者140は、それらの関心グループのための関心グループ識別子を指定することができる。関心グループのための関心グループ識別子は、グループを記述するもの(たとえば、ガーデニンググループ)またはグループを表すコード(たとえば、記述的ではない英数字列)であり得る。ユーザのための関心グループリストは、クライアントデバイス110の安全なストレージに記憶されてもよく、および/または記憶されるときに暗号化されてもよい。
【0042】
アプリケーション112がデジタルコンポーネント提供者160に関するリソースまたはアプリケーションコンテンツを提示するとき、リソースは、アプリケーション112が1つまたは複数の関心グループ識別子を関心グループリストに追加することを要求することができる。それに応答して、アプリケーション112は、1つまたは複数の関心グループ識別子を関心グループリストに追加し、関心グループリストを安全に記憶することができる。以下でより詳しく説明されるように、アプリケーション112は、コンテンツに対する要求、たとえば1つまたは複数のデジタルコンポーネントに対する要求とともに、関心グループリストの中の関心グループ識別子をMPCクラスタ130に送信することができる。関心グループ識別子のプレーンテキスト(暗号化されていない、または別様に保護されていない読み取ることができるデータ)値を送信するのではなく、アプリケーション112は、関心グループ識別子の意図されていない受信者が関心グループ識別子のプレーンテキスト値にアクセスできないように、関心グループ識別子を暗号化し、暗号化された関心グループ識別子をMPCクラスタ130に送信することができる。
【0043】
MPCクラスタ130は、1つまたは複数の関心グループ識別子および追加の情報に基づいてデジタルコンポーネントを選択するためにマルチパーティ計算プロセスを実行する、複数のコンピューティングシステムを含む。この例では、MPCクラスタ130は、第1のコンピューティングシステムS1および第2のコンピューティングシステムS2を含む。コンピューティングシステムS1およびS2は、同じ関係者(たとえば、ブラウザ開発者、アプリケーション開発者、または産業グループ)によって、または異なる関係者によって(たとえば、一方はブラウザ開発者によって運用され他方は産業グループにより運用される)、所有され運用され得る。量が1つより多い限り、他の量のコンピューティングシステムも使用され得る。
【0044】
MPCを使用して関心グループ識別子に基づいてデジタルコンポーネントを選択することは、ユーザがどのグループに属するかを任意の関係者(MPCクラスタ130のコンピューティングシステムを運用する関係者を含む)が決定するのを防ぐことによって、ユーザのプライバシーを保護する。MPCプロセスはまた、暗号化技法とともに、SSP170およびDSP150の機密情報に他の関係者がアクセスするのを防ぐ。コンテンツを選択して配信するためのMPCおよび暗号化技法を使用するための例示的なプロセスが、
図2および
図3に示される。
【0045】
図2は、コンテンツを選択してコンテンツをクライアントデバイスに提供するためのプライバシー保護方法200のデータフロー図である。方法200の動作は、システム100の様々な構成要素によって実行され得る。たとえば、方法200の動作は、クライアントデバイス110およびアプリケーション112と通信している、MPCクラスタ130のコンピューティングシステムS1およびS2、SSP170、ならびにDSP150によって実行され得る。
【0046】
方法200は、クライアントデバイス110のアプリケーション112によって実行されるステップ1で開始する。ステップ1において、クライアントデバイス110のユーザは、アプリケーション112に指示を与えて特定のページに進む。たとえば、クライアントデバイス110のユーザ(たとえば、スマートフォン)は、たとえば鳥についてのニュースウェブサイトのホームページに進むようにアプリケーション112(たとえば、ウェブブラウザ)に指示するリンクをクリックすることができる。アプリケーション112が特定のページに進んだ後、アプリケーション112は、(たとえば、どのような1つのタイプの要求への応答も待つことなく)2つの異なるタイプの要求を並列に送信する。これらの要求は、(1)ユーザを含む1つまたは複数の特定のグループに関するデジタルコンポーネントの集合のための選択基準、ならびに(2)クライアントデバイスにおいて現在レンダリングおよび/または提示されているページ(またはネイティブアプリケーションインターフェースなどの他のオンラインリソース)の文脈に基づいて特定されるデジタルコンポーネントのための選択基準に対する要求である。特定のグループは、たとえば、関心グループ、またはクライアントデバイス110のユーザが属するユーザの別のグループであり得る。関心グループは、グループのユーザが関心があるものとして決定される、特定のエンティティ、カテゴリ、または他の関心対象の話題と関連付けられ得る。選択基準は、たとえば、基準の中でもとりわけ、ユーザのレーティング、コンテンツ提供者により提供されるレーティング、関心スコア、または付け値であり得る。要求は、グループおよび/または選択基準のフィルタリングを可能にする情報を含む。そのような情報は、
図3に関してさらに詳細に説明される。
【0047】
方法はステップ2に続き、これはステップ2aおよびステップ2bを含む。ステップ2aにおいて、アプリケーション112は第1の要求を生成してS1に送信し、ステップ2bにおいて、アプリケーション112は第2の要求を生成してS2に送信する。S1およびS2に送信される要求はともに、クライアントデバイスのユーザを含むグループ(たとえば、関心グループ)に関連するデジタルコンポーネントの選択基準に対する要求であり得る。これらの要求の生成および送信は、
図3を参照して以下で詳しく論じられる。ステップ2aおよび2bは並列に行われる。一般に、ステップ2aおよび2bは対称的なプロセスであってもよく、ステップ2aのあらゆる説明がステップ2bに等しく当てはまり、ステップ2aはユーザを含むグループの1つの部分集合に関して実行され、ステップ2bはユーザを含むグループの別の部分集合に関して実行される。S1に送信されるグループの部分集合は、S1とS2が共謀してユーザを特定または追跡するのを防ぐ1つの方法として、S2に送信されるグループの部分集合とは異なる。
【0048】
方法はステップ3に続き、MPCクラスタ130の2つのコンピューティングシステムS1およびS2がセキュアな2パーティ計算(2PC)プロトコルを実行して、ユーザを含む1つまたは複数の関心グループに関する1つまたは複数のデジタルコンポーネントのための選択基準を特定する。この2PCプロセスの間に、S1およびS2が情報を交換し、2段階キャッシュにアクセスして関連する選択基準を特定する。どちらのコンピューティングシステムも、ユーザ/クライアントデバイスに関する情報の完全なセットを有しないように、S1およびS2の各々が、他のコンピューティングシステムからユーザ/クライアントデバイスについての情報を曖昧にし、これは、コンピューティングシステムがウェブサイトにわたってユーザを追跡するのを防ぐ。このプロセスのさらなる詳細は、
図3に関して以下で提供される。
【0049】
方法はステップ4に続き、アプリケーション112がステップ2aおよび2bの各々に対する応答を受信する。各応答は、0個または1個のグループ(たとえば、関心グループ)のための選択基準の集合を含み得る。選択基準集合と呼ばれ得る応答は、特定の関心グループのための識別子、特定の関心グループのための選択値(たとえば、選択基準とも呼ばれ得る、特定の関心グループのメンバーであるユーザのためのデジタルコンポーネントを選択する際に使用するのに適格である選択値)、および特定の関心グループ、ユーザの対話、またはアプリケーション112が進むウェブサイトと関連付けられる他のデータなどのデータを含み得る。各選択基準集合は、選択基準集合の中の選択基準が適用されるデジタルコンポーネントに対応し得る。たとえば、応答は{IG_ID, post_revshare_bid, other_metadata}というフォーマットであってもよく、IG_IDは関心グループの識別子を表し、post_revshare_bidは選択値(たとえば、付け値)を表し、other_metadataは、関心グループと関連付けられる他のデータ、対応するデジタルコンポーネント、または選択値を表す。たとえば、post_revshare_bidは、デジタルコンポーネント、デジタルコンポーネントを特定するデータ、またはリモートサーバからデジタルコンポーネントを取得するための命令、たとえば、URLもしくはデジタルコンポーネントの位置への他のリンクを含み得る。別の例では、このデジタルコンポーネントまたは命令は、メタデータに含まれ得る。ステップ4の最後に、アプリケーション112は、ユーザおよび/またはブラウザがそのメンバーである関心グループのための0個から2個の選択基準集合を受信し得る。このプロセスのさらなる詳細は、
図3に関して以下で提供される。
【0050】
方法はステップ5に続き、アプリケーション112がコンテクスチュアルデジタルコンポーネント要求(「第3の要求」)をSSP170に送信する。たとえば、アプリケーション112(この例では、ウェブブラウザ)は、コンテクスチュアルデジタルコンポーネントに対する要求をSSP170に送信することができる。コンテクスチュアルデジタルコンポーネント要求は、関連するデジタルコンポーネントがそれにより特定され得るコンテクスチュアル信号を含み得る。コンテクスチュアル信号は、たとえば、要因の中でもとりわけ、クライアントデバイスにレンダリング/提示されている特定のウェブサイトまたはウェブページに提示されるコンテンツのカテゴリ、クライアントデバイス110のユーザの国または言語(たとえば、クライアントデバイスの設定において指定されるような)であり得る。ステップ5はステップ2と並行して実行され得る。
【0051】
方法はステップ6に続き、SSP170がコンテクスチュアルデジタルコンポーネント要求を任意の数のDSP150に転送する。たとえば、SSP170はいくつかのDSP150に要求を転送することができ、DSP150の各々は、デジタルコンポーネントのための選択基準候補で要求に応答する機会を有する。選択基準候補は、たとえば、コンテクスチュアル選択値、または特定のコンテクスチュアル信号のための選択値であり得る。コンテクスチュアル選択値は、デジタルコンポーネント提供者160がデジタルコンポーネント提供者160のデジタルコンポーネントの提示のために提供する意思のある量を、表現または指定することができる。DSP150は、デジタルコンポーネント提供者160の代わりに、選択値候補を選択または決定することができる。
【0052】
方法はステップ7に続き、1つまたは複数のDSP150が、コンテクスチュアル信号を使用して特定されるデジタルコンポーネントのための選択基準候補で要求に応答する。たとえば、DSP150は、コンテクスチュアル選択値および/または1つまたは複数のコンテクスチュアル信号でSSP170の要求に応答することができる。
【0053】
加えて、1つまたは複数のDSP150は任意選択で、ユーザの予測されたグループのための、または、選択基準に対応するデジタルコンポーネントが配信されるのに適格である別のグループのための、1つまたは複数のグループ選択基準(たとえば、選択基準集合)を返すことができる。DSP150は、ユーザを含むグループを特定する情報を与えられない。むしろ、DSPは、コンテクスチュアルデジタルコンポーネント要求に含まれるコンテクスチュアル信号を使用して、ユーザを含む可能性が高い関心グループを予測し、予測された関心グループのための所与の選択基準(たとえば、選択値)を返す。選択値は、関心グループのメンバーであるユーザのための対応するデジタルコンポーネントを選択する際に使用され得る。
【0054】
たとえば、1つまたは複数のDSP150は、コンテクスチュアル信号を使用してユーザを含む1つまたは複数の関心グループを予測し、今後他のブラウザにより出され得る、ステップ2aおよびステップ2bにおいて説明されるプロセスなどの、今後の関心グループ要求に応答するための、MPCクラスタ130によってキャッシュされるべき、または別様に記憶されるべき1つまたは複数の関心グループ選択値集合を返すことができる。これらの関心グループ選択基準集合は各々、ユーザを含むものとして予測される関心グループの識別子、選択値、選択値が適用されるデジタルコンポーネントを取得するためのデジタルコンポーネントもしくは命令、マーケティング要因、またはコンテンツアイテムのキャンペーンのペーシングに関する情報などの情報を含み得る。たとえば、関心グループ選択基準集合は、{IG_ID, pre_revshare_bid_price, TTL, pacing_info}の形態であってもよく、IG_IDは関心グループの識別子を表し、pre_revshare_bid_priceはレベニューシェアが発生する前の選択値を表し、TTLはtime-to-live、すなわちMPCクラスタが付け値をキャッシュし得る最長の期間を表し、pacing_infoは予算全体に対するコンテンツアイテムのキャンペーンのペーシングおよびコンテンツアイテムの予測される有効性に関する情報を表す。ユーザを含む関心グループの予測は、たとえば、予測される関心グループをコンテクスチュアル信号入力に基づいて出力するように訓練される機械学習モデルへとコンテクスチュアル信号を入力することによって実行され得る。
【0055】
関心グループ選択基準集合は、今後、供給されるTTLおよびペーシング情報などの要因を条件として、現在のコンテクスチュアル要求ステップ5およびステップ6における要求パラメータと同様の要求パラメータを含む今後の関心グループ要求2aおよび2bのための示される選択値とともに、SSP170およびMPCクラスタ130が付け値を出すのをDSP150が許可することを義務付けるものとして機能する。たとえば、アプリケーション112が、たとえばIG_IDおよび現在のコンテクスチュアル要求の中の信号、たとえばウェブサイトURL、位置、言語などと一致する信号を示す関心グループ要求を(ステップ2aまたは2bなどにおいて)出す場合、DSP150は、特定の値を有する関心グループ選択値集合のための選択値をSSP170およびMPCクラスタ130が出すことを許可することができる。
【0056】
たとえば、DSP150は、たとえばIG_IDによって特定される関心グループのどの集合が、アプリケーション112が向けられた現在のウェブサイトを訪れるユーザと関連付けられ得るかを予測し、前もって関心グループ選択基準集合を出すことができる。出された選択値の集合は、今後の関心グループ選択基準要求に応答する際に、レイテンシおよびDSP150のサーバ負荷を減らすためにMPCクラスタ130によってキャッシュされ得る。たとえば、後続の関心グループ選択基準要求が、前もって出されてキャッシュされた関心グループ選択基準集合のパラメータと一致するパラメータを含む場合、MPCクラスタ130は単に、キャッシュされた選択基準集合を使用して応答することができる。
【0057】
たとえば、DSP150は、過去のユーザ対話データまたは他の過去のデータを使用して、関心グループ選択値もしくは選択値の集合を推測で生成し、または、アプリケーション112が向けられた現在のウェブサイトを訪れるユーザのための関心グループに予測的に値を付けることができる。たとえば、アプリケーション112が向けられた現在の鳥のニュースウェブサイトを訪れるユーザが一般に、キャンプ、自然、およびアウトドア用品のための関心グループと関連付けられることを、DSP150が過去のデータから決定する場合、ステップ10を参照して以下で論じられるように、DSP150は、それらの関心グループのための選択値を推測で生成し、MPCクラスタ130のキャッシュにそれらの選択値を記憶することができる。
【0058】
方法はステップ8に続き、SSP170は、受信される選択基準候補にいくつかのフィルタリング基準を適用し、コンテクスチュアルデジタルコンポーネント要求に応答を提供する。SSP170は、受信された選択基準候補に、買い手排除および/または広告素材排除などのフィルタを適用することができる。たとえば、SSP170は、発行者140によってSSP170に提供されるか、またはSSP170によって維持されるかのいずれかであるリスト上の特定のデジタルコンポーネント提供者を、付け値を提供することから排除することができる。別の例では、SSP170は、SSP170に提供されるか、またはSSP170によって維持されるかのいずれかであるリスト上の特定のコンテンツアイテムを、候補として含まれることから排除することができる。SSP170が選択基準候補をフィルタリングすると、SSP170は、SSP170に提供されるか、SSP170により維持されるかのいずれかである特定の値付け規則を適用することによって、選択値を計算することができる。たとえば、SSP170は、DSP150によって提供される値付け規則を適用することによって、レベニューシェア後の選択値を計算し、候補の中からの選択プロセスを行うことができる。たとえば、SSP170は、選択基準候補によって指定されるコンテクスチュアルコンテンツアイテム選択値の中でオークションを行い、勝利した、または最高のコンテクスチュアルコンテンツアイテム選択値を、計算された選択値とともにアプリケーション112に返すことができる。たとえば、SSP170は、計算された選択値およびデジタルコンポーネント(または対応する選択値を取り出すための命令)をアプリケーション112に提供することができる。
【0059】
いくつかの実装形態では、SSP170はまた、ユーザを含むものとして予測されるグループのための所与の選択基準で、コンテクスチュアルデジタルコンポーネント要求に応答することができる。たとえば、SSP170は、上で論じられた任意の処理および/または規則を適用し、DSP150によってユーザを含むと予測される任意の数の関心グループのための選択値または選択基準集合を提供することができる。このようにして、クライアントデバイス110は、MPCクラスタ130によって実行される2PCプロセスが、ユーザをメンバーとして含む関心グループに対してどのような選択基準も返せなかったとしても、1つまたは複数の関心グループ選択基準のための選択値を与えられる。たとえば、アプリケーション112がそれぞれ2aおよび2bにおいて要求をS1およびS2に送信するとき、MPCクラスタ130のキャッシュが、ユーザを含むいずれの関心グループのためのいずれの選択基準も含まない場合、MPCクラスタ130は、どのような選択基準を用いてもアプリケーション112に応答することができない。この状況においても、ユーザを含むことが予測される関心グループのための所与の選択基準が、コンテクスチュアルデジタルコンポーネント要求に応答して提供され得るので、MPCクラスタ130がどのような関心グループ選択基準集合を用いても応答できないとしても、アプリケーション112にはまだ、評価すべき関心グループ選択基準集合が少なくとも1つある。
【0060】
方法はステップ9に続き、アプリケーション112が、クライアントデバイス110において表示すべきデジタルコンポーネントを特定するために、最終選択プロセスを実行する。いくつかの実装形態では、アプリケーション112は、オークションを実行して、最高の値を伴う選択値、たとえば選択基準を有する選択基準集合(またはデジタルコンポーネント)を選択することによって、クライアントデバイス110において提示されるべきコンテンツアイテムを選択することができる。たとえば、オークションは、SSP170によって提供されるようなステップ8からの勝利したコンテクスチュアル選択値および対応するデジタルコンポーネント(たとえば、複数の選択基準候補からの1つの選択基準候補)、コンピューティングシステムS1および/またはS2から受信された任意の関心グループ選択基準集合(たとえば、0個から2個の関心グループ付け値を指定する関心グループ選択基準)、ならびに、コンテクスチュアルデジタルコンポーネント要求に応答してSSP170から受信される所与の選択基準(たとえば、ユーザを含むことが予測される関心グループのための所与の選択値を指定する所与の選択基準)などの予測される選択基準を使用して、行われ得る。アプリケーション112は、ユーザおよび/またはブラウザが属する関心グループと関連付けられる選択基準のみを考慮するために、予測される選択基準をフィルタリングする。アプリケーション112は、SSP170およびMPCクラスタ130のコンピューティングシステムS1およびS2から、コンテクスチュアルデジタルコンポーネント要求に対する計算された選択値をすでに受信しているので、アプリケーション112は、第1の価格オークションなどの簡単な選択プロセスを行って、最高のレベニューシェア後の値を伴う選択値候補を選ぶことができる。アプリケーション112は次いで、勝利した選択値と関連付けられるデジタルコンポーネントをレンダリングすることができる。
【0061】
方法はステップ10で続くことができ、SSP170が、MPCクラスタ130のコンピューティングシステムS1およびS2によって維持される関心グループ選択基準を更新する。SSP170は、MPCクラスタ130のコンピューティングシステムS1およびS2に第1段階の鍵および第2段階のルックアップテーブル(LUT)を送信することによって、ステップ10を実行する。
【0062】
たとえば、SSP170はまず、出された関心グループ選択基準にフィルタリング基準を適用し、値付け規則を適用して、ステップ8に関して説明されたプロセスと同様のプロセスにおいて、得られる選択値を計算することができる。SSP170は次いで、信号の中でもとりわけ、特定のURL、位置、言語などの関心グループ要求信号でもある、コンテクスチュアル要求において提供されるすべての信号から合成メッセージを作成することができる。SSP170は次いで、合成メッセージをバイトアレイへと直列化して、要求信号および他の要求情報を表す暗号メッセージを作成する。たとえば、SSP170は、SHA256アルゴリズムを使用して、バイトアレイを固定サイズのデジタルダイジェストへと暗号化ハッシュすることができる。本文書での議論では、このデジタルダイジェストはIG_Request_Keyと呼ばれ得る。
【0063】
MPCクラスタ130のコンピューティングシステムS1およびS2は各々、2段階のLUTキャッシュを維持する。たとえば、第1段階は、nビットに切り捨てられたSHA256(IG_Request_Key)によって暗号鍵生成され得る。第2段階自体は、その鍵がHMACSHA256(IG_Request_Key, IG_ID)であるLUTであってもよく、IG_IDは特定の関心グループの識別子を表し、HMACSHA256はSHA-256ハッシュ関数から構築されるハッシュベースのメッセージ認証コードを表す。第2段階のキャッシュ値は、{post_revshare_bid, metadata}という形式で記憶され得る。メタデータは、情報の中でもとりわけ、TTL値、ペーシング情報、買い手アカウントの識別子、レベニューシェア前の選択値およびレベニューシェア後の選択値の値などの情報を含む。SSP170は、アプリケーション112のみにより検証され得る、または公に検証可能であり得る秘密鍵を使用して、暗号メッセージの少なくとも一部分にデジタル的に署名することができる。たとえば、SSP170は、その秘密鍵でメタデータの集合全体にデジタル的に署名することができる。MPCクラスタ130のコンピューティングシステムS1およびS2は次いで、受信された第1段階の鍵および第2段階のLUTを使用して、2段階のLUTを独立に更新する。
【0064】
ステップ10においてMPCクラスタ130のコンピューティングシステムS1およびS2に関心グループ選択基準(たとえば、選択基準集合)のための選択基準候補を送信することに加えて、SSP170は任意選択で、最高の値を有する選択基準候補をすでに含む関心グループ選択基準を、ステップ8の一部としてアプリケーション112に送信し得る。このオプションでは、ステップ9の一部としてアプリケーション112によって実行される各々の最終選択プロセスに対して、アプリケーション112は、利用可能であれば、ステップ8において受信されたコンテクスチュアル選択値、MPCクラスタ130のキャッシュにキャッシュされたステップ2aにおいて受信された関心グループ選択値、MPCクラスタ130のキャッシュにおいてキャッシュされたステップ2bにおいて受信された関心グループ選択値、および/または、キャッシュされていないステップ8において受信された関心グループ選択値のうちの1つまたは複数を含む選択値のいくつかの集合の中から、最高の選択値を選択する(アプリケーション112はさらに、クライアントデバイス110のユーザが関連付けられる関心グループの真のリストに基づいてこれらの付け値をフィルタリングする)。
【0065】
図3は、コンテンツを選択するための例示的なプロセス300を示すスイムレーン図を示す。プロセス300におけるステップの番号は、方法200におけるステップの番号に対応する。たとえば、プロセス300のステップ2a-1、2a-2、2a-3、および2a-4は、方法200のステップ2aの一部を形成し得る例示的なステップである。同様に、ステップ3a-1から3a-8は、方法200のステップ3の一部を形成し得る例示的なステップであり、ステップ4a-1から4a-2は、方法200のステップ4の一部を形成し得る例示的なステップである。方法300の動作は、システム100の様々な構成要素によって実行され得る。たとえば、方法300の動作は、クライアントデバイス110およびアプリケーション112と通信しているMPCクラスタ130のコンピューティングシステムS1およびS2によって少なくとも一部実行され得る。
【0066】
いくつかの実装形態では、ステップ2aおよび2bは並列に完了し、対称的なプロセスである。したがって、
図3はステップ2aを参照して論じられるが、コンピューティングシステムの動作を逆にして、ステップ2bに等しく適用可能である。たとえば、逆にされた状況では、S1は
図3のS2と位置が入れ替わるが、
図3の残りは同じままでステップ2bを行う。
【0067】
ステップ2a-1において、アプリケーション112は、たとえばランダムに、2つの公開/秘密鍵のペアであるpublic_key1、public_key2、private_key1、およびprivate_key2を生成する。たとえば、これらの公開/秘密鍵のペアは、NIST P-256鍵ペアなどの、楕円曲線暗号(ECC)鍵ペアであり得る。アプリケーション112は、コンピューティングシステムS1とはpublic_key1のみを共有し、コンピューティングシステムS2とはpublic_key2のみを共有するので、public_key1およびpublic_key2は短期の準公開鍵である。アプリケーション112はまた、要求のために、ノンス、すなわち暗号通信において一度だけ使用され得る任意の数を作成する。
【0068】
ステップ2a-2において、アプリケーション112はランダムに、クライアントデバイス110のユーザが属する関心グループの真のリストを、2つの集合G1およびG2に区分する。G2={g2,1, ... g2,k}は、G2にランダムに割り振られた関心グループの集合であると仮定する。クライアントデバイス110のユーザ、および拡張として、アプリケーション112は、n個の関心グループと関連付けられ、各関心グループは、等しい確率でG1またはG2に入れられると仮定する。いくつかの実装形態では、集合G1およびG2の大きさは等しくない。アプリケーション112は好ましくはユーザを含む関心グループのリストを維持するので、このステップでは、アプリケーションが関心グループのそのリストを関心グループの2つの部分集合へと画定できることを思い出されたい。いくつかの実装形態では、関心グループの2つの部分集合の要素は重複しない。いくつかの実装形態では、関心グループの2つの部分集合の要素は重複する。
【0069】
アプリケーション112が関連付けられるいずれの関心グループも、G1またはG2に存在しない確率pが0ではない。アプリケーション112と関連付けられないランダム関心グループがG1またはG2に存在する確率は、偽陽性率(FPR)である。したがって、G1を作成するためのプロセスは、ε-差分プライバシーを満たし、
【0070】
【0071】
である。たとえば、FPRが1%でありpが50%である場合、ε=log(50)=3.9である。同様に、G2を作成するためのプロセスも、ε-差分プライバシーを満たしε=3.9である。
【0072】
アプリケーション112は、{IG_Request_Key, nonce}などの合成鍵を用いて、鍵付き擬似ランダム関数をG2の中の各関心グループに適用することによって、G2をG2
Tへと変換する。たとえば、G2
T = {x : HMAC(HMAC(IG_Request_Key, x), nonce), ∀x∈G2}であり、関数HMAC(clear_text, secret_key)は鍵付きメッセージ認証コードを計算する。このアルゴリズムは、鍵付きハッシュメッセージ認証コード、または、暗号学的ハッシュ関数と秘密暗号鍵の両方を伴う特定のタイプのメッセージ認証コード(MAC)である。
【0073】
ステップ2a-3において、アプリケーション112は次いで、ブルームフィルタなどの確率的データ構造、実装形態、および構造に対するFPRを含む適切なパラメータを選択することができる。この特定の例では、アプリケーション112は次いで、それぞれ集合G1およびG2のためのブルームフィルタG1'およびG2'を作成することができる。FPRにより、G1⊂G1'、G2⊂G2'、|G1|<<|G1'|、かつ|G2|<<|G2'|である。確率的データ構造を使用することによって、ユーザを実際に含む関心グループの各部分集合は、たとえば、部分集合のうちの1つを取得したシステムがフィンガープリンティングを通じてユーザを特定または追跡することが可能であるのをより難しくすることによって、ユーザのプライバシーを保護することの助けとなるように追加された、ユーザを含まない関心グループの集合を有する。
【0074】
たとえば、アプリケーション112は、ブルームフィルタまたはカッコウフィルタ、G2
TのためのG2'などの、確率的データ構造を作成することができる。ブルームフィルタは、関心グループ識別子IG_IDをm個のアレイ位置へとハッシュするために、k個のハッシュ関数を使用する。たとえば、hj : IG_ID → [0, m)であり、1<=j<=kである。H(IG_ID)は、H(IG_ID) = HMAC(IG_Request_Key, IG_ID)によって定義されてもよく、結果はm進数の表現...H3H2H1で表される。したがって、hm(IG_ID)は、H(IG_ID)の第m桁、すなわちHmとして定義される。
【0075】
ステップ2a-4において、アプリケーション112は、暗号化されたメッセージにおいて、単一のパラメータとともに要求をコンピューティングシステムS1に送信する。パラメータは、たとえば、PubKeyEncrypt(Stage_1_Lookup_Key || G2' || PubKeyEncrypt(G2
T, S1) || public_key2 || nonce, S2)であり得る。この式では、||は、1つまたは複数の簡単なメッセージから複雑なメッセージを合成する任意の無損失可逆方法を表す。たとえば、||は、正確なバイナリオブジェクト表現またはプロトコルバッファ方法を表すことができる。
【0076】
この特定の例では、Stage_1_Lookup_Keyはnビットに切り捨てられたSHA256(IG_Request_Key)であるが、他の適切な鍵が使用され得る。この特定の例では、PubKeyEncrypt(clear_text, domain)は、領域からフェッチされる公開鍵を使用して平文を暗号化するために確率的公開鍵暗号化アルゴリズムを適用した暗号化結果である。アプリケーション112によって使用される公開鍵暗号化アルゴリズムは多くの場合、ECCに基づく。たとえば、公開鍵暗号化アルゴリズムは、NIST P-256であり得る。
【0077】
ステップ3a-1において、コンピューティングシステムS2が対応する秘密鍵を厳しく内密に保つという仮定のもとで、コンピューティングシステムS1は、アプリケーション112がコンピューティングシステムS2からフェッチした公開鍵を使用した要求の暗号化により、受信された要求をコンピューティングシステムS2に転送すること以外に、受信された要求を使用した処理を何ら実行することができない。要求を転送することによって、コンピューティングシステムS1は、アプリケーション112を実行するクライアントデバイスのIPアドレスをコンピューティングシステムS2から隠すので、コンピューティングシステムS2は、関心グループ要求と関連付けられるクライアントデバイス上のアプリケーションのどのIPアドレスを使用してもユーザを追跡することができず、追加のプライバシー保護を提供する。
【0078】
ステップ3a-2において、コンピューティングシステムS2は、その固有の秘密鍵を使用して受信された要求を復号して、いくつかのパラメータを復元する。たとえば、パラメータは、Stage_1_Lookup_Key、G2' (すなわち、 G2
Tのために構築されたブルームフィルタ)、PubKeyEncrypt(G2
T, S1)、すなわち、コンピューティングシステムS1のみが復号できる暗号化されたG2
T、現在の要求のためにアプリケーション112によって作成されるpublic_key2、およびノンスを含む。
【0079】
コンピューティングシステムS2が、たとえばSSP170と共謀する場合であっても、コンピューティングシステムS2は、IPアドレスに基づいて関心グループ要求をアプリケーションからのコンテクスチュアル要求と相関付けるために、関心グループに共通のクライアントデバイスのIPアドレスとコンテクスチュアル要求とを使用することができない。この保護は、Stage_1_Lookup_Keyが限られた数のビットを有するときにはさらにより明らかである。
【0080】
ステップ3a-3において、コンピューティングシステムS2は、Stage_1_Lookup_Keyを使用して、2段階のルックアップテーブル(「LUT」)にクエリする。結果は、その鍵がHMAC(IG_Request_Key, IG_ID)であるような古典的なLUTである。言い換えると、コンピューティングシステムS2は、復号された要求からStage_1_Lookup_Keyを使用して、一致するエントリについてLUTにクエリする。
【0081】
ステップ3a-4において、コンピューティングシステムS2は、ブルームフィルタG2'を用いてLUTをフィルタリングする。ブルームフィルタの偽陽性率が1%であると仮定すると、LUTの中の概ね1%のエントリがフィルタを通過する。LUTの中のエントリの数は、コンピューティングシステムS2によってキャッシュされるすべてのエントリの概ね2-nである。したがって、nは、ステップ2a-8からステップ2a-11(ステップ2a-8、ステップ2a-11を含む)の通信および計算のコストを制御する。nが小さいほど、通信および計算のコストは高く、異なるIG_Request_Keyと関連付けられるLUTの中のエントリの数が多くなり、これは、コンピューティングシステムS2がSSP170と共謀して、両方のタイプのコンテンツアイテム要求の中の共通の標的信号に基づいて関心グループとコンテクスチュアル要求を相関付けることをより難しくする。
【0082】
ステップ3a-5において、コンピューティングシステムS2は、選択基準に従って、フィルタリングされたエントリを並べる。たとえば、コンピューティングシステムS2は、レベニューシェア後の選択値(または付け値)を使用して、フィルタリングされたエントリを、最高のものを最初にして、最低のものまで並べることができる。各エントリに対して、コンピューティングシステムS2は鍵/値のペアを準備し、鍵はHMAC(HMAC(IG_Request_Key, IG_ID), nonce)である。値はPubKeySign(PubKeyEncrypt(metadata_for_IG, public_key2), MPC2)であり、PubKeySign(clear_text, domain)は、秘密鍵を使用してデジタル署名アルゴリズム(ECDSA NIST P-256など)を平文に適用することによって、領域が作成するデジタル署名と平文を連結するために使用される関数である。関心グループIGのためのmetadata_for_IGは、関心グループに対応するデジタルコンポーネントのための選択基準集合を含み得る。上で説明されたように、選択基準集合は、選択値、デジタルコンポーネント、またはデジタルコンポーネントを取得するための命令などを含み得る。PubKeyEncryptは、関心グループのメタデータについて実行される暗号化関数であり、公開鍵public_key2を使用することは、コンピューティングシステムS1がIG_IDによって特定される特定の関心グループのための選択値を学習するのを防ぎ、IG_IDは、要求がそれから生成されるウェブサイトURLなどの信号を推測するためにコンピューティングシステムS1によって使用され得る。PubKeySignは、コンピューティングシステムS1がコンピューティングシステムS2になりすまして誤った結果を生成するのを防ぐ。したがって、コンピューティングシステムS2は、鍵/値のペアの順序付けられた集合へと関心グループの付け値の集合を変換する。コンピューティングシステムS2は次いで、鍵/値のペアの順序付けられたリストおよびPubKeyEncrypt(G2
T, S1)をコンピューティングシステムS1に送信する。
【0083】
ステップ3a-6において、コンピューティングシステムS1は、PubKeyEncrypt(G2
T, S1)を復号して平文でG2
Tを復元する。たとえば、コンピューティングシステムS1は、アプリケーション112によってコンピューティングシステムS1のみに提供される公開鍵に対応する秘密鍵を使用して、PubKeyEncryptを復号する。
【0084】
ステップ3a-7において、コンピューティングシステムS1は、その鍵がG2
Tの中にある順序付けられた鍵/値のペアのリストから第1の鍵/値のペアを見つけるために、G2
Tを使用して勝利した関心グループを選択する。順序付けられたリストはすでに、最高から最低のレベニューシェア後の選択値の順序になっているので、コンピューティングシステムS1は、単にG2
Tをクエリして、鍵/値のペアの実際の値へのアクセス権なしで、その鍵がG2
Tの中にある順序付けられたリストから第1の鍵/値のペアを選択し、レベニューシェア後の付け値が最高である、アプリケーション112が関連付けられる関心グループの真のリストの中にある関心グループを選択することができる。選択された鍵/値のペアが結果である。
【0085】
ステップ3a-8において、コンピューティングシステムS1は、後でアプリケーション112により検証するために、固有の秘密鍵を用いて選択された鍵/値のペアに署名する。たとえば、コンピューティングシステムS1は、アプリケーション112がコンピューティングシステムS1のみに提供する公開鍵に対応する秘密鍵を用いて、勝利した鍵/値のペアに署名することができる。
【0086】
ステップ4a-1において、コンピューティングシステムS1は、選択された鍵/値のペア、または結果をアプリケーション112に返信する。
【0087】
ステップ4a-2において、アプリケーション112は、次のように結果を復号して妥当性確認する。
【0088】
アプリケーション112は、結果がコンピューティングシステムS1によって暗号化され署名されることを検証する。たとえば、鍵はHMAC(HMAC(IG_Request_Key, Winning_IG_ID), nonce)であり得る。値は、PubKeySign(PubKeyEncrypt(metadata_for_IG, public_key2), S2)であり得る。アプリケーション112は、Winning_IG_IDを復元し、それがG2の要素であることを検証する。アプリケーション112はIG_Request_Key、ノンス、およびG2を知っているので、Winning_IG_IDが集合G2の要素であることを検証することが可能である。アプリケーション112は、値がコンピューティングシステムS2によって暗号化され署名されることを検証する。アプリケーション112は次いで、private_key2を用いて値を復号してmetadata_for_IGを復元する。
【0089】
暗号プロセス300は、さらなるプライバシーおよびセキュリティの対策を提供する。このプロセスの間、コンピューティングシステムS2は、平文でブルームフィルタG2'を受信する。以前の分析に基づいて、ブルームフィルタG2'は差分プライバシーを満たす。加えて、コンピューティングシステムS2は、平文のStage_1_Lookup_Key、すなわち、nビットに切り捨てられたSHA256(IG_Request_Key)を受け取る。加えて、コンピューティングシステムS1は、クライアントIPアドレスのみを平文で見る。したがって、MPCクラスタのコンピューティングシステムのいずれもが、ユーザのデータの全体にアクセスすることができず、ユーザの身元を推測することができない。
【0090】
図4は、コンテンツを選択するための例示的なプライバシー保護プロセス400の流れ図である。いくつかの実装形態では、プロセスまたは方法400は、1つまたは複数のシステムによって実行され得る。たとえば、プロセス400は、
図1~
図3のクライアントデバイス110、アプリケーション112、およびMPCクラスタ130によって実施され得る。具体的には、プロセス400は、1つまたは複数のプロセッサ510および1つまたは複数のメモリ要素、たとえば、実行されると1つまたは複数のプロセッサにプロセス400のステップを含む動作を実行させる命令を含む
図5の記憶デバイス530を備える、システムによって実施され得る。いくつかの実装形態では、プロセス400は、非一時的コンピュータ可読媒体に記憶された命令として実施されてもよく、命令がコンピューティングシステム(たとえば、分散型コンピューティングシステム)によって実行されると、命令はコンピューティングシステムにプロセス400の動作を実行させることができる。好ましくは、コンピューティングシステムは1つまたは複数のサーバを備える。分散型コンピューティングシステムは、ネットワークによって接続される複数のサーバを含み得る。
【0091】
プロセス400は、マルチパーティ計算(MPC)クラスタの第1のMPCサーバ(たとえば、
図1、
図2、および
図3のS2)によって、MPCクラスタの第2のMPCサーバ(たとえば、
図1、
図2、および
図3のS1)から、クライアントデバイスの特定のユーザが属する2つ以上の関心グループの集合のうちの少なくとも1つの関心グループの選択基準に対する要求を受信することで開始し、受信された要求は第1のMPCサーバにクライアントデバイスの識別子を明らかにしない(402)。たとえば、
図2および
図3のステップ3a-1に関して上で説明されたように、コンピューティングシステムS2は、コンピューティングシステムS1から、関心グループの付け値に対する要求を受信することができる。要求は、クライアントデバイスの識別子であるアプリケーション112のIPアドレスを、コンピューティングシステムS2に明らかにしない。これには、ユーザプライバシーを守りユーザデータのセキュリティを保護するという技術的な効果がある。たとえば、ユーザをメンバーとして含む関心グループの部分のみが、MPCクラスタの各MPCサーバに提供される。したがって、いずれのMPCサーバも、ユーザの完全なユーザ関心グループのメンバーシップを決定することはできない。確率的データ構造の使用は、ユーザプライバシーおよびデータセキュリティをさらに保護しながら、各MPCサーバに送信される要求のデータサイズを減らすというさらなる技術的な効果をもたらす。多くの要求、たとえば一日数千個または数百万個の要求にわたって合計されると、これは、かなりの帯域幅およびレイテンシの低減をもたらし、要求を送信し得るモバイルデバイスの電池の消耗を減らす。
【0092】
プロセス400は、第1のMPCサーバによって、クライアントデバイスの特定のユーザが属する2つ以上の関心グループの集合のうちの少なくとも1つの関心グループの順序付けられた選択基準の集合を決定することによって、受信された要求に応答することで続く(404)。いくつかの実装形態では、順序付けられた選択基準の集合は、暗号化されていないもしくはプレーンテキストの形式でアクセスされること、または別様に第2のMPCサーバによって明らかにされることから守られる要求の部分を使用して、第1のMPCサーバのキャッシュから取り出される。たとえば、
図2および
図3のステップ3a-2から3a-5に関して上で説明されたように、コンピューティングシステムS2(すなわち、第1のMPCサーバ)は、要求の部分を使用することによってコンピューティングシステムS2の2段階のLUTから取り出される関心グループの付け値の順序付けられた集合を決定することができる。これには、選択プロセスの間にデータセキュリティおよびユーザプライバシーを維持するという技術的な効果がある。この手法を使用することは、いずれのMPCクラスタも、ユーザの完全な関心グループのメンバーシップを取得することを防ぐ。加えて、この手法は、関心グループのための選択値を提供するDSPについての機密データをMPCサーバが取得するのを防ぐ。
【0093】
プロセス400は、順序付けられた選択基準の集合を鍵/値のペアの集合へと変換することに続き、鍵/値のペアの各々の値は、第2のMPCにより明らかにされることから守られる(406)。たとえば、
図2および
図3のステップ3a-2から3a-5に関して上で説明されたように、コンピューティングシステムS2は、順序付けられた関心グループの付け値の集合を鍵/値のペアの集合へと変換することができる。これにも、選択プロセスの間にデータセキュリティおよびユーザプライバシーを維持するという技術的な効果がある。この手法を使用することは、いずれのMPCクラスタも、ユーザの完全な関心グループのメンバーシップを取得することを防ぐ。加えて、この手法は、関心グループのための選択値を提供するDSPについての機密データをMPCサーバが取得するのを防ぐ。
【0094】
プロセス400は、第1のMPCサーバによって、鍵/値のペアの集合の値を第2のMPCサーバに明らかにすることなく、最高の値を有する鍵を第2のMPCサーバが特定することを可能にするデータとともに、鍵/値のペアの集合を第2のMPCに送信することで続く(408)。たとえば、
図2および
図3のステップ3a-2から3a-5に関して上で説明されたように、コンピューティングシステムS2は、コンピューティングシステムS1が値にアクセスするのを許可することなく、最高の値を有する鍵をコンピューティングシステムS1が特定することを可能にするデータとともに、鍵/値のペアの集合として付け値の順序付けられたリストをコンピューティングシステムS1に送信することができる。これには、ユーザプライバシーおよびデータセキュリティを保護するという技術的な効果がある。加えて、ユーザをメンバーとして含む各関心グループではなく、勝利した関心グループのためのデータのみを送信することにより、MPCサーバからクライアントデバイスに送信されるデータの量が減る。
【0095】
いくつかの実装形態では、プロセス400は、第1のMPCサーバによって、第1のMPCサーバおよび第2のMPCサーバと異なるコンテンツ配信システムから、所与の関心グループがクライアントデバイスの特定のユーザを含むものとしてコンテンツ配信システムによって予測されるような条件のセットの文脈において、所与の関心グループの所与の選択基準を受信することと、第1のMPCサーバによって、第1のMPCサーバのキャッシュに、クライアントデバイスの特定のユーザを含むものとして予測される所与の関心グループの所与の選択基準を、適用可能な文脈に関連してキャッシュすることとを含み得る。これには、関心グループのメンバーシップに基づくデジタルコンポーネントのより高速な選択という技術的な効果がある。関心グループのメンバーシップに基づいて配信されるデジタルコンポーネントのための選択基準をキャッシュすることによって、MPCサーバは、適格なデジタルコンポーネント(たとえば、ユーザをメンバーとして含む関心グループのためのデジタルコンポーネント)をより迅速に特定し、キャッシュされた選択値に基づいて勝利するデジタルコンポーネントを選択することができる。
【0096】
たとえば、
図2のステップ10に関して上で説明されたように、SSP170は、コンピューティングシステムS1およびS2に、DSP150によって提供される推測的または予測的な選択値を送信することができる。コンピューティングシステムS1およびS2の各々は、それぞれの2段階のLUTを独立に更新することができる。
【0097】
いくつかの実装形態では、プロセス400はさらに、コンテンツ配信システムによって、クライアントデバイスによって出されたコンテンツ要求を受信するステップと、コンテンツ要求に応答して、コンテンツ要求に応答した選択基準候補を生成するステップと、コンテンツ要求に基づいて、クライアントデバイスの特定のユーザを含むものとして予測される0個以上の関心グループを決定するステップと、所与の関心グループがクライアントデバイスの特定のユーザを含むものとして予測されるという決定に基づいて、所与の関心グループの所与の選択基準を生成するステップと、コンテンツ配信システムによって、配信基準候補および所与の配信基準をクライアントデバイスに送信するステップと、コンテンツ配信システムによって、第1のMPCサーバに、所与の関心グループの所与の配信基準を送信するが、配信基準候補を送信しないステップとを含む。たとえば、DSP150は、アプリケーション112により出されるコンテンツ要求を受信し、アプリケーション112が実行されるクライアントデバイス110のユーザが特定の関心グループの一部である可能性が高いと決定し、関心グループのための予測的な付け値を生成することができる。これには、関心グループのメンバーシップとデジタルコンポーネント提示環境のためのコンテクスチュアルデータの両方を使用して、他の関係者にユーザデータを漏洩することなく、アプリケーションによって表示されるべきデジタルコンポーネントのための選択プロセスをアプリケーションが完了することを可能にし、それにより、ロバストなデジタルコンポーネント選択プロセス全体でデータセキュリティを高めてユーザ体験を改善するという技術的な効果がある。加えて、並列の要求に基づいてクライアントデバイスにおいて最終選択プロセスを実行することで、選択プロセスをより迅速に完了することができ、これは、デジタルコンポーネントがミリ秒で選択されなければならない状況を引き起こし得るエラーを防ぐことができる。
【0098】
いくつかの実装形態では、プロセス400はさらに、第2のMPCサーバによって、第2のMPCサーバがアクセスできない、たとえば復号されることが可能ではない第1の暗号化された要求を受信するステップと、第2のMPCサーバによって、第1の暗号化された要求を第1のMPCサーバに転送するステップと、第2のMPCサーバから、鍵/値のペアの集合を受信するステップと、第2のMPCサーバによって、鍵/値のペアの値を明らかにすることなく、最高の値を有する所与の鍵/値のペアを特定するステップと、所与の鍵/値のペアを含む第1の暗号化された要求への第1の署名された応答を生成するステップであって、第1の署名された応答が第2のMPCサーバの秘密鍵で署名される、ステップと、第1の暗号化された要求に応答して、第1の署名された応答をクライアントデバイスに送信するステップとを含む。これには、選択プロセスの間にデータセキュリティおよびユーザプライバシーを維持するという技術的な効果がある。この手法を使用することは、いずれのMPCクラスタも、ユーザの完全な関心グループのメンバーシップを取得することを防ぐ。加えて、この手法は、関心グループのための選択値を提供するDSPについての機密データをMPCサーバが取得するのを防ぐ。加えて、要求において暗号化および署名を使用することは、データセキュリティを保護し、MPCサーバとクライアントデバイスとの間に生じ得る不正を防ぐ。応答を検証するために署名を使用することは、暗号化された応答が修正されていないことを確実にする。
【0099】
たとえば、コンピューティングシステムS1は、コンピューティングシステムS1によってアクセス可能ではない、または復号されることが可能ではない暗号化された要求を受信し、要求をコンピューティングシステムS2に転送することができる。コンピューティングシステムS2は次いで、ペアの値を明らかにすることなく鍵/値のペアの順序付けられた集合をコンピューティングシステムS1に提供し、鍵/値のペアの順序付けられた集合を含むコンピューティングシステムS1への応答を生成し、値に署名することができる。コンピューティングシステムS1が勝者の関心グループの付け値を選択すると、コンピューティングシステムS1は、選択された鍵/値のペアをアプリケーション112に送信する。
【0100】
いくつかの実装形態では、プロセス400はさらに、クライアントデバイスによって、第2のMPCサーバによって送信された第1の暗号化され署名された応答を受信するステップと、クライアントデバイスによって、第1の暗号化され署名された応答が第1のMPCサーバによって署名されることを検証するステップと、クライアントデバイスによって、第1の署名された応答から第1の関心グループを復元するステップと、クライアントデバイスによって、第1の関心グループが特定のユーザを含むことを検証するステップと、クライアントデバイスによって、所与の鍵/値のペアの値が第1のMPCサーバによって署名されることを検証するステップと、クライアントデバイスによって、第1の選択基準を復元するために所与の鍵/値のペアの値を復号するステップと、クライアントデバイスによって、コンテンツ配信システムから選択基準候補および所与の選択基準を受信するステップと、クライアントデバイスによって、第1の選択基準、所与の選択基準、および選択基準候補の中から制御選択基準を選択するステップとを含む。これには、ユーザプライバシーおよびデータセキュリティを保護し、不正を防ぐという技術的な効果がある。
【0101】
たとえば、
図3のステップ4a-1から4a-2に関して上で説明されたように、アプリケーション112は、コンピューティングシステムS1から署名された応答を受信し、勝利した関心グループの付け値を応答から復元することができる。アプリケーション112は、応答の中の所与の鍵/値のペアの値がコンピューティングシステムS2によって暗号化され署名されることを検証することができる。アプリケーション112は次いで、鍵/値のペアの値を復号して勝利した関心グループの付け値を復元し、コンピューティングシステムS2からの0個または1個の関心グループの付け値および0個または1個のコンテクスチュアル付け値およびSSP170からの0個または1個の関心グループの付け値を含む、他の付け値を受信することができる。
【0102】
いくつかの実装形態では、プロセス400はさらに、クライアントデバイスによって、特定のユーザを含む関心グループを、関心グループの第1の集合および関心グループの第1の集合と異なる関心グループの第2の集合へと画定するステップと、クライアントデバイスによって、第1の暗号化された要求を第2のMPCサーバに送信するステップであって、第1の暗号化された要求が、特定のユーザを含む関心グループの第1の集合を含む、ステップと、クライアントデバイスによって、第2の暗号化された要求を第1のMPCサーバに送信するステップであって、第2の暗号化された要求が、特定のユーザを含む関心グループの第2の集合を含む、ステップと、クライアントデバイスによって、第1のMPCサーバによって送信される第2の署名された応答を受信するステップと、クライアントデバイスによって、第2の署名された応答が第2のMPCサーバによって署名されることを検証するステップと、クライアントデバイスによって、署名された応答から指定された関心グループを復元するステップと、クライアントデバイスによって、指定された関心グループが特定のユーザを含むことを検証するステップと、クライアントデバイスによって、所与の鍵/値のペアの値が第2のMPCサーバによって署名されることを検証するステップと、クライアントデバイスによって、第3の選択基準を復元するために所与の鍵/値のペアの値を復号するステップとを含み、制御選択基準を選択するステップが、第1の選択基準、所与の選択基準、選択基準候補、および第3の選択基準の中から制御選択基準を選択するステップを備える。これには、ユーザプライバシーおよびデータセキュリティを保護し、不正を防ぐという技術的な効果がある。
【0103】
たとえば、
図2のステップおよび
図3のステップ2a-1から2a-2に関して上で説明されたように、クライアントデバイス110のアプリケーション112は、関心グループを2つの異なる集合へと分けることができる。
図3のステップ2a-1から3a-1に関して上で説明されたように、クライアントデバイス110のアプリケーション112は、暗号化された要求をコンピューティングシステムS2に送信することができ、コンピューティングシステムS2は、第2の暗号化された要求をコンピューティングシステムS1に送信することができる。
図3のステップ3a-5から4a-2に関して上で説明されたように、アプリケーション112は、コンピューティングシステムS2から署名された結果を受信し、結果の値がコンピューティングシステムS1によって暗号化され署名されたことを検証することができる。アプリケーション112はユーザが属する関心グループの真のリストを有するので、アプリケーション112は次いで、結果を復号し、結果の中の指定された関心グループが特定のユーザを含むことを検証することができる。
【0104】
図5は、上で説明された動作を実行するために使用され得る例示的なコンピュータシステム500のブロック図である。システム500は、プロセッサ510、メモリ520、記憶デバイス530、および入出力デバイス540を含む。構成要素510、520、530、および540の各々は、たとえば、システムバス550を使用して、相互接続され得る。プロセッサ510は、システム500内で実行するための命令を処理することが可能である。一実装形態では、プロセッサ510は、シングルスレッドプロセッサである。別の実装形態では、プロセッサ510は、マルチスレッドプロセッサである。プロセッサ510は、メモリ520または記憶デバイス530に記憶された命令を処理することが可能である。
【0105】
メモリ520は、情報をシステム500内に記憶する。一実装形態では、メモリ520は、コンピュータ可読媒体である。一実装形態では、メモリ520は、揮発性メモリユニットである。別の実装形態では、メモリ520は、不揮発性メモリユニットである。
【0106】
記憶デバイス530は、システム500のための大容量記憶を提供することが可能である。一実装形態では、記憶デバイス530は、コンピュータ可読媒体である。様々な異なる実装形態では、記憶デバイス530は、たとえば、ハードディスクデバイス、光ディスクデバイス、複数のコンピューティングデバイス(たとえば、クラウド記憶デバイス)によってネットワーク上で共有される記憶デバイス、または何らかの他の大容量記憶デバイスを含み得る。
【0107】
入出力デバイス540は、システム500のための入出力動作を提供する。一実装形態では、入力/出力デバイス540は、ネットワークインターフェースデバイス、たとえば、イーサネットカード、シリアル通信デバイス、たとえば、RS-232ポート、および/またはワイヤレスインターフェースデバイス、たとえば、802.11カードのうちの1つまたは複数を含むことができる。別の実装形態では、入出力デバイスは、入力データを受信し、出力データを他の入出力デバイス、たとえば、キーボード、プリンタ、および表示デバイス560に送信するように構成されたドライバデバイスを含むことができる。しかしながら、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビクライアントデバイスなどの、他の実装形態も使用され得る。
【0108】
例示的な処理システムが
図5で説明されているが、本明細書において説明された主題および機能的動作の実装形態は、他のタイプのデジタル電子回路で、あるいは、本明細書において開示された構造およびそれらの構造的均等物を含む、コンピュータソフトウェア、ファームウェア、もしくは、ハードウェアで、またはそれらのうちの1つもしくは複数の組合せで実装され得る。
【0109】
媒体は必ずしもファイルに対応しない。媒体は、他の文書を保持するファイルの一部分に、当該の文書専用の単一のファイルに、または複数の協調ファイルに記憶され得る。
【0110】
主題の実施形態および本明細書において説明される動作は、デジタル電子回路で、または本明細書において開示される構造およびその構造的均等物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアで、またはそれらのうちの1つもしくは複数の組合せで実装され得る。本明細書において説明される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、(1つまたは複数の)コンピュータ記憶媒体上で符号化された、コンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替または追加として、プログラム命令は、データ処理装置による実行のために、適切な受信機装置への送信のために情報を符号化するために生成された、人工的に生成された伝搬信号、たとえば、機械で生成された電気信号、光信号、または電磁信号上で符号化され得る。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであり得るか、またはそれらに含まれ得る。さらに、コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号において符号化されたコンピュータプログラム命令のソースまたは宛先であり得る。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であり得るか、またはそれらに含まれ得る。
【0111】
本明細書において説明される動作は、1つまたは複数のコンピュータ可読記憶デバイス上に記憶されたまたは他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装され得る。
【0112】
システム100、方法200、プロセス300、プロセス400、およびシステム500を含む、本明細書において説明されるプロセス、方法、システム、および装置の各々の特徴のすべてが任意選択で、本明細書において説明される他のプロセス、方法、システム、および装置に準用する。単なる例として、方法200およびプロセス300の特徴は任意選択で、プロセス400に準用する。
【0113】
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、システムオンチップ、もしくは上記の複数のもの、または上記の組合せを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置は、ハードウェアに加えて、当該のコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つまたは複数の組合せを構成するコードも含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティングインフラストラクチャおよびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【0114】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている)は、コンパイル型言語またはインタプリタ型言語、宣言型言語または手続き型言語を含む任意の形態のプログラミング言語で書かれてもよく、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他のユニットとしてを含む任意の形態で展開されてもよい。コンピュータプログラムは、ファイルシステムにおけるファイルに対応し得るが、そうである必要はない。プログラムは、他のプログラムもしくはデータ(たとえば、マークアップ言語文書に記憶された1つもしくは複数のスクリプト)を保持するファイルの一部分に、当該のプログラム専用の単一のファイルに、または複数の協調ファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で実行されるか、または、1つのサイトに配置されるかもしくは複数のサイトにわたって分散され、通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開され得る。
【0115】
本明細書において説明されたプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによって活動を実施するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実施され得る。プロセスおよび論理フローが、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によっても実行されてもよく、装置が、それらとしても実装されてもよい。
【0116】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方を含む。一般に、プロセッサは、読取り専用メモリもしくはランダムアクセスメモリまたは両方から命令およびデータを受信する。コンピュータの必須要素は、命令に従って活動を実施するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクも含むか、あるいは、それらからデータを受信することもしくはそれらにデータを転送することまたはその両方を行うために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、ほんの数例を挙げると、別のデバイス、たとえば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に埋め込まれ得る。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完され得るか、または専用論理回路に組み込まれ得る。
【0117】
ユーザとの対話を提供するために、本明細書において説明される主題の実施形態は、ユーザに情報を表示するための、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびに、キーボード、および、ユーザがコンピュータに入力を提供することができる、たとえば、マウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上で実装され得る。他の種類のデバイスも、ユーザとの対話を提供するために使用され得る。たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってもよく、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受け取られてもよい。加えて、コンピュータは、文書をユーザによって使用されるデバイスに送信し、文書をそのデバイスから受信することによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザから受信された要求に応答してウェブページをそのウェブブラウザに送信することによって、ユーザと対話することができる。
【0118】
本明細書において説明される主題の実施形態は、バックエンド構成要素、たとえば、データサーバを含む、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含む、またはフロントエンド構成要素、たとえば、それを通じてユーザが本明細書において説明される主題の一実装形態と対話することができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含む、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムにおいて実装され得る。システムの構成要素は、デジタルデータ通信の任意の形態の媒体、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【0119】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバとは、一般に、互いに離れており、典型的には、通信ネットワークを通して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアントサーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、(たとえば、クライアントデバイスと対話するユーザにデータを表示し、そのユーザからユーザ入力を受信する目的で)データ(たとえば、HTMLページ)をクライアントデバイスに送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザ対話の結果)は、サーバにおいてクライアントデバイスから受信され得る。
【0120】
本明細書は多くの特定の実装形態の詳細を含んでいるが、これらは任意の発明の範囲または特許請求され得るものの範囲に対する限定として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に特有の特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書で説明されるいくつかの特徴はまた、単一の実施形態において組み合わせて実装され得る。逆に、単一の実施形態の文脈において説明される様々な特徴はまた、複数の実施形態において別々にまたは任意の適切な部分組合せで実装され得る。さらに、特徴はいくつかの組合せにおいて働くものとして上で説明され、そのようなものとして最初に特許請求されることさえあるが、特許請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除されてもよく、特許請求される組合せは、副組合せまたは副組合せの変形を対象としてもよい。
【0121】
同様に、動作は、特定の順序で図面に示されるが、これは、望ましい結果を達成するために、そのような動作が図示された特定の順序でもしくは順番に行われること、または例示したすべての動作が行われることを必要とするものと理解されるべきではない。状況によっては、マルチタスキングおよび並列処理が有利であり得る。さらに、上で説明された実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されたプログラム構成要素およびシステムは一般に、単一のソフトウェア製品に一緒に組み込まれてもよく、または複数のソフトウェア製品にパッケージ化されてもよいことを理解されたい。
【0122】
このようにして、主題の特定の実施形態が説明されてきた。他の実施形態は、以下の特許請求の範囲の範囲内にある。場合によっては、特許請求の範囲に列挙される活動は、異なる順序で行われ、それでも望ましい結果を達成し得る。加えて、添付の図面に示されるプロセスは、所望の結果を達成するために、必ずしも示された特定の順序または順番を必要としない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【0123】
105 ネットワーク
110 クライアントデバイス
112 アプリケーション
130 MPCクラスタ
140 発行者
142 ウェブサイト
145 リソース
150 DSP
160 デジタルコンポーネント提供者
500 コンピュータシステム
510 プロセッサ
520 メモリ
530 記憶デバイス
540 入力/出力
550 システムバス
560 入力/出力デバイス
【手続補正書】
【提出日】2022-04-25
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
マルチパーティ計算(MPC)クラスタの第1のMPCサーバによって、前記MPCクラスタの第2のMPCサーバから、クライアントデバイスの特定のユーザが属する2つ以上の関心グループの集合のうちの少なくとも1つの関心グループの選択基準に対する要求を受信するステップであって、前記受信された要求が前記第1のMPCサーバに前記クライアントデバイスの識別子を明らかにしない、ステップと、
前記要求を受信したことに応答して、
前記第1のMPCサーバによって、前記第2のMPCサーバにより明らかにされることから守られる前記要求の部分を使用して、前記第1のMPCサーバのキャッシュから取り出される、前記クライアントデバイスの前記特定のユーザが属する2つ以上の関心グループの前記集合のうちの前記少なくとも1つの関心グループの順序付けられた選択基準の集合を決定するステップと、
前記順序付けられた選択基準の前記集合を鍵/値のペアの集合へと変換するステップであって、前記鍵/値のペアの各々の前記値が、前記第2のMPCサーバにより明らかにされることから守られる、ステップと、
前記第1のMPCサーバによって、鍵/値のペアの前記集合の前記値を前記第2のMPCサーバに明らかにすることなく、最高の値を有する鍵を前記第2のMPCサーバが特定することを可能にするデータとともに、鍵/値のペアの前記集合を前記第2のMPCサーバに送信するステップと
を備える、方法。
【請求項2】
前記第1のMPCサーバによって、前記第1のMPCサーバおよび前記第2のMPCサーバと異なるコンテンツ配信システムから、前記クライアントデバイスの前記特定のユーザを含むものとして前記コンテンツ配信システムによって予測される所与の関心グループの所与の選択基準を受信するステップと、
前記第1のMPCサーバによって、前記第1のMPCサーバの前記キャッシュに、前記クライアントデバイスの前記特定のユーザを含むものとして予測される前記所与の関心グループの前記所与の選択基準をキャッシュするステップとをさらに備える、請求項1に記載の方法。
【請求項3】
前記コンテンツ配信システムによって、前記クライアントデバイスによって出されるコンテンツ要求を受信するステップと、
前記コンテンツ要求に応答して、前記コンテンツ要求に応答した選択基準候補を生成するステップと、
前記コンテンツ要求に基づいて、前記クライアントデバイスの前記特定のユーザを含むものとして予測される前記所与の関心グループを決定するステップと、
前記所与の関心グループが前記クライアントデバイスの前記特定のユーザを含むものとして予測されるという前記決定に基づいて、前記所与の関心グループの前記所与の選択基準を生成するステップと、
前記コンテンツ配信システムによって、配信基準候補および所与の配信基準を前記クライアントデバイスに送信するステップと、
前記コンテンツ配信システムによって、前記第1のMPCサーバに、前記所与の関心グループの前記所与の配信基準を送信するが、前記配信基準候補を送信しないステップとをさらに備える、請求項2に記載の方法。
【請求項4】
前記第2のMPCサーバによって、前記第2のMPCサーバによってアクセス不可能である第1の暗号化された要求を受信するステップと、
前記第2のMPCサーバによって、前記第1の暗号化された要求を前記第1のMPCサーバに転送するステップと、
前記第1のMPCサーバから、鍵/値のペアの前記集合を受信するステップと、
前記第2のMPCサーバによって、前記鍵/値のペアの前記値を明らかにすることなく、最高の値を有する所与の鍵/値のペアを特定するステップと、
前記所与の鍵/値のペアを含む前記第1の暗号化された要求への第1の暗号化され署名された応答を生成するステップであって、第1の署名された応答が前記第2のMPCサーバの秘密鍵で署名される、ステップと、
前記第1の暗号化された要求に応答して、前記第1の暗号化され署名された応答を前記クライアントデバイスに送信するステップとをさらに備える、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記クライアントデバイスによって、前記第2のMPCサーバによって送信される前記第1の暗号化され署名された応答を受信するステップと、
前記クライアントデバイスによって、前記第1の暗号化され署名された応答が前記第1のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記第1の署名された応答から第1の関心グループを復元するステップと、
前記クライアントデバイスによって、前記第1の関心グループが前記特定のユーザを含むことを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値が前記第1のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値を復号して第1の選択基準を復元するステップと、
前記クライアントデバイスによって、選択基準候補および前記所与の選択基準をコンテンツ配信システムから受信するステップと、
前記クライアントデバイスによって、前記第1の選択基準、前記所与の選択基準、および前記選択基準候補の中から制御選択基準を選択するステップとをさらに備える、請求項4に記載の方法。
【請求項6】
前記クライアントデバイスによって、前記特定のユーザを含む関心グループを、関心グループの第1の集合および関心グループの前記第1の集合と異なる関心グループの第2の集合へと画定するステップと、
前記クライアントデバイスによって、前記第1の暗号化された要求を前記第2のMPCサーバに送信するステップであって、前記第1の暗号化された要求が、前記特定のユーザを含む関心グループの第1の集合を含む、ステップと、
前記クライアントデバイスによって、第2の暗号化された要求を前記第1のMPCサーバに送信するステップであって、前記第2の暗号化された要求が、前記特定のユーザを含む関心グループの第2の集合を含む、ステップと、
前記クライアントデバイスによって、前記第1のMPCサーバによって送信される第2の署名された応答を受信するステップと、
前記クライアントデバイスによって、前記第2の署名された応答が前記第2のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記署名された応答から指定された関心グループを復元するステップと、
前記クライアントデバイスによって、前記指定された関心グループが前記特定のユーザを含むことを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値が前記第2のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、第3の選択基準を復元するために前記所与の鍵/値のペアの前記値を復号するステップとをさらに備え、前記制御選択基準を選択するステップが、前記第1の選択基準、前記所与の選択基準、前記選択基準候補、および前記第3の選択基準の中から前記制御選択基準を選択するステップを備える、請求項5に記載の方法。
【請求項7】
前記第1のMPCサーバによって、前記第1のMPCサーバによってアクセス不可能である第2の暗号化された要求を受信するステップと、
前記第1のMPCサーバによって、前記第2の暗号化された要求を前記第2のMPCサーバに転送するステップと、
前記第2のMPCサーバから、鍵/値のペアの異なる集合を受信するステップと、
前記第1のMPCサーバによって、前記異なる集合の中の前記鍵/値のペアの前記値を明らかにすることなく、最高の値を有する特定の鍵/値のペアを特定するステップと、
前記特定の鍵/値のペアを含む前記第2の暗号化された要求への第2の署名された応答を生成するステップであって、前記第1の署名された応答が前記第2のMPCサーバの秘密鍵で署名される、ステップと、
前記第2の暗号化された要求に応答して、前記第2の署名された応答を前記クライアントデバイスに送信するステップとをさらに備える、請求項4から6のいずれか一項に記載の方法。
【請求項8】
1つまたは複数のプロセッサと、
実行されると、前記1つまたは複数のプロセッサに動作を実行させる命令を含む1つまたは複数のメモリ要素とを備え、前記動作が、
マルチパーティ計算(MPC)クラスタの第1のMPC
サーバによって、前記MPCクラスタの第2のMPCサーバから、クライアントデバイスの特定のユーザが属する2つ以上の関心グループの集合のうちの少なくとも1つの関心グループの選択基準に対する要求を受信するステップであって、前記受信された要求が前記第1のMPCサーバに前記クライアントデバイスの識別子を明らかにしない、ステップと、
前記要求を受信したことに応答して、
前記第1のMPCサーバによって、前記第2のMPCサーバにより明らかにされることから守られる前記要求の部分を使用して、前記第1のMPCサーバのキャッシュから取り出される、前記クライアントデバイスの前記特定のユーザが属する2つ以上の関心グループの前記集合のうちの前記少なくとも1つの関心グループの順序付けられた選択基準の集合を決定するステップと、
前記順序付けられた選択基準の前記集合を鍵/値のペアの集合へと変換するステップであって、前記鍵/値のペアの各々の前記値が、前記第2のMPCサーバにより明らかにされることから守られる、ステップと、
前記第1のMPCサーバによって、鍵/値のペアの前記集合の前記値を前記第2のMPCサーバに明らかにすることなく、最高の値を有する鍵を前記第2のMPCサーバが特定することを可能にするデータとともに、鍵/値のペアの前記集合を前記第2のMPCサーバに送信するステップと
を含む、システム。
【請求項9】
前記動作が、
前記第1のMPCサーバによって、前記第1のMPCサーバおよび前記第2のMPCサーバと異なるコンテンツ配信システムから、前記コンテンツ配信システムによって前記クライアントデバイスの前記特定のユーザを含むものとして予測される所与の関心グループの所与の選択基準を受信するステップと、
前記第1のMPCサーバによって、前記第1のMPCサーバの前記キャッシュに、前記クライアントデバイスの前記特定のユーザを含むものとして予測される前記所与の関心グループの前記所与の選択基準をキャッシュするステップとをさらに備える、請求項8に記載のシステム。
【請求項10】
前記動作が、
前記コンテンツ配信システムによって、前記クライアントデバイスによって出されるコンテンツ要求を受信するステップと、
前記コンテンツ要求に応答して、前記コンテンツ要求に応答した選択基準候補を生成するステップと、
前記コンテンツ要求に基づいて、前記クライアントデバイスの前記特定のユーザを含むものとして予測される前記所与の関心グループを決定するステップと、
前記所与の関心グループが前記クライアントデバイスの前記特定のユーザを含むものとして予測されるという前記決定に基づいて、前記所与の関心グループの前記所与の選択基準を生成するステップと、
前記コンテンツ配信システムによって、配信基準候補および所与の配信基準を前記クライアントデバイスに送信するステップと、
前記コンテンツ配信システムによって、前記第1のMPCサーバに、前記所与の関心グループの前記所与の配信基準を送信するが、前記配信基準候補を送信しないステップとをさらに備える、請求項9に記載のシステム。
【請求項11】
前記動作が、
前記第2のMPCサーバによって、前記第2のMPCサーバによってアクセス不可能である第1の暗号化された要求を受信するステップと、
前記第2のMPCサーバによって、前記第1の暗号化された要求を前記第1のMPCサーバに転送するステップと、
前記第1のMPCサーバから、鍵/値のペアの前記集合を受信するステップと、
前記第2のMPCサーバによって、前記鍵/値のペアの前記値を明らかにすることなく、最高の値を有する所与の鍵/値のペアを特定するステップと、
前記所与の鍵/値のペアを含む前記第1の暗号化された要求への第1の暗号化され署名された応答を生成するステップであって、第1の署名された応答が前記第2のMPCサーバの秘密鍵で署名される、ステップと、
前記第1の暗号化された要求に応答して、前記第1の暗号化され署名された応答を前記クライアントデバイスに送信するステップとをさらに備える、請求項8から10のいずれか一項に記載のシステム。
【請求項12】
前記動作が、
前記クライアントデバイスによって、前記第2のMPCサーバによって送信される前記第1の暗号化され署名された応答を受信するステップと、
前記クライアントデバイスによって、前記第1の暗号化され署名された応答が前記第1のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記第1の署名された応答から第1の関心グループを復元するステップと、
前記クライアントデバイスによって、前記第1の関心グループが前記特定のユーザを含むことを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値が前記第1のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値を復号して第1の選択基準を復元するステップと、
前記クライアントデバイスによって、選択基準候補および前記所与の選択基準をコンテンツ配信システムから受信するステップと、
前記クライアントデバイスによって、前記第1の選択基準、前記所与の選択基準、および前記選択基準候補の中から制御選択基準を選択するステップとをさらに備える、請求項11に記載のシステム。
【請求項13】
前記動作が、
前記クライアントデバイスによって、前記特定のユーザを含む関心グループを、関心グループの第1の集合および関心グループの前記第1の集合と異なる関心グループの第2の集合へと画定するステップと、
前記クライアントデバイスによって、前記第1の暗号化された要求を前記第2のMPCサーバに送信するステップであって、前記第1の暗号化された要求が、前記特定のユーザを含む関心グループの第1の集合を含む、ステップと、
前記クライアントデバイスによって、第2の暗号化された要求を前記第1のMPCサーバに送信するステップであって、前記第2の暗号化された要求が、前記特定のユーザを含む関心グループの第2の集合を含む、ステップと、
前記クライアントデバイスによって、前記第1のMPCサーバによって送信される第2の署名された応答を受信するステップと、
前記クライアントデバイスによって、前記第2の署名された応答が前記第2のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記署名された応答から指定された関心グループを復元するステップと、
前記クライアントデバイスによって、前記指定された関心グループが前記特定のユーザを含むことを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値が前記第2のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、第3の選択基準を復元するために前記所与の鍵/値のペアの前記値を復号するステップとをさらに備え、前記制御選択基準を選択するステップが、前記第1の選択基準、前記所与の選択基準、前記選択基準候補、および前記第3の選択基準の中から前記制御選択基準を選択するステップを備える、請求項12に記載のシステム。
【請求項14】
前記動作が、
前記第1のMPCサーバによって、前記第1のMPCサーバによってアクセス不可能である第2の暗号化された要求を受信するステップと、
前記第1のMPCサーバによって、前記第2の暗号化された要求を前記第2のMPCサーバに転送するステップと、
前記第2のMPCサーバから、鍵/値のペアの異なる集合を受信するステップと、
前記第1のMPCサーバによって、前記異なる集合の中の前記鍵/値のペアの前記値を明らかにすることなく、最高の値を有する特定の鍵/値のペアを特定するステップと、
前記特定の鍵/値のペアを含む前記第2の暗号化された要求への第2の署名された応答を生成するステップであって、前記第1の署名された応答が前記第2のMPCサーバの秘密鍵で署名される、ステップと、
前記第2の暗号化された要求に応答して、前記第2の署名された応答を前記クライアントデバイスに送信するステップとをさらに備える、請求項11から13のいずれか一項に記載のシステム。
【請求項15】
コンピューティングシステムによって実行されると前記コンピューティングシステムに動作を実行させる命令が符号化された非一時的コンピュータ記憶媒体であって、前記動作が、
マルチパーティ計算(MPC)クラスタの第1のMPCサーバによって、前記MPCクラスタの第2のMPCサーバから、クライアントデバイスの特定のユーザが属する2つ以上の関心グループの集合のうちの少なくとも1つの関心グループの選択基準に対する要求を受信するステップであって、前記受信された要求が前記第1のMPCサーバに前記クライアントデバイスの識別子を明らかにしない、ステップと、
前記要求を受信したことに応答して、
前記第1のMPCサーバによって、前記第2のMPCサーバにより明らかにされることから守られる前記要求の部分を使用して、前記第1のMPCサーバのキャッシュから取り出される、前記クライアントデバイスの前記特定のユーザが属する2つ以上の関心グループの前記集合のうちの前記少なくとも1つの関心グループの順序付けられた選択基準の集合を決定するステップと、
前記順序付けられた選択基準の前記集合を鍵/値のペアの集合へと変換するステップであって、前記鍵/値のペアの各々の前記値が、前記第2のMPCサーバにより明らかにされることから守られる、ステップと、
前記第1のMPCサーバによって、鍵/値のペアの前記集合の前記値を前記第2のMPCサーバに明らかにすることなく、最高の値を有する鍵を前記第2のMPCサーバが特定することを可能にするデータとともに、鍵/値のペアの前記集合を前記第2のMPCサーバに送信するステップと
を備える、非一時的コンピュータ記憶媒体。
【請求項16】
前記動作が、
前記第1のMPCサーバによって、前記第1のMPCサーバおよび前記第2のMPCサーバと異なるコンテンツ配信システムから、前記クライアントデバイスの前記特定のユーザを含むものとして前記コンテンツ配信システムによって予測される所与の関心グループの所与の選択基準を受信するステップと、
前記第1のMPCサーバによって、前記第1のMPCサーバの前記キャッシュに、前記クライアントデバイスの前記特定のユーザを含むものとして予測される前記所与の関心グループの前記所与の選択基準をキャッシュするステップとをさらに備える、請求項15に記載の非一時的コンピュータ記憶媒体。
【請求項17】
前記動作が、
前記コンテンツ配信システムによって、前記クライアントデバイスによって出されるコンテンツ要求を受信するステップと、
前記コンテンツ要求に応答して、前記コンテンツ要求に応答した選択基準候補を生成するステップと、
前記コンテンツ要求に基づいて、前記クライアントデバイスの前記特定のユーザを含むものとして予測される前記所与の関心グループを決定するステップと、
前記所与の関心グループが前記クライアントデバイスの前記特定のユーザを含むものとして予測されるという前記決定に基づいて、前記所与の関心グループの前記所与の選択基準を生成するステップと、
前記コンテンツ配信システムによって、配信基準候補および所与の配信基準を前記クライアントデバイスに送信するステップと、
前記コンテンツ配信システムによって、前記第1のMPCサーバに、前記所与の関心グループの前記所与の配信基準を送信するが、前記配信基準候補を送信しないステップとをさらに備える、請求項16に記載の非一時的コンピュータ記憶媒体。
【請求項18】
前記動作が、
前記第2のMPCサーバによって、前記第2のMPCサーバによってアクセス不可能である第1の暗号化された要求を受信するステップと、
前記第2のMPCサーバによって、前記第1の暗号化された要求を前記第1のMPCサーバに転送するステップと、
前記第1のMPCサーバから、鍵/値のペアの前記集合を受信するステップと、
前記第2のMPCサーバによって、前記鍵/値のペアの前記値を明らかにすることなく、最高の値を有する所与の鍵/値のペアを特定するステップと、
前記所与の鍵/値のペアを含む前記第1の暗号化された要求への第1の暗号化され署名された応答を生成するステップであって、第1の署名された応答が前記第2のMPCサーバの秘密鍵で署名される、ステップと、
前記第1の暗号化された要求に応答して、前記第1の暗号化され署名された応答を前記クライアントデバイスに送信するステップとをさらに備える、請求項15から17のいずれか一項に記載の非一時的コンピュータ記憶媒体。
【請求項19】
前記動作が、
前記クライアントデバイスによって、前記第2のMPCサーバによって送信される前記第1の暗号化され署名された応答を受信するステップと、
前記クライアントデバイスによって、前記第1の暗号化され署名された応答が前記第1のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記第1の署名された応答から第1の関心グループを復元するステップと、
前記クライアントデバイスによって、前記第1の関心グループが前記特定のユーザを含むことを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値が前記第1のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値を復号して第1の選択基準を復元するステップと、
前記クライアントデバイスによって、選択基準候補および前記所与の選択基準をコンテンツ配信システムから受信するステップと、
前記クライアントデバイスによって、前記第1の選択基準、前記所与の選択基準、および前記選択基準候補の中から制御選択基準を選択するステップとをさらに備える、請求項18に記載の非一時的コンピュータ記憶媒体。
【請求項20】
前記動作が、
前記クライアントデバイスによって、前記特定のユーザを含む関心グループを、関心グループの第1の集合および関心グループの前記第1の集合と異なる関心グループの第2の集合へと画定するステップと、
前記クライアントデバイスによって、前記第1の暗号化された要求を前記第2のMPCサーバに送信するステップであって、前記第1の暗号化された要求が、前記特定のユーザを含む関心グループの第1の集合を含む、ステップと、
前記クライアントデバイスによって、第2の暗号化された要求を前記第1のMPCサーバに送信するステップであって、前記第2の暗号化された要求が、前記特定のユーザを含む関心グループの第2の集合を含む、ステップと、
前記クライアントデバイスによって、前記第1のMPCサーバによって送信される第2の署名された応答を受信するステップと、
前記クライアントデバイスによって、前記第2の署名された応答が前記第2のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、前記署名された応答から指定された関心グループを復元するステップと、
前記クライアントデバイスによって、前記指定された関心グループが前記特定のユーザを含むことを検証するステップと、
前記クライアントデバイスによって、前記所与の鍵/値のペアの前記値が前記第2のMPCサーバによって署名されることを検証するステップと、
前記クライアントデバイスによって、第3の選択基準を復元するために前記所与の鍵/値のペアの前記値を復号するステップとをさらに備え、前記制御選択基準を選択するステップが、前記第1の選択基準、前記所与の選択基準、前記選択基準候補、および前記第3の選択基準の中から前記制御選択基準を選択するステップを備える、請求項19に記載の非一時的コンピュータ記憶媒体。
【国際調査報告】