Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7157258B2 - Fraud Prevention in Aggregated Network Measurements - Google Patents
[go: Go Back, main page]

JP7157258B2 - Fraud Prevention in Aggregated Network Measurements - Google Patents

Fraud Prevention in Aggregated Network Measurements Download PDF

Info

Publication number
JP7157258B2
JP7157258B2 JP2021540867A JP2021540867A JP7157258B2 JP 7157258 B2 JP7157258 B2 JP 7157258B2 JP 2021540867 A JP2021540867 A JP 2021540867A JP 2021540867 A JP2021540867 A JP 2021540867A JP 7157258 B2 JP7157258 B2 JP 7157258B2
Authority
JP
Japan
Prior art keywords
data
conversion
impression
application
blind
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
JP2021540867A
Other languages
Japanese (ja)
Other versions
JP2022532815A (en
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 JP2022532815A publication Critical patent/JP2022532815A/en
Application granted granted Critical
Publication of JP7157258B2 publication Critical patent/JP7157258B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/40User authentication by quorum, i.e. whereby two or more security principals are required
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
    • 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/083Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • 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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3257Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using blind signatures
    • 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/04Masking or blinding
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Description

クライアントデバイスは、インターネットなどのパブリックネットワークを介してデータを送信する。これらの通信は、意図された受信者以外のエンティティによって傍受および/または変更される可能性がある。さらに、エンティティはネットワーク識別子を偽造し、これらの偽造されたネットワーク識別子から発信されたように見えるデータを送信することができる。そのような偽造の例は、ピアツーピアネットワークのレピュテーションシステムを破壊するために、エンティティがネットワーク識別子を作成するシビル攻撃である。 A client device transmits data over a public network such as the Internet. These communications can be intercepted and/or modified by entities other than the intended recipient. Additionally, entities can forge network identifiers and transmit data that appears to originate from these forged network identifiers. An example of such forgery is a Sybil attack in which an entity creates a network identifier to subvert the reputation system of a peer-to-peer network.

本明細書は、不正を防止し、ユーザのプライバシを保護する方法で、集約されたネットワーク測定値を決定することに関連する技術について説明する。 This specification describes techniques related to determining aggregated network measurements in a manner that prevents fraud and protects user privacy.

一般に、本明細書に記載される主題の1つの革新的な態様は、複数のクライアントデバイスの各々から、それぞれのグループメンバー鍵、およびデジタルコンポーネントを表示した結果としての所与のコンバージョンのグループ識別子を含む測定データ要素を受信するステップであって、各クライアントデバイスにおいて実行されるアプリケーションが、インプレッションデータまたはコンバージョン用のコンバージョンデータの1つまたは複数を含むネットワークデータに少なくとも基づいて、ネットワークデータを暗号化するためのシークレットを定義するグループ鍵を生成することであって、各グループメンバー鍵が、シークレットのそれぞれの共有を含む、ことと、アプリケーションに関連するデータに基づいて、それぞれのグループメンバー鍵を生成することであって、各クライアントデバイスが、シークレットの異なる共有を含む異なるグループメンバー鍵を生成する、こととを行うために、しきい値暗号化スキームを使用する、ステップと、グループ識別子を有する少なくともしきい値数の測定データ要素が受信されたことを決定するステップと、同じグループ識別子を有する少なくともしきい値数の測定データ要素が受信されたとの決定に応答して、受信した測定データ要素におけるグループメンバー鍵を使用してネットワークデータを復号化するステップとを含む方法において具体化することができる。集約されるネットワークデータを報告するためにしきい値暗号化技法を使用することにより、不正な報告を防ぎ、たとえば、報告されたデータがユーザデータに関連している、またはユーザデータを含む状況において、ユーザのプライバシを保護する。異なるグループメンバー鍵の生成により、グループ識別子を有する少なくともしきい値数の測定データ要素を合計するグループメンバー鍵の任意の組合せが受信されたときに、グループ鍵を再生成することができる。したがって、ネットワークデータは、少なくともしきい値のグループメンバー鍵が受信されたときに復号化することができるが、しきい値未満のグループメンバー鍵が受信された場合は復号化することはできない。クライアントデバイス間のコラボレーションなしにクライアントデバイス間でそのようなシークレット共有を有効にすることにより、ユーザのデバイス間の通信を排除することによってユーザのプライバシを保護し、そのような通信によって消費される帯域幅を削減し、単一の秘密鍵が各アプリケーションに単に渡された場合に発生する可能性のある測定不正を防ぐ。この態様の他の実装形態は、コンピュータストレージデバイス上に符号化された、方法の態様を実行するように構成された、対応する装置、システム、およびコンピュータプログラムを含む。 In general, one innovative aspect of the subject matter described herein provides, from each of a plurality of client devices, a respective group member key and a group identifier for a given conversion as a result of displaying the digital component. receiving a measurement data element comprising: an application running on each client device encrypting the network data based at least on the network data comprising one or more of the impression data or the conversion data for the conversion; generating group keys that define secrets for each group member key, each group member key containing a respective share of the secret; and generating each group member key based on data associated with the application. each client device generates a different group member key containing a different sharing of the secret, using a threshold encryption scheme to at least have a group identifier determining that a threshold number of measurement data elements have been received; and in response to determining that at least the threshold number of measurement data elements having the same group identifier have been received, groups in the received measurement data elements. decrypting the network data using the member key. Using threshold encryption techniques to report aggregated network data prevents fraudulent reporting, e.g., in situations where reported data relates to or includes user data, Protect user privacy. The generation of different group member keys allows the group key to be regenerated when any combination of group member keys summing at least a threshold number of measurement data elements with a group identifier is received. Thus, network data can be decrypted when at least the threshold group member key is received, but cannot be decrypted when less than the threshold group member key is received. Enabling such secret sharing between client devices without collaboration between client devices protects user privacy by eliminating communication between the user's devices and the bandwidth consumed by such communication. It reduces the width and prevents measurement fraud that can occur if a single private key is simply passed to each application. Other implementations of this aspect include corresponding apparatus, systems, and computer programs encoded on computer storage devices and configured to carry out aspects of the method.

これらおよび他の実装形態はそれぞれ、任意で以下の機能のうちの1つまたは複数を含むことができる。測定データ要素は、ネットワークデータを表す暗号化されたデータを含み得、グループメンバー鍵を含み得る。グループメンバー鍵は、グループ鍵の一部を表し得、同じインプレッションとコンバージョンのペアに対して十分な数のグループメンバー鍵が受信された場合にのみ、グループ鍵を再生成するために使用され得る。コンバージョンは、デジタルコンポーネントに対するものであり得、デジタルコンポーネントがユーザに提示された後、またはユーザによって選択された後、指定されたユーザアクションの完了を伴う場合がある。インプレッションデータは、デジタルコンポーネントの特定の提示に関するものであり得、デジタルコンポーネントのランディングページ(たとえば、デジタルコンポーネントによってリンクされているページで、ユーザがデジタルコンポーネントをクリックまたは相互作用すると、アプリケーション/ブラウザはそのページをユーザに表示する)のURLまたはドメイン、デジタルコンポーネントの1つまたは複数の識別子、インプレッションに関連付けられるイベントレベルのデータ、インプレッションデータをクライアントデバイスから削除するタイミングを指定する有効期限、および/あるいはデジタルコンポーネントのコンバージョン報告が送信される報告URLまたはドメインを含み得る。インプレッションデータは、たとえば、デジタルコンポーネントのメタデータまたはデジタルコンポーネントのアンカータグとして、デジタルコンポーネントによって提供され得る。一部のコンバージョンは複数のタイプを有し得るため、コンバージョンデータは、コンバージョンのタイプを示すデータを含み得る。コンバージョンのタイプは、コンバージョンが完了した後の後続のアクションを指定し得る。 Each of these and other implementations can optionally include one or more of the following features. The measurement data element may contain encrypted data representing network data and may contain a group member key. The group member key may represent a portion of the group key and may be used to regenerate the group key only when a sufficient number of group member keys are received for the same impression-conversion pair. Conversion may be to a digital component and may involve completion of a specified user action after the digital component has been presented to the user or selected by the user. Impression data can relate to a particular presentation of a digital component, such that when a user clicks or interacts with a digital component on the landing page of the digital component (e.g., a page linked by the digital component, the application/browser URL or domain of the page that is displayed to the user), one or more identifiers for the digital components, event-level data associated with the impression, an expiration date that specifies when the impression data is removed from the client device, and/or the digital May include a reporting URL or domain to which conversion reports for the component are sent. Impression data may be provided by the digital component, for example, as metadata for the digital component or as anchor tags for the digital component. Conversion data may include data indicating the type of conversion, as some conversions may have multiple types. The type of conversion may specify subsequent actions after the conversion is complete.

各アプリケーションは、インプレッションデータに関連するコンバージョンの発生に応答して、測定データ要素を生成および送信し得る。本方法は、グループ識別子を含む受信されたデータ要素の数に基づいて、デジタルコンポーネントのコンバージョンの数を決定するステップを含むことができる。 Each application may generate and transmit measurement data elements in response to the occurrence of conversions related to impression data. The method may include determining the number of conversions of the digital component based on the number of data elements received including the group identifier.

本方法は、ブラインド(blindly)署名されたインプレッションデータに基づいてグループ鍵を生成するステップを含むことができる。ネットワークデータにブラインド署名するためにブラインド署名されたインプレッションデータを使用することにより、ユーザのプライバシを保護しながら、そのようなデータの不正をチェックすることができる。より一般的には、ネットワークデータにブラインド署名するためにブラインド署名技法を使用することにより、ユーザのプライバシを保護しながら、そのようなデータの不正をチェックすることができる。ネットワークデータを含むデータ要素の一部は、たとえば、ブラインド署名されたインプレッションデータに基づいてグループ鍵を生成することによって、および/または複数のエンティティから不正または共謀を防ぐために複数のエンティティによって暗号化することによって、ブラインド署名することができる。 The method may include generating a group key based on the blindly signed impression data. Using blind-signed impression data to blind-sign network data allows such data to be checked for fraud while protecting user privacy. More generally, the use of blind signing techniques to blind sign network data allows such data to be checked for tampering while protecting user privacy. Some of the data elements containing network data are encrypted by multiple entities, for example by generating a group key based on blind signed impression data and/or to prevent fraud or collusion from multiple entities can be signed blindly.

ブラインド署名されたインプレッションデータは、インプレッションが有効であると決定した第1のシステムおよびコンバージョンを登録することを決定した第2のシステムによって署名されたブラインド化されたインプレッションデータであって、インプレッションデータをブラインド化することによって生成される、ブラインド化されたインプレッションデータと、第2のシステムによって署名されたコンバージョンデータとを含む、ブラインド署名された結合されたコンバージョンデータを含むことができる。グループ鍵を生成するステップは、ブラインド署名された結合されたコンバージョンデータと、デジタルコンポーネントのコンバージョンデータが報告される報告システムのネットワークアドレスとの組合せを使用してグループ鍵を生成するステップを含むことができる。そのようなブラインド署名されたデータとしきい値暗号化技法との組合せを使用することにより、不正を防ぎ、ユーザのプライバシを保護する。ブラインド署名された結合されたコンバージョンデータは、報告システムの公開鍵を使用して暗号化され得る。アプリケーションに関連するデータは、アプリケーションの一意の識別子を含むことができる。しきい値暗号化スキームは、多項式ベースのしきい値暗号化スキームを含むことができる。各クライアントデバイスにおいて実行されるアプリケーションは、少なくともインプレッションデータを含むシードに基づいて、グループ鍵として多項式関数を生成するステップと、シークレットに対応する値を有するように多項式関数上の同じ点を選択するステップと、それぞれのグループメンバー鍵として、アプリケーションに関連するデータを使用して、同じ点とは異なる多項式関数上の第2の点を選択するステップとを含むことができる。受信した測定データにおけるグループメンバー鍵を使用してインプレッションデータを復号化するステップは、第2の点を使用して多項式関数を生成するステップと、生成された多項式関数上の同じ点を識別するステップとを含むことができる。しきい値暗号化スキームは、中国の剰余定理ベースのスキーム、プロアクティブなシークレット共有、または検証可能なシークレット共有のいずれかを含むことができる。 Blind-signed impression data is blind-signed impression data signed by a first system that determined that the impression was valid and a second system that determined to register the conversion, where the impression data is Blind-signed combined conversion data may be included, including blinded impression data generated by blinding and conversion data signed by a second system. Generating the group key may include generating the group key using a combination of the blind-signed combined conversion data and the network address of the reporting system where the digital component conversion data is reported. can. Using a combination of such blind signed data and threshold encryption techniques prevents fraud and protects user privacy. The blind-signed combined conversion data may be encrypted using the reporting system's public key. Data associated with an application may include a unique identifier for the application. Threshold encryption schemes may include polynomial-based threshold encryption schemes. An application running on each client device generates a polynomial function as a group key based on a seed containing at least impression data, and selecting the same point on the polynomial function to have a value corresponding to the secret. and selecting a second point on the polynomial function that is different from the same point using data associated with the application as the respective group member key. Decrypting the impression data using the group member key in the received measurement data includes generating a polynomial function using the second points and identifying the same points on the generated polynomial function. and Threshold encryption schemes can include either Chinese Remainder Theorem-based schemes, proactive secret sharing, or verifiable secret sharing.

本明細書に記載されている主題は、以下の利点のうちの1つまたは複数を実現するように、特定の実施形態において実装することができる。本明細書で説明されている(t、n)-しきい値暗号化スキームなどのしきい値暗号化技法は、ネットワークデータ(たとえば、インプレッションおよび/またはコンバージョンデータ)またはその一部または派生物を、次に、測定対象のネットワークデータを報告する複数のクライアントデバイスの複数のアプリケーション(たとえば、ウェブブラウザまたはネイティブアプリケーション)間で分割されるグループ鍵を生成するためのシードとして使用することができる。これにより、異なるクライアントデバイスで実行されているアプリケーションの各々は、アプリケーション(または、クライアントデバイス)間のコラボレーション、および中央システムが各アプリケーションに鍵を配信する必要なしに、同じネットワークデータを使用してネットワークデータを暗号化する同じグループ鍵を生成することができる。代わりに、ネットワークイベント(たとえば、インプレッションおよび関連付けられるコンバージョン)が発生する各アプリケーションは、ネットワークデータを暗号化するグループ鍵を生成するために、たとえばデジタルコンポーネントおよび/またはリモートサーバから受信したネットワークデータを使用することができる。 The subject matter described herein can be implemented in particular embodiments to achieve one or more of the following advantages. Threshold encryption techniques, such as the (t,n)-threshold encryption schemes described herein, encrypt network data (e.g., impression and/or conversion data) or portions or derivatives thereof. , which can then be used as a seed for generating group keys that are divided among multiple applications (eg, web browsers or native applications) on multiple client devices that report network data to be measured. This allows applications running on different client devices to each use the same network data without collaboration between applications (or client devices) and the need for a central system to distribute keys to each application. The same group key that encrypts data can be generated. Instead, each application in which network events (e.g. impressions and associated conversions) occur uses network data received e.g. from digital components and/or remote servers to generate a group key that encrypts the network data. can do.

各アプリケーションは、グループメンバー鍵を生成するために異なる情報を使用することができ、グループメンバー鍵は、十分な数の他のグループメンバー鍵と組み合わせると、グループ鍵またはグループ鍵の別の表現を再生成するために使用することができる。たとえば、各アプリケーションは、グループメンバー鍵を生成するためにアプリケーションの一意の識別子を使用し、各アプリケーションがアプリケーション間のコラボレーションなしで他の各アプリケーションとは異なるグループメンバー鍵を生成できるようにすることができる。各アプリケーションによるこの異なるグループメンバー鍵の生成により、合計で少なくともしきい値「t」のグループメンバー鍵の数のグループメンバー鍵の任意の組合せが受信されたときに、グループ鍵を再生成することができる。したがって、ネットワークデータは、少なくともt個のグループメンバー鍵が受信されたときに復号化することができるが、t個未満のグループメンバー鍵が受信された場合は復号化することができない。アプリケーション間のコラボレーションなしにアプリケーション間でそのようなシークレット共有を有効にすることにより、ユーザのデバイス間の通信を排除することによってユーザのプライバシを保護し、そのような通信によって消費される帯域幅を削減し、単一の秘密鍵が各アプリケーションに単に渡された場合に発生する可能性のある測定不正を防ぐ。 Each application can use different information to generate a group member key, which when combined with a sufficient number of other group member keys regenerates the group key or another representation of the group key. can be used to create For example, each application may use the application's unique identifier to generate group member keys, allowing each application to generate a group member key that is different from each other application without collaboration between the applications. can. This different group member key generation by each application allows the group key to be regenerated when any combination of group member keys totaling at least a threshold 't' number of group member keys is received. can. Thus, network data can be decrypted when at least t group member keys are received, but cannot be decrypted if less than t group member keys are received. By enabling such secret sharing between applications without collaboration between applications, it protects user privacy by eliminating communication between users' devices and reduces the bandwidth consumed by such communication. reduce and prevent measurement fraud that could occur if a single private key were simply passed to each application.

前述の主題の様々な特徴および利点が、図面に関して以下に説明される。追加の特徴および利点は、本明細書に記載の主題および特許請求の範囲から明らかである。 Various features and advantages of the aforementioned subject matter are described below with respect to the drawings. Additional features and advantages are apparent from the subject matter described herein and from the claims.

デジタルコンポーネントシステムがデジタルコンポーネントを配信する環境のブロック図である。1 is a block diagram of an environment in which a digital component system distributes digital components; FIG. 署名されたインプレッションデータを記録するための例示的なプロセスを示す流れ図である。FIG. 4 is a flow diagram showing an exemplary process for recording signed impression data; FIG. コンバージョンデータを記録するための例示的なプロセスを示す流れ図である。FIG. 4 is a flow diagram showing an exemplary process for recording conversion data; FIG. コンバージョンデータを報告するための例示的なプロセスを示す流れ図である。FIG. 4 is a flow diagram showing an exemplary process for reporting conversion data; FIG. コンバージョンデータを報告するための別の例示的なプロセスを示す流れ図である。FIG. 4 is a flow diagram showing another example process for reporting conversion data; FIG. インプレッションデータを復号化するための例示的なプロセスを示す流れ図である。FIG. 4 is a flow diagram showing an exemplary process for decoding impression data; FIG. 例示的なコンピュータシステムのブロック図である。1 is a block diagram of an exemplary computer system; FIG.

様々な図面における同様の参照番号および名称は、同様の要素を示している。 Like reference numbers and designations in the various drawings indicate like elements.

一般に、本明細書は、集約されたネットワーク測定値を決定する際の不正を防止するための暗号化技法について説明する。たとえば、本明細書で説明されている技法を使用すると、デジタルコンポーネントの集約されたインプレッション測定値とコンバージョン測定値を決定する際の不正行為を防ぐことができる。本明細書で説明されている暗号化技法は、たとえば、他のエンティティがユーザのクライアントデバイスから受信したユーザデータを追跡または集約できないようにすることによって、ユーザのプライバシを保護することもできる。 In general, this specification describes cryptographic techniques for preventing fraud in determining aggregated network measurements. For example, the techniques described herein can be used to prevent fraud in determining aggregated impression and conversion metrics for digital components. The encryption techniques described herein may also protect user privacy, for example, by preventing other entities from tracking or aggregating user data received from the user's client device.

図1は、デジタルコンポーネント配信システム150がデジタルコンポーネントを配信する環境100のブロック図である。例示的な環境100は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、モバイルネットワーク、またはそれらの組合せなどのデータ通信ネットワーク105を含む。ネットワーク105は、クライアントデバイス110、発行者130、ウェブサイト140、デジタルコンポーネント配信システム150、不正検出システム170、集約システム180、および報告システム190を接続する。例示的な環境100は、多くの異なるクライアントデバイス110、発行者130、およびウェブサイト140を含み得る。いくつかの実装形態では、環境100はまた、複数のデジタルコンポーネント配信システム150を含むことができる。 FIG. 1 is a block diagram of an environment 100 in which digital component distribution system 150 distributes digital components. Exemplary environment 100 includes a data communication network 105 such as a local area network (LAN), wide area network (WAN), the Internet, mobile networks, or combinations thereof. Network 105 connects client devices 110 , publishers 130 , websites 140 , digital component distribution system 150 , fraud detection system 170 , aggregation system 180 , and reporting system 190 . Exemplary environment 100 may include many different client devices 110 , publishers 130 and websites 140 . In some implementations, environment 100 may also include multiple digital component distribution systems 150 .

ウェブサイト140は、ドメイン名に関連付けられ、1つまたは複数のサーバによってホストされる1つまたは複数のリソース145である。例示的なウェブサイトは、テキスト、画像、マルチメディアコンテンツ、およびスクリプトなどのプログラミング要素を含むことができるHTML形式のウェブページのコレクションである。各ウェブサイト140は、ウェブサイト140を制御、管理、および/または所有するエンティティである発行者130によって維持されている。 A website 140 is one or more resources 145 associated with a domain name and hosted by one or more servers. An exemplary website is a collection of HTML-formatted web pages that can include programming elements such as text, images, multimedia content, and scripts. Each website 140 is maintained by a publisher 130, an entity that controls, manages and/or owns website 140.

リソース145は、ネットワーク105を介して提供することができる任意のデータである。リソース145は、リソース145に関連付けられるリソースアドレス、たとえば、ユニバーサルリソースロケータ(URL)によって識別される。リソースは、ほんの数例を挙げると、HTMLページ、ワープロ文書、およびポータブルドキュメントフォーマット(PDF)文書、画像、ビデオ、ならびにフィードソースなどを含む。リソースは、埋込み情報(ハイパーリンクにおけるメタ情報など)ならびに/または埋込み命令(スクリプトなど)を含み得る、単語、語句、画像、および音声などのコンテンツを含むことができる。 Resource 145 is any data that can be provided over network 105 . Resource 145 is identified by a resource address, eg, a universal resource locator (URL), associated with resource 145 . Resources include HTML pages, word processing and Portable Document Format (PDF) documents, images, videos, and feed sources, just to name a few. Resources can include content such as words, phrases, images, and sounds that can include embedded information (such as meta-information in hyperlinks) and/or embedded instructions (such as scripts).

クライアントデバイス110は、ネットワーク105を介して通信することができる電子デバイスである。例示的なクライアントデバイス110は、パーソナルコンピュータ、モバイル通信デバイス、たとえば、スマートフォン、およびネットワーク105を介してデータを送受信することができる他のデバイスを含む。 Client device 110 is an electronic device capable of communicating over network 105 . Exemplary client devices 110 include personal computers, mobile communication devices such as smart phones, and other devices capable of sending and receiving data over network 105 .

クライアントデバイス110は、典型的には、ネットワーク105を介したデータの送受信を容易にするために、ウェブブラウザおよび/またはネイティブアプリケーションなどのアプリケーション112を含む。ネイティブアプリケーションは、特定のプラットフォームまたは特定のデバイス用に開発されたアプリケーションである。発行者130は、クライアントデバイス110に、ネイティブアプリケーションを開発および提供し、たとえば、ダウンロードできるようにすることができる。いくつかの実装形態では、クライアントデバイス110は、デジタルメディアデバイス、たとえば、ビデオをテレビにストリーミングするために、テレビまたは他のディスプレイにプラグインするストリーミングデバイスである。デジタルメディアデバイスはまた、ビデオをストリーミングし、および/またはリソースを提示するウェブブラウザおよび/または他のアプリケーションを含むことができる。 Client device 110 typically includes an application 112 such as a web browser and/or native application to facilitate sending and receiving data over network 105 . A native application is an application developed for a specific platform or a specific device. Publisher 130 may develop and provide native applications, eg, make them available for download, to client device 110 . In some implementations, client device 110 is a digital media device, eg, a streaming device that plugs into a television or other display to stream video to the television. Digital media devices may also include web browsers and/or other applications that stream video and/or present resources.

ウェブブラウザは、たとえば、クライアントデバイス110のユーザがウェブブラウザのアドレスバーにリソース145のリソースアドレスを入力すること、またはリソースアドレスを参照するリンクを選択することに応答して、発行者130のウェブサイト140をホストするウェブサーバからリソース145を要求することができる。同様に、ネイティブアプリケーションは、発行者130のリモートサーバからアプリケーションコンテンツを要求することができる。 The web browser, for example, in response to the user of the client device 110 entering the resource address of the resource 145 into the address bar of the web browser or selecting a link that references the resource address, publishes the website of the publisher 130. A resource 145 can be requested from the web server hosting 140 . Similarly, native applications can request application content from publisher 130's remote servers.

いくつかのリソース145、アプリケーションページ、または他のアプリケーションコンテンツは、リソース145またはアプリケーションページでデジタルコンポーネントを提示するためのデジタルコンポーネントスロットを含むことができる。本明細書全体で使用されているように、「デジタルコンポーネント」という語句は、デジタルコンテンツまたはデジタル情報の個別の単位(たとえば、ビデオクリップ、オーディオクリップ、マルチメディアクリップ、画像、テキスト、または別のコンテンツの単位)を指す。デジタルコンポーネントは、単一のファイルまたはファイルのコレクションとして物理メモリデバイスに電子的に記憶することができ、デジタルコンポーネントは、ビデオファイル、オーディオファイル、マルチメディアファイル、画像ファイル、またはテキストファイルの形式を取り、広告がデジタルコンポーネントの一種であるように、広告情報を含むことができる。たとえば、デジタルコンポーネントは、アプリケーション112によって提示されるウェブページまたは他のリソースのコンテンツを補足することを意図したコンテンツであり得る。より具体的には、デジタルコンポーネントは、リソースコンテンツに関連するデジタルコンテンツを含み得る(たとえば、デジタルコンポーネントは、ウェブページコンテンツと同じトピック、または関連するトピックに関連し得る)。したがって、デジタルコンポーネント配信システム150によるデジタルコンポーネントの提供は、ウェブページまたはアプリケーションコンテンツを補足し、一般に強化することができる。 Some resources 145, application pages, or other application content may include digital component slots for presenting digital components on the resource 145 or application page. As used throughout this specification, the phrase "digital component" refers to a discrete unit of digital content or information (e.g., a video clip, audio clip, multimedia clip, image, text, or other piece of content). unit). A digital component may be stored electronically in a physical memory device as a single file or as a collection of files, and may take the form of video, audio, multimedia, image, or text files. , may contain advertising information, such that advertisements are a type of digital component. For example, a digital component can be content intended to supplement the content of a web page or other resource presented by application 112 . More specifically, the digital component may include digital content related to the resource content (eg, the digital component may relate to the same topic as, or a related topic to, the web page content). Thus, the provision of digital components by digital component delivery system 150 can complement and generally enhance web page or application content.

アプリケーション112が、1つまたは複数のデジタルコンポーネントスロットを含むリソース145(または、アプリケーションコンテンツ)をロードするとき、アプリケーション112は、デジタルコンポーネント配信システム150に各スロットのデジタルコンポーネントを要求することができる。次に、デジタルコンポーネント配信システム150は、デジタルコンポーネントプロバイダ160にデジタルコンポーネントを要求することができる。デジタルコンポーネントプロバイダ160は、リソース145を提示するためのデジタルコンポーネントを提供するエンティティである。 When an application 112 loads a resource 145 (or application content) that includes one or more digital component slots, the application 112 can request digital components for each slot from the digital component distribution system 150 . Digital component distribution system 150 can then request the digital component from digital component provider 160 . Digital component provider 160 is an entity that provides digital components for presenting resource 145 .

場合によっては、デジタルコンポーネント配信システム150は、1つまたは複数のデジタルコンポーネントパートナ157にデジタルコンポーネントを要求することもできる。デジタルコンポーネントパートナ157は、デジタルコンポーネント要求に応答してデジタルコンポーネントプロバイダ160に代わってデジタルコンポーネントを選択するエンティティである。 In some cases, digital component distribution system 150 may also request digital components from one or more digital component partners 157 . Digital component partner 157 is an entity that selects digital components on behalf of digital component provider 160 in response to digital component requests.

デジタルコンポーネント配信システム150は、様々な基準に基づいて、各デジタルコンポーネントスロットのデジタルコンポーネントを選択することができる。たとえば、デジタルコンポーネント配信システム150は、デジタルコンポーネントプロバイダ160および/またはデジタルコンポーネントパートナ157から受信したデジタルコンポーネントから、リソース145(または、アプリケーションコンテンツ)との関連性、デジタルコンポーネントのパフォーマンス(たとえば、ユーザがデジタルコンポーネントと相互作用する速度)などに基づいて、デジタルコンポーネントを選択することができる。次いで、デジタルコンポーネント配信システム150は、リソース145または他のアプリケーションコンテンツとともに提示するために、選択されたデジタルコンポーネントをクライアントデバイス110に提供することができる。 Digital component distribution system 150 may select the digital component for each digital component slot based on various criteria. For example, the digital component distribution system 150 may determine from the digital components received from the digital component provider 160 and/or the digital component partners 157 the relevance to the resource 145 (or application content), the performance of the digital component (e.g. Digital components can be selected based on factors such as speed at which they interact with the component. Digital component distribution system 150 can then provide the selected digital components to client device 110 for presentation with resource 145 or other application content.

アプリケーション112がデジタルコンポーネントを提示するとき、アプリケーション112(ブラウザであり得る)は、デジタルコンポーネントの提示のためのインプレッションデータ114を記憶することができる。デジタルコンポーネントの特定の提示のインプレッションデータ114は、デジタルコンポーネントのランディングページ(たとえば、デジタルコンポーネントによってリンクされているページで、ユーザがデジタルコンポーネントをクリックまたは相互作用すると、アプリケーション/ブラウザはそのページをユーザに表示する)のURLまたはドメイン、デジタルコンポーネントの1つまたは複数の識別子、インプレッションに関連付けられるイベントレベルのデータ、インプレッションデータをクライアントデバイス110から削除するタイミングを指定する有効期限、および/あるいはデジタルコンポーネントのコンバージョン報告が送信される報告URLまたはドメインを含むことができる。このデータは、たとえば、デジタルコンポーネントのメタデータまたはデジタルコンポーネントのアンカータグとして、デジタルコンポーネントによって提供することができる。以下でより詳細に説明するように、デジタルコンポーネントの各インプレッションの生のインプレッションデータを記憶するのではなく、または記憶することに加えて、アプリケーション112は、不正検出システム170によってブラインド署名されたインプレッションデータを記憶することができる。 When application 112 presents the digital component, application 112 (which may be a browser) may store impression data 114 for presentation of the digital component. Impression data 114 for a particular presentation of a digital component may be obtained from the landing page of the digital component (e.g., a page linked by the digital component), when the user clicks or interacts with the digital component, the application/browser displays that page to the user. display), one or more identifiers for the digital component, event-level data associated with the impression, an expiration date that specifies when the impression data is removed from the client device 110, and/or conversions of the digital component; Can include a reporting URL or domain to which reports will be sent. This data may be provided by the digital component, for example, as metadata for the digital component or as anchor tags for the digital component. As described in more detail below, rather than or in addition to storing the raw impression data for each impression of the digital component, the application 112 uses the impression data blind-signed by the fraud detection system 170. can be stored.

アプリケーション112はまた、検出されたコンバージョンに応答してコンバージョンデータ116を記憶することができる。デジタルコンポーネントに対するコンバージョンは、デジタルコンポーネントがユーザに提示された後、またはユーザによって選択された後の、指定されたユーザアクションの完了である。一部のコンバージョンは複数のタイプを有することができるため、コンバージョンのためのコンバージョンデータ116は、コンバージョンのタイプを示すデータを含むことができる。コンバージョンのタイプは、コンバージョンが完了した後の後続のアクションを指定することができる。たとえば、コンバージョンは、オンラインショッピングカートへのアイテムの追加である可能性がある。この例では、第1のタイプのコンバージョンは、チェックアウトせずにアイテムを追加すること(たとえば、購入を完了しない)であり得、第2のタイプのコンバージョンは、チェックアウトを伴うアイテムの追加であり得る。以下でより詳細に説明するように、コンバージョンのためのコンバージョンデータは、コンバージョンのタイプを示す1つまたは複数のビットのセットであり得、アプリケーションは、デジタルコンポーネント配信システム150(または、別の適切なシステム)によってブラインド署名されたコンバージョンデータを記憶することができる。 Application 112 may also store conversion data 116 in response to detected conversions. A conversion for a digital component is the completion of a specified user action after the digital component has been presented to the user or selected by the user. Conversion data 116 for a conversion may include data indicating the type of conversion, as some conversions may have multiple types. The type of conversion can specify subsequent actions after the conversion is completed. For example, a conversion could be adding an item to an online shopping cart. In this example, a first type of conversion could be adding an item without checking out (e.g. not completing a purchase) and a second type of conversion could be adding an item with checkout. could be. As described in more detail below, the conversion data for a conversion can be a set of one or more bits that indicate the type of conversion, and the application uses digital component distribution system 150 (or another suitable system) can store conversion data blind signed.

不正検出システム170は、インプレッションまたはコンバージョンが有効であるか不正であるかを決定するために、クライアントデバイス110から受信した不正信号を評価することができる。不正信号はアプリケーションに依存する可能性があり、実装形態によって異なる可能性がある。アプリケーション112(または、クライアントデバイス110上のオペレーティングシステム)は、不正検出信号を収集し、不正検出信号を不正検出システム170に提供するために、デジタルコンポーネントがアプリケーション112(または、クライアントデバイス110上のオペレーティングシステム)を呼び出すことを可能にするAPIを含むことができる。不正検出信号に加えて、アプリケーション112は、インプレッションのブラインド化されたインプレッションデータを不正検出システム170に送信することができる。不正検出システム170がインプレッションは有効であると決定した場合、不正検出システム170は、ブラインド化されたインプレッションデータに署名し、署名されたブラインド化されたインプレッションデータをアプリケーション112に提供することができる。ブラインド化されたインプレッションデータを生成し、ブラインド化されたインプレッションデータに署名するための例示的な技法を以下に説明する。 Fraud detection system 170 can evaluate fraud signals received from client device 110 to determine whether an impression or conversion is valid or fraudulent. Bad signals can be application dependent and can vary between implementations. Application 112 (or an operating system on client device 110 ) collects fraud detection signals and digital components are used by application 112 (or an operating system on client device 110 ) to provide fraud detection signals to fraud detection system 170 . system) can be included. In addition to fraud detection signals, application 112 may send impression blinded impression data to fraud detection system 170 . If the fraud detection system 170 determines that the impression is valid, the fraud detection system 170 can sign the blinded impression data and provide the signed blinded impression data to the application 112. Exemplary techniques for generating blinded impression data and signing the blinded impression data are described below.

集約システム180は、クライアントデバイス110から受信したデータに基づいて、集約されたネットワーク測定値を生成することができる。以下の説明において、測定データ要素を生成および提供するための技法は、ウェブブラウザまたはネイティブアプリケーションであり得るアプリケーション112によって実行されるものとして説明される。しかしながら、いくつかの実装形態では、クライアントデバイス110のオペレーティングシステムは、測定データ要素を生成および送信することができる。そのような実装形態では、クライアントデバイス110上のウェブブラウザおよびアプリケーションは、インプレッションおよびコンバージョンをオペレーティングシステムに報告するように構成することができる。オペレーティングシステムは、アプリケーション112によって実行されるものとして以下に説明されるインプレッションおよびコンバージョンを報告するための動作の各々を実行することができる。 Aggregation system 180 can generate aggregated network measurements based on data received from client devices 110 . In the following description, techniques for generating and providing measurement data elements are described as being performed by application 112, which may be a web browser or native application. However, in some implementations, the operating system of client device 110 may generate and transmit measurement data elements. In such implementations, web browsers and applications on client device 110 can be configured to report impressions and conversions to the operating system. The operating system may perform each of the operations for reporting impressions and conversions described below as being performed by application 112 .

クライアントデバイス110上のアプリケーション112は、ネットワークデータを表す暗号化されたデータを含む測定データ要素を集約システム180に提供することができる。ネットワークデータは、各コンバージョンのインプレッションデータおよび/またはコンバージョンデータを含むことができる。たとえば、アプリケーション112は、コンバージョンデータがクライアントデバイス110に記憶されている各コンバージョンの測定データ要素を生成し、集約システム180に送信することができる。集約されたネットワーク測定値は、1つまたは複数のデジタルコンポーネントの各々について、複数のクライアントデバイス110にわたるデジタルコンポーネントのコンバージョンの総数を含むことができる。 Application 112 on client device 110 can provide measurement data elements that include encrypted data representing network data to aggregation system 180 . Network data can include impression data and/or conversion data for each conversion. For example, application 112 may generate and send to aggregation system 180 a measurement data element for each conversion whose conversion data is stored on client device 110 . Aggregated network measurements may include the total number of digital component conversions across multiple client devices 110 for each of the one or more digital components.

以下でより詳細に説明するように、アプリケーション112は、測定データ要素におけるデータを生成するために、(t、n)しきい値スキームを使用することができる。いくつかの実装形態では、アプリケーション112がコンバージョンを検出するか、またはコンバージョンのためのコンバージョンデータを受信すると、アプリケーション112は、コンバージョンのためのインプレッションデータおよびコンバージョンデータに基づいてグループ鍵(たとえば、多項式関数)を生成する。次いで、アプリケーションは、グループ鍵の一部を表し、同じインプレッションとコンバージョンのペアに対して十分な数のグループメンバー鍵が受信された場合にのみ、グループ鍵を再生成するために使用することができるグループメンバー鍵を生成することができる。この例では、コンバージョンの測定データ要素は、アプリケーションによって生成されたグループメンバー鍵と、インプレッションとコンバージョンのペアに対応するタグを含むことができる。各固有のインプレッションとコンバージョンのペアは、対応する固有のタグを有することができるので、集約システム180は、そのタグを使用して、各インプレッションとコンバージョンのペアの測定データ要素を集約することができる。 As described in more detail below, application 112 can use a (t, n) threshold scheme to generate data in measurement data elements. In some implementations, when application 112 detects a conversion or receives conversion data for a conversion, application 112 generates a group key (e.g., a polynomial function ). The application can then represent a portion of the group key and use it to regenerate the group key only when a sufficient number of group member keys have been received for the same impression-conversion pair. A group member key can be generated. In this example, the conversion measurement data element may include a group membership key generated by the application and a tag corresponding to the impression-conversion pair. Each unique impression-conversion pair can have a corresponding unique tag, which the aggregation system 180 can use to aggregate the measurement data elements for each impression-conversion pair. .

(t、n)しきい値暗号化スキームでは、集約システム180は、インプレッションデータおよびコンバージョンデータを復号化できるようにするために、同じインプレッションとコンバージョンのペアについて少なくともt個のグループメンバー鍵を受信する必要がある。t個未満のグループメンバー鍵が受信された場合、集約システム180は、インプレッションデータおよびコンバージョンデータを復号化することができない。以下でより詳細に説明するように、同じインプレッションとコンバージョンのペアの少なくともt個の測定データ要素がクライアントデバイス110から受信されると、集約システム180は、少なくともt個のグループメンバー鍵からグループ鍵を決定し、グループ鍵からインプレッションデータおよびコンバージョンデータを取得することができる。 In a (t, n) threshold encryption scheme, the aggregation system 180 receives at least t group member keys for the same impression and conversion pair in order to be able to decrypt the impression and conversion data. There is a need. If less than t group member keys are received, the aggregation system 180 cannot decrypt impression and conversion data. As described in more detail below, when at least t measurement data elements for the same impression-conversion pair are received from the client device 110, the aggregation system 180 derives a group key from the at least t group member keys. can determine and obtain impression and conversion data from the group key.

集約システム180は、インプレッションとコンバージョンのペアのインプレッションデータとコンバージョンデータを含む受信された測定データ要素の数に基づいて、インプレッションとコンバージョンのペアのコンバージョンの量を決定することができる。たとえば、少なくともt個のグループメンバー鍵を使用してインプレッションデータおよびコンバージョンデータを取得した後、集約システム180は、コンバージョンの量として、インプレッションとコンバージョンのペアに対して受信されたグループメンバー鍵の数のカウントを決定することができる。集約システム180は、インプレッションデータ、コンバージョンデータ、およびコンバージョンの量を報告システム190に報告することができ、報告システム190は、デジタルコンポーネントの報告URLに対応する報告ドメインとして実装され得、このURLは、インプレッションデータおよびコンバージョンデータに対応する。 Aggregation system 180 can determine the amount of conversions for an impression-conversion pair based on the number of received measurement data elements that include impression data and conversion data for the impression-conversion pair. For example, after obtaining impression data and conversion data using at least t group member keys, the aggregation system 180 calculates the amount of conversions as the number of group member keys received for impression-conversion pairs. A count can be determined. Aggregation system 180 may report impression data, conversion data, and amount of conversions to reporting system 190, which may be implemented as a reporting domain corresponding to the digital component's reporting URL, which URL is Corresponds to impression and conversion data.

図2は、署名されたインプレッションデータを記録するための例示的なプロセス200を示す流れ図である。プロセス200は、たとえば、ウェブサイト140、デジタルコンポーネント配信システム150、および不正検出システム170と相互作用するクライアントデバイス110によって実装することができる。プロセス200の動作はまた、非一時的コンピュータ可読媒体に記憶された命令として実装することができ、1つまたは複数のデータ処理装置による命令の実行により、1つまたは複数のデータ処理装置にプロセス200の動作を実行させることができる。 FIG. 2 is a flow diagram illustrating an exemplary process 200 for recording signed impression data. Process 200 may be implemented by client device 110 interacting with website 140, digital component distribution system 150, and fraud detection system 170, for example. The operations of process 200 may also be implemented as instructions stored on a non-transitory computer-readable medium such that execution of the instructions by one or more data processors causes process 200 to be executed by one or more data processors. can be executed.

クライアントデバイスはコンテンツをフェッチする(202)。クライアントデバイス110上で実行されるアプリケーション112は、リモートサーバ、たとえば、1つまたは複数のウェブサイト140をホストするウェブサーバ、あるいは1つまたは複数のネイティブアプリケーションのコンテンツをホストするアプリケーションコンテンツサーバからコンテンツを要求することができる。この例では、アプリケーション112は、ウェブサイト140からリソース145を要求する。ユーザは、リモートサーバによってホストされるウェブサイト140を指すURLを入力または選択することができる。アプリケーション112、たとえば、ウェブブラウザは、URLによって識別されるリソース145に対する要求を生成し、その要求をリモートサーバに送信することができる。要求は、リソース145のURLを含むことができる。 A client device fetches content (202). An application 112 running on a client device 110 retrieves content from a remote server, such as a web server hosting one or more websites 140 or an application content server hosting content for one or more native applications. can be requested. In this example, application 112 requests resource 145 from website 140 . A user can enter or select a URL that points to a website 140 hosted by a remote server. An application 112, eg, a web browser, can generate a request for a resource 145 identified by a URL and send the request to a remote server. The request may include the URL of resource 145 .

ウェブサイト140は、コンテンツをクライアントデバイスに返す(204)。コンテンツは、URLによって識別されるウェブページまたは他のリソース145である可能性がある。アプリケーション112は、クライアントデバイスのディスプレイ上にコンテンツをレンダリングすることができる(206)。 Website 140 returns 204 the content to the client device. The content can be a web page or other resource 145 identified by a URL. Application 112 may render content on the client device's display (206).

コンテンツは、1つまたは複数のデジタルコンポーネントスロットを含むことができる。デジタルコンポーネントスロットは、デジタルコンポーネント配信システム150から受信したデジタルコンポーネントによって埋めることができる。デジタルコンポーネントスロット(または、リソース145)は、アプリケーション112にデジタルコンポーネントのデジタルコンポーネント配信システム150への要求を生成させることができるコンピュータ可読命令を含むことができる。 Content can include one or more digital component slots. Digital component slots can be filled with digital components received from digital component distribution system 150 . A digital component slot (or resource 145) can include computer readable instructions that can cause an application 112 to generate a request to the digital component delivery system 150 for a digital component.

クライアントデバイス110は、1つまたは複数のデジタルコンポーネントを要求する(208)。たとえば、アプリケーション112は、デジタルコンポーネントスロットまたはリソース145のコンピュータ可読命令の実行に応答して要求を生成することができる。アプリケーション112は、要求をデジタルコンポーネント配信システム150に送信することができる。 Client device 110 requests (208) one or more digital components. For example, application 112 may generate requests in response to executing computer-readable instructions for digital component slots or resources 145 . Application 112 can send a request to digital component delivery system 150 .

デジタルコンポーネント配信システム150は、1つまたは複数のデジタルコンポーネントをクライアントデバイスに返す(210)。上記のように、デジタルコンポーネント配信システム150は、デジタルコンポーネントのセットから、デジタルコンポーネントが提示されるリソース145(または、アプリケーションコンテンツ)との関連性(たとえば、このデータを要求に含めることができる)、デジタルコンポーネントのパフォーマンス、および/または他の適切な基準などの様々な基準に基づいて、デジタルコンポーネントを選択することができる。デジタルコンポーネント配信システム150は、デジタルコンポーネントのセットに含めるために、デジタルコンポーネントプロバイダ160および/またはデジタルコンポーネントパートナ157に、デジタルコンポーネント(または、デジタルコンポーネントの配信基準)を要求することができる。デジタルコンポーネントを選択した後、デジタルコンポーネント配信システム150は、デジタルコンポーネントをクライアントデバイス110に送信することができる。 Digital component delivery system 150 returns (210) one or more digital components to the client device. As noted above, the digital component delivery system 150 determines from the set of digital components the relevance (e.g., this data can be included in the request) to the resource 145 (or application content) to which the digital component is presented; Digital components may be selected based on various criteria, such as digital component performance, and/or other suitable criteria. Digital component distribution system 150 may request digital components (or distribution criteria for digital components) from digital component providers 160 and/or digital component partners 157 for inclusion in a set of digital components. After selecting the digital component, digital component distribution system 150 can transmit the digital component to client device 110 .

クライアントデバイス110は、デジタルコンポーネント配信システム150から受信したデジタルコンポーネントをレンダリングする(212)。アプリケーション112は、リソース145(または、アプリケーションコンテンツ)のデジタルコンポーネントスロット内のデジタルコンポーネントをレンダリングすることができる。デジタルコンポーネントのレンダリングが図2に示されているが、コンテンツがレンダリングされた後に発生すると、アプリケーション112は、たとえば、デジタルコンポーネントスロットにデジタルコンポーネントを含むウェブページをロードすることによって、コンテンツとデジタルコンポーネントを同時にレンダリングすることができる。 Client device 110 renders 212 the digital component received from digital component distribution system 150 . Application 112 can render a digital component within a digital component slot of resource 145 (or application content). Rendering of the digital component is illustrated in FIG. 2, but when it occurs after the content is rendered, the application 112 combines the content and the digital component by, for example, loading a web page containing the digital component into a digital component slot. can be rendered simultaneously.

クライアントデバイス110は、コンテンツとともに提示されるデジタルコンポーネントごとのインプレッションデータを記憶する(214)。上記のように、デジタルコンポーネントの特定の提示のインプレッションデータは、デジタルコンポーネントのランディングページ(たとえば、デジタルコンポーネントによってリンクされているページ)のURLまたはドメイン、デジタルコンポーネントの1つまたは複数の識別子、インプレッションデータをクライアントデバイス110から削除するタイミングを指定する有効期限、および/あるいはデジタルコンポーネントのコンバージョン報告が送信される報告URLまたはドメイン(たとえば、報告システム190の報告URL)を含むことができる。 The client device 110 stores impression data for each digital component presented with the content (214). As noted above, impression data for a particular presentation of a digital component may include the URL or domain of the digital component's landing page (e.g., the page linked by the digital component), one or more identifiers for the digital component, the impression data may include an expiration date that specifies when to remove the digital component from the client device 110, and/or a reporting URL or domain to which conversion reports for the digital component are sent (eg, the reporting URL of the reporting system 190).

いくつかの実装形態では、アプリケーション112は、クライアントデバイス110(または、上記のオペレーティングシステム)に、コンテンツとともに提示される各デジタルコンポーネントを登録する。たとえば、デジタルコンポーネントをレンダリングすることにより、デジタルコンポーネントをクライアントデバイス110に登録することができる。デジタルコンポーネントは、ペイロード(たとえば、目に見えないデータ)およびコンピュータ可読命令を含むことができる。ペイロードは、上記のインプレッションデータを含むことができる。コンピュータ可読命令は、デジタルコンポーネントをアプリケーション112に登録させることができる。たとえば、デジタルコンポーネントは、アプリケーション112、あるいはアプリケーション112またはクライアントデバイス110のコンバージョンエンジンによってデジタルコンポーネントに公開されたAPIへの呼出しを含むことができる。APIへの呼出しは、デジタルコンポーネントのペイロードを含むことができる。アプリケーション112は、データを登録テーブルに記憶することができる。 In some implementations, application 112 registers with client device 110 (or an operating system as described above) each digital component that is presented with the content. For example, the digital component can be registered with the client device 110 by rendering the digital component. Digital components can include payload (eg, invisible data) and computer-readable instructions. The payload can contain the impression data described above. The computer readable instructions can cause the digital component to register with application 112 . For example, a digital component may include a call to an API exposed to the digital component by application 112 or a conversion engine of application 112 or client device 110 . A call to the API can contain a payload of digital components. Application 112 can store data in a registration table.

アプリケーション112は、コンテンツとともに提示されるデジタルコンポーネントごとのインプレッションデータをブラインド化する(216)。アプリケーション112は、デジタルコンポーネントのインプレッションデータをブラインド化するためにブラインド技法を使用することができる。一般に、ブラインド化技法は、実際のインプレッションデータを隠すブラインド化されたインプレッションデータを生成するためにインプレッションデータにブラインド係数を適用して、ブラインド化されたインプレッションデータを受信するエンティティが、ブラインド技法、およびブラインド化されたインプレッションデータの生成に使用されるパラメータ/鍵の知識がない場合、実際のインプレッションデータを決定できないようにすることができる。いくつかの実装形態では、アプリケーション112は、デジタルコンポーネントのインプレッションデータをブラインド化するために、インターネット技術特別調査委員会(IETF)ドラフト標準プロトコルである検証可能、忘却擬似ランダム関数(VOPRF)プロトコルを使用して、デジタルコンポーネントのインプレッションデータをブラインド化する。他の適切なブラインド署名技法も使用することができる。 Application 112 blinds the impression data for each digital component presented with the content (216). The application 112 can use blinding techniques to blind the digital component impression data. In general, a blinding technique applies a blinding factor to impression data to generate blinded impression data that obscures the actual impression data so that an entity receiving the blinded impression data uses the blinding technique, and Without knowledge of the parameters/keys used to generate the blinded impression data, the actual impression data may not be determined. In some implementations, the application 112 uses the Internet Engineering Task Force (IETF) draft standard protocol, the Verifiable, Forgetting Pseudorandom Function (VOPRF) protocol, to blind digital component impression data. to blind impression data for digital components. Other suitable blind signing techniques can also be used.

クライアントデバイス110またはアプリケーション112は、不正検出信号を収集する(218)。上記のように、アプリケーション112は、デジタルコンポーネントが、不正検出信号を収集するためにアプリケーション112を呼び出し、不正検出信号を不正検出システム170に提供することを可能にするAPIを含むことができる。 Client device 110 or application 112 collects the fraud detection signal (218). As noted above, application 112 may include an API that allows digital components to call application 112 to collect fraud detection signals and provide fraud detection signals to fraud detection system 170 .

アプリケーション112は、コンテンツおよび不正検出信号とともに提示されたデジタルコンポーネントごとにブラインド化されたインプレッションデータを不正検出システム170に送信する(220)。たとえば、アプリケーション112は、不正検出システム170に、およびデジタルコンポーネントごとに、デジタルコンポーネントのインプレッションが有効であるか不正であるかを決定するための要求を送信することができる。各要求は、所与のデジタルコンポーネントに固有のものにすることもでき、コンテンツとともに提示されるすべてのデジタルコンポーネントに対して単一の要求を送信することもできる。 Application 112 sends (220) to fraud detection system 170 blinded impression data for each digital component presented with the content and fraud detection signal. For example, the application 112 can send a request to the fraud detection system 170 and for each digital component to determine whether the impression of the digital component is valid or fraudulent. Each request can be specific to a given digital component, or a single request can be sent for all digital components presented with the content.

要求は、ブラインド化されたインプレッションデータと不正検出信号を含むことができる。インプレッションデータがブラインド化されているので、不正検出システム170は実際のインプレッションデータにアクセスすることができない。これは、不正検出システム170が、ブラインド化されたインプレッションデータを送信したクライアントデバイス110のユーザのユーザデータを取得、収集、または追跡することを防止する。不正検出システム170は、デジタルコンポーネントのインプレッションが有効であるか不正であるかを決定するために、不正検出信号を評価することができる。したがって、不正検出システム170は、不正検出信号に基づいて、インプレッションイベントが有効であるかどうかを決定することができるが、イベントのコンテンツを決定することも、プレーンテキストインプレッションデータにアクセスすることもできない。 The request can include blinded impression data and fraud detection signals. Because the impression data is blinded, the fraud detection system 170 cannot access the actual impression data. This prevents the fraud detection system 170 from obtaining, collecting, or tracking user data of the user of the client device 110 who sent the blinded impression data. The fraud detection system 170 can evaluate the fraud detection signal to determine whether the impression of the digital component is valid or fraudulent. Thus, the fraud detection system 170 can determine whether an impression event is valid based on the fraud detection signal, but cannot determine the content of the event or access the plaintext impression data. .

不正検出システム170が、デジタルコンポーネントのインプレッションが無効である(たとえば、不正である)と決定した場合、不正検出システム170は、要求を無視するか、またはインプレッションが無効であることを示すデータで要求に応答することができる。不正検出システム170が、デジタルコンポーネントのインプレッションが有効であると決定した場合、不正検出システム170は、デジタルコンポーネントのインプレッションデータにブラインド署名する(222)。不正検出システム170は、ブラインド署名技法を使用して、ブラインド化されたインプレッションデータにブラインド署名することができる。いくつかの実装形態では、ブラインド署名技法は、CloudFlare(商標)のPrivacyPass、またはGoogle Chrome(商標)ブラウザの信頼トークンであってよく、それらのどちらもIETF VOPRFドラフト標準に基づいている。 If the fraud detection system 170 determines that the digital component impression is invalid (e.g., fraudulent), the fraud detection system 170 either ignores the request or requests the request with data indicating that the impression is invalid. can respond to If the fraud detection system 170 determines that the digital component impression is valid, the fraud detection system 170 blind signs the digital component impression data (222). The fraud detection system 170 can blind sign the blinded impression data using blind signing techniques. In some implementations, the blind signing technique may be CloudFlare™'s PrivacyPass or the Google Chrome™ browser's trust token, both of which are based on the IETF VOPRF draft standard.

一般に、ブラインド署名技法は、実際のインプレッションデータを知らなくても、たとえばシークレットのブラインド署名鍵を使用して、ブラインド化されたデータのデジタル署名を可能にするため、結果として生じるブラインド署名を元のブラインド化されていないインプレッションデータに対して検証することができる。いくつかの実装形態では、不正検出システム170は、不正検出システム170のブラインド化された署名鍵を使用して、VOPRFプロトコルを使用してブラインド化されたインプレッションデータにブラインド署名する。不正検出システム170は、他のエンティティがブラインド署名鍵にアクセスできないように、このブラインド署名鍵を秘密裏に維持することができる。 In general, blind signature techniques allow the digital signature of data that has been blinded, e.g., using a secret blind signature key, without knowledge of the actual impression data, so that the resulting blind signature is the original Can be validated against unblinded impression data. In some implementations, the fraud detection system 170 blind-signs the blinded impression data using the VOPRF protocol using the fraud detection system's 170 blind signing key. Fraud detection system 170 may maintain this blind signing key in secret so that other entities cannot access the blind signing key.

不正検出システム170は、ブラインド署名されたインプレッションデータをクライアントデバイスに送信する(224)。たとえば、不正検出システム170は、クライアントデバイス110またはアプリケーション112によって開始された要求に応答して、ブラインド署名されたインプレッションデータをクライアントデバイス110またはアプリケーション112に送信することができる。アプリケーション112は、たとえば、VOPRFプロトコルを使用して、ブラインド化されたインプレッションデータの署名を検証することができる(226)。同様に、アプリケーション112は、ブラインド署名されたインプレッションデータのブラインドを解除することができる(228)。アプリケーション112はまた、ブラインド化されたインプレッションデータにブラインド署名するために使用されたVOPRFプロトコルを使用して、ブラインド署名されたインプレッションデータのブラインドを解除することができる。アプリケーション112は、たとえば、署名されたインプレッションデータをクライアントデバイス110に記憶し、インプレッションをクライアントデバイス110における登録テーブルに登録することによって、署名されたインプレッションデータを記録する(230)。 Fraud detection system 170 sends the blind-signed impression data to the client device (224). For example, fraud detection system 170 may send blind-signed impression data to client device 110 or application 112 in response to a request initiated by client device 110 or application 112 . Application 112 can verify the signature of the blinded impression data (226), for example, using the VOPRF protocol. Similarly, application 112 may unblind the blind-signed impression data (228). Application 112 may also unblind blind-signed impression data using the VOPRF protocol used to blind-sign the blind-signed impression data. Application 112 records 230 the signed impression data, for example, by storing the signed impression data on client device 110 and registering the impression in a registration table on client device 110 .

図3は、コンバージョンデータを記録するための例示的なプロセス300を示す流れ図である。プロセス300は、たとえば、ウェブサイト140およびデジタルコンポーネント配信システム150と相互作用するクライアントデバイス110によって実装することができる。プロセス300の動作はまた、非一時的コンピュータ可読媒体に記憶された命令として実装することができ、1つまたは複数のデータ処理装置による命令の実行により、1つまたは複数のデータ処理装置にプロセス300の動作を実行させることができる。 FIG. 3 is a flow diagram illustrating an exemplary process 300 for recording conversion data. Process 300 can be implemented, for example, by client device 110 interacting with website 140 and digital component distribution system 150 . The operations of process 300 may also be implemented as instructions stored on a non-transitory computer-readable medium, such that execution of the instructions by one or more data processing devices causes process 300 to occur in one or more data processing devices. can be executed.

クライアントデバイス110は、コンテンツをフェッチする(302)。たとえば、クライアントデバイス110上で実行されるアプリケーション112(たとえば、ウェブブラウザまたはネイティブアプリケーション)は、デジタルコンポーネントと相互作用する、たとえば、選択またはクリックするユーザに応答して、デジタルコンポーネントによってリンクされたランディングページを要求することができる。アプリケーション112は、ランディングページを含むウェブサイト140をホストするウェブサーバに要求を送信することができる。 The client device 110 fetches content (302). For example, an application 112 (e.g., a web browser or native application) running on client device 110 responds to a user interacting with, e.g., selecting or clicking on, a digital component to a landing page linked by the digital component. can be requested. Application 112 may send a request to a web server hosting website 140 that contains a landing page.

ウェブサイト140は、コンテンツをクライアントデバイスに返す(304)。コンテンツは、URLによって識別されるウェブページまたは他のリソース145である可能性がある。アプリケーション112は、クライアントデバイスのディスプレイ上にコンテンツをレンダリングすることができる。コンバージョンに必要なユーザインタラクションの量と性質は、個々のデジタルコンポーネントプロバイダによってニーズに基づいて定義される。コンバージョンが実際に発生すると、ランディングページまたはランディングページを所有するウェブサイトは、アプリケーション(ブラウザ)にコンバージョンの発生を通知する。他の実装形態では、コンバージョンは、モバイルアプリの場合はアプリストアで、ユーザがプロモートされたアプリをダウンロードしてインストールするウェブアプリの場合はウェブストアで発生する可能性がある。これは通常、クリックツーインストールコンバージョンと呼ばれる。そのような場合、アプリストアまたはウェブストアは、コンバージョンデータを報告するオペレーティングシステム、ブラウザ、またはアプリケーションに、コンバージョンの発生を通知する可能性がある。しかし、他の実装形態では、コンバージョンは、ユーザによるデジタルコンポーネントプロバイダへの電話である可能性がある。スマートフォンのオペレーティングシステムは電話を認識し、コンバージョンを測定することができる(一般に、クリックツーコールコンバージョンと呼ばれる)。 Website 140 returns 304 the content to the client device. The content can be a web page or other resource 145 identified by a URL. Application 112 can render content on the client device's display. The amount and nature of user interaction required for conversion is defined by individual digital component providers based on their needs. When a conversion actually occurs, the landing page or the website that owns the landing page notifies the application (browser) that the conversion has occurred. In other implementations, the conversion may occur at the app store for mobile apps or at the web store for web apps where users download and install promoted apps. This is commonly called a click-to-install conversion. In such cases, the app store or web store may notify the operating system, browser, or application reporting the conversion data that the conversion has occurred. However, in other implementations, the conversion could be a call by the user to the digital component provider. The smartphone's operating system recognizes the phone and can measure conversions (commonly called click-to-call conversions).

クライアントデバイス110は、コンバージョンデータをフェッチするか、さもなければ受信する(306)。いくつかの実装形態では、コンテンツはコンバージョンピクセルを含む。コンバージョンピクセルは、コンバージョン報告を生成する必要があるかどうか、たとえば、コンバージョンが発生したかどうか、コンバージョンを記録するかどうかを決定するシステムへのURLを含むことができる。この例では、コンバージョン報告を生成する必要があるかどうかを決定するシステムは、デジタルコンポーネント配信システム150である。 Client device 110 fetches or otherwise receives conversion data (306). In some implementations, the content includes conversion pixels. A conversion pixel may contain a URL to a system that determines whether a conversion report should be generated, eg, whether a conversion has occurred and whether to record the conversion. In this example, the system that determines whether a conversion report should be generated is the digital component delivery system 150.

コンバージョンピクセルは、アプリケーション112に、データをデジタルコンポーネント配信システム150に送信させることができる。たとえば、コンバージョンピクセルは、コンテンツ(たとえば、ランディングページ)がクライアントデバイス110の登録テーブルに登録されているかどうかをアプリケーション112に決定させるコンピュータ可読命令を含むことができる。上記のように、アプリケーション112は、登録テーブルに、アプリケーション112によって提示されたデジタルコンポーネントのインプレッションデータを記録することができる。デジタルコンポーネントのインプレッションデータは、デジタルコンポーネントのランディングページのURLまたはドメインを含むことができる。アプリケーション112は、登録テーブルを検索して、ユーザがデジタルコンポーネントと相互作用することに応答して受信したコンテンツとして提示されたランディングページのURLを探すことができる。クリックツーインストールコンバージョンの場合、ランディングページのURLは、アプリストア/ウェブストアにリストされているアプリを指すディープリンクURLになる。クリックツーコールコンバージョン場合、URLはデジタルコンポーネントプロバイダの電話番号を符号化する。 Conversion pixels can cause application 112 to send data to digital component distribution system 150 . For example, a conversion pixel can include computer readable instructions that cause application 112 to determine whether content (eg, a landing page) is registered in a registration table of client device 110 . As noted above, application 112 can record impression data for digital components presented by application 112 in a registration table. Digital component impression data can include the URL or domain of the digital component's landing page. The application 112 can search the registration table for URLs of landing pages presented as content received in response to the user interacting with the digital component. For click-to-install conversions, the landing page URL will be a deep link URL pointing to the app listed in the app store/web store. For click-to-call conversions, the URL encodes the phone number of the digital component provider.

アプリケーション112が登録テーブル内のランディングページのURLを見つけると、クライアントデバイス110は、デジタルコンポーネント配信システム150(または、コンバージョン報告をいつトリガするかを決定する他のシステム)に、ランディングページのURLと一致するURLを含むデジタルコンポーネントのブラインド署名されたインプレッションデータを送信することができる。上記のように、ブラインド署名されたインプレッションデータは、ブラインド化されたインプレッションデータとブラインド化されたインプレッションデータのブラインド署名を含む。いくつかの実装形態では、アプリケーション112は、コンバージョンピクセルの要求のメッセージヘッダにブラインド署名されたインプレッションデータを含むことができる。 Once the application 112 finds the landing page URL in the registration table, the client device 110 notifies the digital component delivery system 150 (or other system that determines when to trigger conversion reporting) that the landing page URL matches. You may send blind-signed impression data for a digital component that includes a URL to As noted above, blind-signed impression data includes the blinded impression data and a blind signature of the blinded impression data. In some implementations, application 112 may include blind-signed impression data in the message header of the conversion pixel request.

デジタルコンポーネント配信システム150は、コンバージョン報告をトリガするかどうかを決定する(308)。デジタルコンポーネント配信システム150は、ブラインド署名されたインプレッションデータの受信、およびコンテンツ、たとえば、ランディングページとのユーザの相互作用に基づいて、コンバージョン報告をトリガするかどうかを決定することができる。たとえば、ユーザによって相互作用されるデジタルコンポーネントの発行者は、デジタルコンポーネントがクライアントデバイス110に提示された後、たとえば、ランディングページにおいて特定のユーザインターフェースコントロールを選択するなど、コンバージョンイベントを定義することができる。デジタルコンポーネント配信システム150は、コンバージョンイベントが発生したかどうかを決定するために、ランディングページをホストするウェブサーバ(または、クライアントデバイス110)と相互作用することができる。 Digital component distribution system 150 determines whether to trigger conversion reporting (308). The digital component delivery system 150 can determine whether to trigger a conversion report based on receipt of blind-signed impression data and user interaction with content, eg, landing pages. For example, a publisher of a digital component that is interacted with by a user can define a conversion event after the digital component has been presented to the client device 110, such as selecting a particular user interface control on a landing page. . Digital component distribution system 150 can interact with the web server (or client device 110) hosting the landing page to determine whether a conversion event has occurred.

コンバージョンイベントが発生した場合、デジタルコンポーネント配信システム150は、デジタルコンポーネントのコンバージョン報告をトリガすることを決定することができる。コンバージョンイベントが検出されない場合、デジタルコンポーネント配信システム150は、デジタルコンポーネントのコンバージョン報告をトリガしないことを決定することができる。 If a conversion event occurs, the digital component distribution system 150 may decide to trigger a conversion report for the digital component. If no conversion event is detected, the digital component distribution system 150 may decide not to trigger conversion reporting for the digital component.

デジタルコンポーネント配信システム150がデジタルコンポーネントのコンバージョン報告をトリガすることを決定した場合、デジタルコンポーネント配信システム150は、(i)すでにブラインド署名されたインプレッションデータと(ii)コンバージョンのためのコンバージョンデータとの組合せにブラインド署名する(310)。このコンバージョンデータは、コンバージョンのタイプを示す1つまたは複数のビットのセット、たとえば、コンバージョンが完了した後の後続のアクションである場合がある。たとえば、カートにアイテムを追加するコンバージョンイベントが発生した後にユーザがチェックアウトしたかどうかを指定するために、1ビットを使用することができる。この例では、チェックアウトが発生しなかった場合、ビットの値は0になり得、チェックアウトが発生した場合、ビットの値は1になり得る。他の実装形態では、コンバージョンデータは、コンバージョンの一部としてユーザが費やした/購入した金額を符号化することができる。 If digital component distribution system 150 determines to trigger conversion reporting for a digital component, digital component distribution system 150 combines (i) already blind-signed impression data and (ii) conversion data for conversion. Blindly sign (310). This conversion data may be a set of one or more bits that indicate the type of conversion, eg, subsequent actions after the conversion is completed. For example, one bit can be used to specify whether a user checked out after a conversion event to add an item to the cart occurred. In this example, the value of the bit may be 0 if no checkout occurred, and the value of 1 if checkout occurred. In other implementations, the conversion data can encode the amount of money spent/purchased by the user as part of the conversion.

デジタルコンポーネント配信システム150は、コンバージョンが発生したウェブサイト/アプリストア/ウェブストアの所有者に代わって、デジタルコンポーネント配信システム150のシークレットのブラインド署名鍵を使用して、ブラインド署名されたインプレッションデータとコンバージョンデータとの組合せにブラインド署名することができる。簡潔にするために、ブラインド署名されたインプレッションデータとコンバージョンデータのこのブラインド署名された組合せは、ブラインド署名された結合されたコンバージョンデータと呼ばれる。いくつかの実装形態では、コンバージョンデータは、ブラインド署名されたインプレッションデータの隠しビットとして含まれている。たとえば、ブラインド署名されたインプレッションデータはビットのセットの形式であってよく、コンバージョンデータは隠しビットによって指定することができる。デジタルコンポーネント配信システム150は、そのシークレットのブラインド署名鍵を使用して、ビットと隠しビットのこの組合せにブラインド署名することができる。この時点で、ブラインド化されたインプレッションデータは、不正検出サーバ170のブラインド署名鍵、およびデジタルコンポーネント配信システム150のブラインド署名鍵を使用して、二度ブラインド署名される(たとえば、二重署名されたインプレッションデータ)。コンバージョンデータは、デジタルコンポーネント配信システム150のブラインド署名鍵を使用して一度ブラインド署名される。 Digital Component Delivery System 150 uses Digital Component Delivery System 150's secret blind signing key to blindly sign impression data and conversions on behalf of the website/app store/webstore owner where the conversion occurred. Combinations with data can be blind signed. For simplicity, this blind-signed combination of blind-signed impression data and conversion data is referred to as blind-signed combined conversion data. In some implementations, the conversion data is included as hidden bits in the blind signed impression data. For example, blind-signed impression data can be in the form of a set of bits, and conversion data can be specified by hidden bits. Digital component distribution system 150 can blind sign this combination of bits and hidden bits using its secret blind signing key. At this point, the blinded impression data is blind signed twice (e.g., double-signed impression data). The conversion data is blind signed once using the digital component distribution system's 150 blind signing key.

いくつかの実装形態では、デジタルコンポーネント配信システム150は、VOPRFプロトコルを使用して、ブラインド署名されたインプレッションデータおよびコンバージョンデータにブラインド署名する。デジタルコンポーネント配信システム150は、他のエンティティがブラインド署名鍵にアクセスできないように、そのブラインド署名鍵を秘密裏に維持することができる。デジタルコンポーネント配信システム150のブラインド署名鍵は、ブラインド化されたインプレッションデータにブラインド署名するために使用された不正検出システム170のブラインド署名鍵とは異なる。 In some implementations, the digital component distribution system 150 blind-signs the blind-signed impression and conversion data using the VOPRF protocol. The digital component distribution system 150 can keep the blind signing key secret so that other entities cannot access the blind signing key. The digital component distribution system 150 blind signing key is different from the fraud detection system 170 blind signing key used to blind sign the blinded impression data.

デジタルコンポーネント配信システム150は、有効なコンバージョンの発生をクライアントデバイス110に通知する。いくつかの実装形態では、デジタルコンポーネント配信システム150は、クライアントデバイス110に、報告ドメインへのリダイレクトを送信する(312)。たとえば、リダイレクトは、報告システム190のドメインへのURLを含むことができる。リダイレクトはまた、ブラインド署名された結合されたコンバージョンデータを含むことができる。 Digital component distribution system 150 notifies client device 110 of the occurrence of a valid conversion. In some implementations, digital component distribution system 150 sends client device 110 a redirect to the reporting domain (312). For example, the redirect may include a URL to the reporting system 190 domain. Redirects can also include blind-signed combined conversion data.

いくつかの実装形態では、リダイレクトは、アプリケーション112(たとえば、インプレッションおよびコンバージョンを報告するネイティブアプリケーション、ブラウザ、またはオペレーティングシステム)によって検出され得る特定の形式を有する。この特定の形式は、報告ドメインのURLと、ブラインド署名された結合されたコンバージョンデータを含むメタデータとを含むことができる。メタデータは、報告ドメインのURLのクエリパラメータとして指定することができる。 In some implementations, redirects have a particular form that can be detected by applications 112 (eg, native applications, browsers, or operating systems that report impressions and conversions). This particular format may include the URL of the reporting domain and metadata containing the blind-signed combined conversion data. Metadata can be specified as a query parameter in the URL of the reporting domain.

クライアントデバイス110上で実行されているアプリケーション112は、リダイレクトを受信し、リダイレクトの特定の形式を検出する(314)。アプリケーション112は、特定の形式を有するリダイレクトを、コンバージョンを報告するための測定データ要素を生成するための特別な要求として扱うことができる。 Application 112 running on client device 110 receives the redirect and detects the particular form of redirect (314). Applications 112 may treat redirects with a particular format as special requests to generate measurement data elements for reporting conversions.

有効なコンバージョンの発生が通知されたことに応答して、たとえば、リダイレクトが特定の形式を有することを検出すると、アプリケーション112は、ブラインド署名された結合されたコンバージョンデータの署名を検証する(316)。たとえば、署名されたインプレッションデータとコンバージョンデータの組合せにブラインド署名するためにVOPRFプロトコルが使用された場合、ブラインド署名されたコンバージョンデータの署名を検証するために、VOPRFプロトコルを使用することができる。アプリケーション112は、同様に、コンバージョンデータのブラインドを解除することができる(318)。たとえば、アプリケーション112は、VOPRFプロトコルを使用してコンバージョンデータのブラインドを解除することができる。次いで、アプリケーション112は、たとえば、コンバージョンデータをクライアントデバイス110においてコンバージョン記録として記憶することによって、ブラインド化されていないコンバージョンデータを記録することができる(320)。アプリケーション112はまた、コンバージョン記録に、ブラインド署名された結合されたコンバージョンデータを記憶することができる。 In response to being notified that a valid conversion has occurred, for example, upon detecting that the redirect has a particular form, application 112 verifies the signature of the blind-signed combined conversion data (316). . For example, if the VOPRF protocol was used to blind-sign a combination of signed impression data and conversion data, the VOPRF protocol can be used to verify the signature of the blind-signed conversion data. Application 112 may similarly unblind conversion data (318). For example, application 112 may use the VOPRF protocol to unblind conversion data. Application 112 may then record unblinded conversion data (320), for example, by storing the conversion data as a conversion record on client device 110 . Application 112 may also store the blind-signed combined conversion data in the conversion record.

いくつかの実装形態では、アプリケーション112は、コンバージョンを報告し、コンバージョンの検出時に測定データ要素を送信するために測定データ要素を生成するのではなく、測定データ要素を送信する前にランダムな遅延を追加し、および/またはバッチにおいて測定データ要素を送信し得る。これにより、時間ベースの攻撃を防ぎ、ユーザのプライバシをさらに保護することができる。たとえば、報告を遅らせることによって、エンティティは、報告を傍受して、発生したばかりであることが知られているコンバージョンイベントに報告を関連付けることができなくなる。 In some implementations, rather than generating a measurement data element to report a conversion and transmit the measurement data element upon detection of a conversion, the application 112 adds a random delay before sending the measurement data element. It may add and/or transmit measurement data elements in batches. This prevents time-based attacks and further protects user privacy. For example, delaying a report prevents an entity from intercepting the report and associating it with a conversion event that is known to have just occurred.

図4は、測定データ要素を生成し、測定データ要素を集約システムに提供するための例示的なプロセス400を示す流れ図である。プロセス400は、たとえば、不正検出システム170およびデジタルコンポーネント配信システム150と相互作用するクライアントデバイス110および集約システム180によって実装することができる。プロセス400の動作はまた、非一時的コンピュータ可読媒体に記憶された命令として実装することができ、1つまたは複数のデータ処理装置による命令の実行により、1つまたは複数のデータ処理装置にプロセス400の動作を実行させることができる。 FIG. 4 is a flow diagram illustrating an exemplary process 400 for generating measurement data elements and providing measurement data elements to an aggregation system. Process 400 may be implemented, for example, by client device 110 and aggregation system 180 interacting with fraud detection system 170 and digital component distribution system 150 . The operations of process 400 may also be implemented as instructions stored on a non-transitory computer-readable medium such that execution of the instructions by one or more data processing devices causes process 400 to occur in one or more data processing devices. can be executed.

クライアントデバイス110は、コンバージョン記録を取得する(402)。上記のように、コンバージョン記録は、検出されたコンバージョンについて、ブラインド署名された結合されたコンバージョンデータを含むことができる。クライアントデバイス110上で実行されるアプリケーション112は、たとえば、コンバージョンを報告するためにランダムに選択された遅延が満了したとの決定に応答して、またはコンバージョンデータのバッチを送信するとの決定に応答して、コンバージョン記録を取得することができる。 The client device 110 obtains a conversion record (402). As noted above, a conversion record may include blind-signed combined conversion data for detected conversions. The application 112 running on the client device 110 responds, for example, to a determination that a randomly selected delay for reporting conversions has expired, or to a decision to send a batch of conversion data. to get conversion records.

クライアントデバイス110は、コンバージョン記録の少なくとも一部を暗号化する(404)。たとえば、アプリケーション112は、ブラインド署名された結合されたコンバージョンデータを暗号化することができる。いくつかの実装形態では、アプリケーション112は、しきい値暗号化を使用して、たとえば、(t、n)-しきい値暗号化スキームを使用して、ブラインド署名された結合されたコンバージョンデータを暗号化する。しきい値暗号化を使用することによって、受信者が同じインプレッションとコンバージョンのペアについて少なくともt個の測定データ要素を、たとえば少なくともt個のアプリケーション(たとえば、ウェブブラウザまたはネイティブアプリケーションまたはデバイス)から受信しない限り、暗号化されたデータを復号化できない。 The client device 110 encrypts (404) at least a portion of the conversion record. For example, application 112 may encrypt blind-signed combined conversion data. In some implementations, the application 112 uses threshold encryption, e.g., a (t, n)-threshold encryption scheme, to store the blind-signed combined conversion data. Encrypt. By using threshold encryption, the recipient does not receive at least t measurement data elements for the same impression-conversion pair, e.g., from at least t applications (e.g., web browsers or native applications or devices) As long as the encrypted data cannot be decrypted.

いくつかのしきい値暗号化技法では、ディーラは、この例ではアプリケーション112の各インスタンスとなる各プレーヤに、シークレットまたは鍵の共有を提供する。各クライアントデバイス110の各アプリケーション112にシークレットの共有を提供するのではなく、アプリケーション112の各インスタンスは、データを暗号化するグループ鍵を生成するように構成される。各アプリケーション112が同じグループ鍵を生成するために、各アプリケーション112は、同じシードを使用してグループ鍵を生成することができる。このシードは、インプレッションデータおよび/またはコンバージョンデータであってもよく、あるいはインプレッションデータおよび/またはコンバージョンデータに基づくこともできる。所与のインプレッションとコンバージョンのペアについてブラインド署名された結合されたコンバージョンデータは、同じエンティティ(たとえば、不正検出システム170およびデジタルコンポーネント配信システム150)が同じプロトコルおよびシークレット鍵を使用してアプリケーションの各インスタンスのデータにブラインド署名すると仮定すると、同じになり、また、アプリケーション112の各インスタンスは、同じプロトコルを使用してデータをブラインド化する。 In some threshold encryption techniques, the dealer provides each player, which in this example is each instance of application 112, with a shared secret or key. Rather than providing each application 112 on each client device 110 with a shared secret, each instance of application 112 is configured to generate a group key that encrypts data. In order for each application 112 to generate the same group key, each application 112 can use the same seed to generate the group key. This seed may be impression data and/or conversion data or may be based on impression data and/or conversion data. The combined, blind-signed conversion data for a given impression-conversion pair must be signed by the same entity (e.g., fraud detection system 170 and digital component delivery system 150) to each instance of the application using the same protocol and secret key. are the same, and each instance of application 112 blind-signs the data using the same protocol.

一例では、シードは、ブラインド署名された結合されたコンバージョンデータ、またはブラインド署名された結合されたコンバージョンデータと、報告URLまたは報告システム190などの追加データとの組合せであり得る。別の例では、シードは、報告システム190の公開鍵を使用してブラインド署名された結合されたコンバージョンデータを暗号化することによって生成することができ、グループ鍵が再生成された後でも、報告システム190のみがインプレッションデータおよびコンバージョンデータを復号化することができる。たとえば、シードは、暗号化されたブラインド署名された結合されたコンバージョンデータと、報告システム190の公開鍵を使用して暗号化された報告システム190の報告URLの組合せであり得る。 In one example, the seed may be blind-signed combined conversion data or a combination of blind-signed combined conversion data and additional data such as a reporting URL or reporting system 190 . In another example, the seed may be generated by encrypting the blind-signed combined conversion data using the reporting system's 190 public key so that even after the group key is regenerated, the reporting system's 190 Only system 190 can decode impression and conversion data. For example, the seed may be a combination of the encrypted blind-signed combined conversion data and the reporting system's 190 reporting URL encrypted using the reporting system's 190 public key.

インプレッションデータおよびコンバージョンデータを暗号化するために、異なるタイプの(t、n)しきい値暗号化スキームを使用することができる。たとえば、シークレットの共有(たとえば、インプレッションデータおよびコンバージョンデータ)を配信し、少なくともt個の共有が受信されたときにシークレットを回復するために、多項式または平面を使用する(t、n)-しきい値暗号化スキームを使用することができる。特定の例では、しきい値暗号化スキームは、グループ鍵が平面を備え、測定データが、各平面が交差する点にある平面ベースの暗号化スキーム、たとえばBlakleyのスキームであり得る。他の例では、しきい値暗号化スキームは、中国の剰余定理、プロアクティブなシークレット共有、検証可能なシークレット共有(VSS)、または他の適切なしきい値暗号化技法を使用することができる。 Different types of (t, n) threshold encryption schemes can be used to encrypt impression and conversion data. For example, use a polynomial or plane (t, n)-threshold to distribute secret shares (e.g., impression and conversion data) and recover secrets when at least t shares are received. Value encryption schemes can be used. In a particular example, the threshold encryption scheme may be a plane-based encryption scheme in which the group key comprises planes and the measured data is at the intersection of each plane, eg, Blakley's scheme. In other examples, the threshold encryption scheme may use the Chinese remainder theorem, proactive secret sharing, verifiable secret sharing (VSS), or other suitable threshold encryption techniques.

例示的な多項式手法では、アプリケーション112がコンバージョン報告にアクセスするとき、アプリケーション112は、上記のシードを使用して、グループ識別子(たとえば、タグ)およびシード値を生成することができる。たとえば、アプリケーション112は、グループ識別子を生成するために、第1の鍵導出関数(たとえば、一方向暗号化ハッシュ関数)およびシードを使用することができる。このグループ識別子は、インプレッションとコンバージョンのペアを一意に識別する乱数にすることができる。このインプレッションとコンバージョンのペアを報告する各アプリケーション112は、同じ鍵導出関数と同じシードを使用するため、グループ識別子は、インプレッションとコンバージョンのペアを報告する各アプリケーション112で同じになる。以下で説明するように、グループ識別子は、データを集約し、コンバージョンの量を決定するために使用される。 In an exemplary polynomial approach, when application 112 accesses the conversion report, application 112 can use the above seed to generate group identifiers (eg, tags) and seed values. For example, application 112 can use a first key derivation function (eg, a one-way cryptographic hash function) and a seed to generate a group identifier. This group identifier can be a random number that uniquely identifies a pair of impressions and conversions. Since each application 112 reporting this impression-conversion pair uses the same key derivation function and the same seed, the group identifier will be the same for each application 112 reporting the impression-conversion pair. Group identifiers are used to aggregate data and determine the amount of conversions, as described below.

アプリケーション112は、擬似乱数発生器の初期値を生成するために、第2の鍵導出関数(たとえば、一方向暗号化ハッシュ関数)およびシードを使用することができる。次いで、アプリケーション112は、次数t-1の多項式関数の係数を生成するために、初期化された擬似乱数発生器を使用することができる。この例では、多項式関数がグループ鍵として機能する。多項式関数は、A0+A1X1+A2X2+、…AtXtの形式にすることができ、tは最小値、たとえば、しきい値、データの復号化に必要なグループメンバー鍵の数、XiはXのI乗の結果であり、Aiは生成された係数である。 Application 112 may use a second key derivation function (eg, a one-way cryptographic hash function) and a seed to generate an initial value for the pseudorandom number generator. Application 112 can then use the initialized pseudo-random number generator to generate the coefficients of the polynomial function of order t-1. In this example, a polynomial function serves as the group key. The polynomial function can be of the form A 0 +A 1 X 1 +A 2 X 2 +, …A t X t , where t is the minimum value, e.g. the threshold, the number of groups required to decode the data The number of member keys, X i , is the result of raising X to the I power, and A i is the generated modulus.

アプリケーション112の各インスタンスは、シークレットの多項式関数上の特定の点を選択するように構成することができる。たとえば、アプリケーション112の各インスタンスは、シークレットの多項式関数上の異なる点を選択するように構成することができる。特定の例では、この点はX=0にあり、シークレットはX=0のY値、つまりA0の値になる。他の点も使用することができる。一実装形態では、アプリケーション112は、インプレッション時にランダムなノンスを選択し、不正検出システム170に、ブラインド署名するか、公開鍵署名を使用して公開検証可能性のためにノンスに署名するように要求し、次いで、署名されたノンスを点のX値として使用することができる。集約システム180は、X値が不正検出システム170によって適切に署名されていないすべての点を無視する。 Each instance of application 112 can be configured to select a particular point on the secret's polynomial function. For example, each instance of application 112 can be configured to select a different point on the secret's polynomial function. In our particular example, this point is at X=0 and the secret is the Y value at X=0, the value of A 0 . Other points can also be used. In one implementation, the application 112 selects a random nonce at the time of the impression and asks the fraud detection system 170 to either blind sign or sign the nonce for public verifiability using public key signatures. , and then the signed nonce can be used as the point's X value. Aggregation system 180 ignores all points whose X values are not properly signed by fraud detection system 170 .

アプリケーション112は、集約システム180に報告するためのシークレットの共有として多項式関数上の点を選択することができる。シークレットのこの共有は、グループメンバー鍵である。アプリケーション112の各インスタンスが、t個のグループメンバー鍵からシークレットを決定できるように異なる点を選択できるようにするために、アプリケーション112の各インスタンスは、アプリケーション112のインスタンス、またはアプリケーション112のインスタンスが実行されているクライアントデバイス110に関連するデータを使用してその点を選択するように構成することができる。たとえば、アプリケーション112は、アプリケーション112のインスタンスを一意に識別する一意のアプリケーション識別子またはクライアントデバイス110を一意に識別する一意のデバイス識別子を使用して、多項式関数上のその点を選択することができる。特定の例では、アプリケーション112は、第3の鍵導出関数(たとえば、一方向暗号化ハッシュ関数)、一意のアプリケーション識別子または一意のデバイス識別子、および多項式関数上の点を選択するためのシードを使用することができる。任意で、アプリケーション112は、インプレッションおよび/またはコンバージョンが本物であることの検証時に、選択された点のX座標に署名するように(コンバージョンが行われるデジタルコンポーネントプロバイダに代わって)不正検出システム170またはデジタルコンポーネント配信システムを要求することができ、次いで、シークレットの共有を計算するために、署名されたX座標をX座標として選択する。 Application 112 may select a point on the polynomial function as a shared secret to report to aggregation system 180 . This sharing of secrets is the group membership key. To allow each instance of application 112 to choose a different point to be able to determine the secret from the t group member keys, each instance of application 112 is either an instance of application 112 or an instance of application 112 is running The point may be configured to select using data associated with the client device 110 being viewed. For example, application 112 may use a unique application identifier that uniquely identifies an instance of application 112 or a unique device identifier that uniquely identifies client device 110 to select that point on the polynomial function. In a particular example, application 112 uses a third key derivation function (e.g., a one-way cryptographic hash function), a unique application identifier or unique device identifier, and a seed to select points on the polynomial function. can do. Optionally, the application 112, when verifying that an impression and/or conversion is genuine, will sign the X coordinate of the selected point (on behalf of the digital component provider where the conversion is made) to the fraud detection system 170 or A digital component distribution system can be requested and then choose the signed X coordinate as the X coordinate to compute the secret share.

クライアントデバイス110は、測定データ要素を生成し、測定データ要素を集約システムに送信する(406)。いくつかの実装形態では、測定データ要素は、グループメンバー鍵、(たとえば、アプリケーション112によって選択された多項式上の点の座標)およびグループ識別子(たとえば、タグ)を含む。たとえば、グループ識別子とグループメンバー鍵は、キー/値のペアを表すことができる。 The client device 110 generates measurement data elements and transmits the measurement data elements to the aggregation system (406). In some implementations, measurement data elements include group member keys (eg, coordinates of points on the polynomial selected by application 112) and group identifiers (eg, tags). For example, a group identifier and a group member key can represent key/value pairs.

集約システム180は、測定データ要素を受信し、測定データ要素のデータベースを更新する(408)。たとえば、集約システム180は、受信した各測定データ要素をデータベースあるいは別のデータ構造またはデータストレージデバイスに記憶することができる。集約システム180はまた、グループ識別子のために受信されたグループメンバー鍵の数を更新することができる。 Aggregation system 180 receives the measurement data elements and updates the measurement data element database (408). For example, aggregation system 180 may store each received measurement data element in a database or another data structure or data storage device. Aggregation system 180 may also update the number of group member keys received for the group identifier.

集約システム180は、暗号化されたテキストを復号化するために十分なデータが受信されたかどうかを決定する(410)。上記のように、グループ鍵を再生成し、インプレッションデータおよびコンバージョンデータを復号化するためには、少なくともt個の個別のグループメンバー鍵を受信する必要がある。集約システム180は、グループ識別子のグループメンバー鍵の数をしきい値tと比較することができる。 Aggregation system 180 determines whether sufficient data has been received to decrypt the encrypted text (410). As noted above, it is necessary to receive at least t individual group member keys in order to regenerate the group key and decrypt impression and conversion data. Aggregation system 180 may compare the number of group member keys for a group identifier with a threshold t.

グループ識別子を有するt個未満の測定データ要素が受信された場合、集約システム180は、同じグループ識別子を有する追加の測定データ要素を待ち続けることができる。同じグループ識別子を有する少なくともt個の測定データ要素が受信された場合、集約システム180は、グループメンバー鍵をロードする(412)。 If less than t measurement data elements with a group identifier have been received, aggregation system 180 can continue to wait for additional measurement data elements with the same group identifier. Aggregation system 180 loads a group member key if at least t measurement data elements with the same group identifier are received (412).

次いで、集約システム180は、シークレットを復号化することができる(414)。上記のように、シークレットは、ブラインド署名された結合されたコンバージョンデータ、ブラインド署名された結合されたコンバージョンデータと追加のデータの組合せ(たとえば、報告システム190の報告URL)、または暗号化されたブラインド署名された結合されたコンバージョンデータの組合せ(報告システムの公開鍵を使用する)および報告システム190の報告URLであり得る。シークレットを復号化するために、集約システム180は、グループメンバー鍵を使用してグループ鍵またはグループ鍵の表現を再生成することができる。たとえば、多項式関数手法がシークレットを暗号化するために使用される場合、集約システム180は、グループ識別子を有する少なくともt個の測定データ要素のグループメンバー鍵によって定義される点を使用して多項式関数を再生成することができる。集約システム190は、多項式関数を再生成するために、これらの点の間を補間することができる。次いで、集約システム190は、値がシークレットである特定の点を識別することができる。 Aggregation system 180 may then decrypt the secret (414). As noted above, the secret can be the blind-signed combined conversion data, the combination of the blind-signed combined conversion data and additional data (e.g., the reporting system 190 reporting URL), or the encrypted blind It can be a signed combined conversion data combination (using the reporting system's public key) and the reporting URL of the reporting system 190 . To decrypt the secret, aggregation system 180 can use the group member key to regenerate the group key or representation of the group key. For example, if a polynomial function technique is used to encrypt the secret, aggregation system 180 uses the points defined by the group member keys of at least t measured data elements with group identifiers to calculate the polynomial function. Can be regenerated. Aggregation system 190 can interpolate between these points to regenerate the polynomial function. Aggregation system 190 can then identify specific points whose values are secret.

集約システム180は、コンバージョンを報告システム190に報告する(416)。集約システム180は、インプレッションデータおよびコンバージョンデータ(まだ暗号化されている可能性がある)およびコンバージョン数を含むデータを生成し、報告システムに送信することができる。集約システム180は、コンバージョンの数として、インプレッションとコンバージョンのペアに対応するグループ識別子を含む測定データ要素において受信された個別のグループメンバー鍵の数を決定することができる。すなわち、コンバージョンの数は、グループ識別子を含む個別の測定データ要素の数である。 Aggregation system 180 reports the conversions to reporting system 190 (416). Aggregation system 180 may generate and send data to reporting systems, including impression and conversion data (which may still be encrypted) and conversion numbers. Aggregation system 180 can determine the number of distinct group member keys received in the measurement data element containing the group identifier corresponding to the impression-conversion pair as the number of conversions. That is, the number of conversions is the number of distinct measurement data elements containing group identifiers.

報告されたデータにおけるインプレッションデータおよびコンバージョンデータは、ブラインド署名された結合されたコンバージョンデータ、または報告システム190の公開鍵を使用して暗号化されたこのデータであり得る。たとえば、上記のように、シークレットは、ブラインド署名された結合されたコンバージョンデータと、報告システム190の報告URLとの組合せであり得る。集約システム180は、シークレットを取得した後、報告URLにアクセスし、シークレットの残りの情報を、コンバージョンの量とともに報告システム190に送信することができる。 The impression data and conversion data in the reported data can be blind signed combined conversion data or this data encrypted using the reporting system 190 public key. For example, as described above, the secret can be the combination of the blind-signed combined conversion data and the reporting URL of reporting system 190 . After obtaining the secret, the aggregation system 180 can access the reporting URL and send the rest of the information in the secret to the reporting system 190 along with the amount of conversions.

報告システム190は、暗号化された報告データを生成するために使用された公開鍵に対応する秘密鍵を使用して、暗号化されたブラインド署名された結合されたコンバージョンデータ(暗号化されている場合)を復号化する(418)。報告システム190は、任意で、インプレッションデータおよびコンバージョンデータに関連付けられる署名を検証することができる。ブラインド署名にVOPRFを採用するいくつかの実装形態では、署名検証は、報告システム190が、以前にインプレッションデータにブラインド署名した不正検出システム170に連絡することを要求する。 Reporting system 190 uses the private key corresponding to the public key used to generate the encrypted reporting data to generate the encrypted blind-signed combined conversion data (encrypted case) is decrypted (418). Reporting system 190 may optionally verify signatures associated with impression data and conversion data. In some implementations employing VOPRF for blind signing, signature verification requires reporting system 190 to contact fraud detection system 170 that previously blind signed impression data.

報告システム190は、不正検出システムによって生成されたインプレッションデータの署名を検証する(420)。たとえば、報告システム190は、不正検出システム170によって生成されたブラインド化されたインプレッションデータのブラインド署名を検証する要求とともに、ブラインド署名された結合されたコンバージョンデータを不正検出システム170に送信することができる。不正検出システム170は、署名を検証し、署名が有効であるかどうかを指定するデータで報告システム190に応答することを試みることができる。 The reporting system 190 verifies the signature of the impression data generated by the fraud detection system (420). For example, reporting system 190 may send blind-signed combined conversion data to fraud detection system 170 along with a request to verify the blind signature of the blinded impression data generated by fraud detection system 170. . Fraud detection system 170 may attempt to verify the signature and respond to reporting system 190 with data specifying whether the signature is valid.

同様に、報告システム190は、ブラインド化されたインプレッションデータとコンバージョンデータの組合せの署名を検証することができる(422)。たとえば、報告システムは、ブラインド化されたインプレッションデータとデジタルコンポーネント配信システム150によって生成されたコンバージョンデータとの組合せのブラインド署名を検証する要求とともに、ブラインド署名された結合されたコンバージョンデータをデジタルコンポーネント配信システム150に送信することができる。デジタルコンポーネント配信システム150は、署名を検証し、署名が有効であるかどうかを指定するデータで報告システム190に応答することを試みることができる。 Similarly, the reporting system 190 can verify the signature of the combination of blinded impression data and conversion data (422). For example, the reporting system may send the combined blind-signed conversion data to the digital component distribution system along with a request to verify the blind signature of the combination of the blinded impression data and the conversion data generated by the digital component distribution system 150 . 150 can be sent. Digital component distribution system 150 may attempt to verify the signature and respond to reporting system 190 with data specifying whether the signature is valid.

両方の署名が有効である場合、報告システムは、インプレッションとコンバージョンのペアのコンバージョン数を指定するデータを記憶することができる(424)。報告システム190は、デジタルコンポーネントプロバイダ160に、暗号化を可能にするために十分な数(たとえば、少なくともt個)のコンバージョンが発生した後に、デジタルコンポーネントプロバイダ160によって発行されたデジタルコンポーネントの各インプレッションとコンバージョンのペアのコンバージョン数を指定するデータを提供することができる。 If both signatures are valid, the reporting system can store data specifying the number of conversions for the impression-conversion pair (424). Reporting system 190 provides digital component provider 160 with each impression of a digital component issued by digital component provider 160 after a sufficient number (eg, at least t) of conversions has occurred to enable encryption. You can provide data specifying the number of conversions for a conversion pair.

所与のインプレッションとコンバージョンのペアについて少なくともt個の測定データ要素を受信した後、集約システム180は、以前に受信された測定データ要素のデータを使用して、同様の方法で、受信され、インプレッションとコンバージョンのペアのグループ識別子を含む任意の追加の測定データ要素を復号化することができる。このようにして、集約システム180は、インプレッションとコンバージョンのペアのコンバージョン数を更新し続けることができる。 After receiving at least t measurement data elements for a given impression-conversion pair, aggregation system 180 uses data from previously received measurement data elements and, in a similar manner, aggregates the received impressions Any additional measurement data element can be decoded, including group identifiers for pairs of conversions and conversions. In this way, the aggregation system 180 can keep the conversion counts of impression-conversion pairs updated.

いくつかの実装形態では、コンバージョン数は、複数の次元ごとに決定される。次元は、様々な日付または日付範囲、様々な場所などであり得る。たとえば、デジタルコンポーネントプロバイダ160は、その年の各月のデジタルコンポーネントのコンバージョン数を知りたい場合がある。次元ごとに個別の測定値を設定するために、(t、n)-暗号化スキームにおけるシークレットは、そのコンバージョンの次元の値に基づくことができる。たとえば、多項式技法が使用される場合、シードとタグ(たとえば、グループ識別子)の両方を、次元の値と組み合わせた上記のシード/タグのいずれかにすることができる。特定の例では、シードは、ブラインド署名された結合されたコンバージョンデータと、暗号ハッシュまたは暗号化関数によって任意でコンバージョンされた次元の値との組合せであり得る。このようにして、アプリケーションは、各次元の値ごとに異なる多項式関数と異なるグループ識別子を生成する。 In some implementations, a conversion number is determined for each of multiple dimensions. Dimensions can be different dates or date ranges, different locations, and so on. For example, the digital component provider 160 may want to know the number of digital component conversions for each month of the year. The secret in the (t,n)-encryption scheme can be based on the dimension value of the conversion to set a separate measure for each dimension. For example, if a polynomial technique is used, both the seed and the tag (eg, group identifier) can be any of the seed/tags above combined with the dimension value. In a particular example, a seed may be a combination of blind-signed combined conversion data and dimension values optionally converted by a cryptographic hash or encryption function. In this way, the application generates a different polynomial function and a different group identifier for each dimension value.

コンバージョンの数はまた、次元の組合せについて決定することができる。この例では、シードは、各次元の値と組み合わせた上記のシードのいずれかにすることができる。特定の例では、シードは、ブラインド署名された結合されたコンバージョンデータと各次元の値の組合せである可能性がある。 The number of conversions can also be determined for combinations of dimensions. In this example, the seed can be any of the above seeds combined with each dimension value. In a particular example, the seed may be a combination of the blind-signed combined conversion data and the value of each dimension.

上記の技法は、たとえば、組み合わされたコンバージョンデータのプレーンテキスト値を計算した後にアプリケーション112が危険にさらされた場合に、シビル攻撃を防ぐためにさらに適合させることができる。それが危険にさらされた場合、アプリケーション112は、プレーンテキスト値を任意の数の他のアプリケーション112と共有し得、それらはすべて、同じプレーンテキスト値を同じ集約システム180に報告することができ、これは、(t、n)-しきい値暗号化スキームのk-匿名性保護を無効にする。シビル攻撃を防ぐために、正当なインプレッション/コンバージョンの一意性は、図5に示されるプロセスを使用してサポートすることができる。 The above techniques can be further adapted to prevent Sybil attacks, for example, if the application 112 is compromised after computing the plaintext value of the combined conversion data. If it is compromised, the application 112 can share the plaintext value with any number of other applications 112, all of which can report the same plaintext value to the same aggregation system 180, This defeats the k-anonymity protection of the (t, n)-threshold encryption scheme. To prevent Sybil attacks, uniqueness of legitimate impressions/conversions can be supported using the process shown in Figure 5.

図5は、コンバージョンデータを報告するための別の例示的なプロセス500を示す流れ図である。プロセス500は、たとえば、図1のクライアントデバイス110などのクライアントデバイスによって実装することができる。プロセス500の動作はまた、非一時的コンピュータ可読媒体に記憶された命令として実装することができ、1つまたは複数のデータ処理装置による命令の実行により、1つまたは複数のデータ処理装置にプロセス500の動作を実行させることができる。 FIG. 5 is a flow diagram illustrating another exemplary process 500 for reporting conversion data. Process 500 may be implemented by a client device, such as client device 110 in FIG. 1, for example. The operations of process 500 may also be implemented as instructions stored on a non-transitory computer-readable medium such that execution of the instructions by one or more data processing devices causes process 500 to occur in one or more data processing devices. can be executed.

ブラインド署名されたインプレッションデータが取得される(502)。上記のように、デジタルコンポーネントがコンテンツ、たとえばウェブページまたはアプリケーションコンテンツとともに提示される場合、コンテンツを提示するアプリケーションは、デジタルコンポーネントのインプレッションのインプレッションデータを記憶することができる。デジタルコンポーネントの特定の提示のインプレッションデータは、デジタルコンポーネントのランディングページ(たとえば、デジタルコンポーネントによってリンクされているページ)のURLまたはドメイン、デジタルコンポーネントの1つまたは複数の識別子、インプレッションに関連付けられるイベントレベルのデータ、インプレッションデータをクライアントデバイスから削除するタイミングを指定する有効期限、および/あるいはデジタルコンポーネントのコンバージョン報告が送信される報告URLまたはドメインを含むことができる。 Blind-signed impression data is obtained (502). As noted above, when a digital component is presented with content, such as a web page or application content, the application presenting the content can store impression data for impressions of the digital component. Impression Data for a particular presentation of a Digital Component may include the URL or domain of the Digital Component's landing page (e.g., the page linked by the Digital Component), one or more identifiers for the Digital Component, and the event-level data associated with the impression. Data, an expiration date that specifies when impression data is removed from the client device, and/or a reporting URL or domain to which conversion reports for digital components are sent.

インプレッションデータは、ブラインド化されて、不正検出信号とともに図1の不正検出システム170などの別のデバイスまたはシステムに送信することができる。この例では、アプリケーション112は、インプレッションデータをそれ自体でブラインド化するのではなく、報告システム、たとえば図1の報告システム190からフェッチされた公開鍵を使用して、インプレッションデータとクリックされた値(たとえば、ユーザがクリックしたか、そうでなければデジタルコンポーネントと相互作用したかどうか)の組合せを暗号化することができる。次いで、アプリケーション112は、暗号化結果をブラインド化し、ブラインド署名のために、ブラインド暗号化結果を不正検出システム170に送信する。不正検出システム170は、不正検出信号に基づいてインプレッションが有効であるかどうかを決定することができ、有効である場合、不正検出システム170によって秘密裏に維持される第1のインプレッションブラインド署名鍵を使用してブラインド化されたインプレッションデータにブラインド署名する。不正検出システム170は、ブラインド署名されたインプレッションデータをクライアントデバイス110に返すことができる。 The impression data can be blinded and sent along with the fraud detection signal to another device or system, such as the fraud detection system 170 of FIG. In this example, rather than blinding the impression data itself, application 112 uses a public key fetched from a reporting system, for example, reporting system 190 in FIG. For example, whether the user clicked or otherwise interacted with the digital component) combination can be encrypted. Application 112 then blinds the encryption result and sends the blind encryption result to fraud detection system 170 for blind signing. The fraud detection system 170 can determine whether the impression is valid based on the fraud detection signal, and if valid, the first impression blind signing key secretly maintained by the fraud detection system 170. Blind-sign the blinded impression data using Fraud detection system 170 may return blind-signed impression data to client device 110 .

ブラインド署名されたインプレッションデータおよびノンスデータが取得される(504)。クライアントデバイス110上で実行されるアプリケーション112は、十分なエントロピ、たとえば、32バイトの乱数を有するノンスをランダムに作成することができる。次に、クライアントデバイス110は、ブラインド化されたインプレッションデータ、クリックされた値、およびノンスの組合せを使用して、ハッシュベースのメッセージ認証コード(HMAC)、たとえば、HMACSHA256メッセージコードを生成することができる。アプリケーション112は、インプレッションノンスメッセージコードにブラインド署名する要求とともに、このインプレッションノンスメッセージコードを不正検出システム170に送信することができる。上記のように、インプレッションが有効である場合、不正検出サーバは、不正検出システム170によって秘密裏に維持される第2のインプレッションブラインド署名鍵を使用して、インプレッションノンスメッセージコードにブラインド署名することができる。不正検出システム170の第2のインプレッションのブラインド署名鍵は、不正検出システム170の第1のブラインド署名鍵とは異なり、インプレッションの署名を取得することができず、それがノンスの署名であると主張し、逆もまた同様である。不正検出システム170は、ブラインド署名されたインプレッションノンスメッセージコードをクライアントデバイス110に返すことができる。 Blind-signed impression data and nonce data are obtained (504). Application 112 running on client device 110 can randomly create a nonce with sufficient entropy, eg, 32 bytes of random numbers. Client device 110 may then use the combination of blinded impression data, clicked value, and nonce to generate a hash-based message authentication code (HMAC), e.g., HMAC SHA256 message code. can. Application 112 may send the impression nonce message code to fraud detection system 170 along with a request to blind sign the impression nonce message code. As noted above, if the impression is valid, the fraud detection server may blind sign the impression nonce message code using a second impression blind signing key that is secretly maintained by the fraud detection system 170. can. The second impression blind signing key of the fraud detection system 170 is different from the first blind signing key of the fraud detection system 170 in that it cannot obtain the signature of the impression and claims that it is a nonce signature. and vice versa. Fraud detection system 170 may return a blind signed impression nonce message code to client device 110 .

ブラインド署名された結合されたコンバージョンデータが取得される(506)。コンバージョンが発生すると、コンバージョンが発生したと決定したシステム、たとえば、図1のデジタルコンポーネント配信システム150は、コンバージョンデータをアプリケーション112に提供することができる。アプリケーション112は、コンバージョンデータとHMACコード、たとえば、インプレッションデータのHMAC SHA256メッセージコードとの組合せを暗号化することによって、ブラインド化されたコンバージョンデータおよびインプレッションデータを生成することができる。たとえば、クライアントデバイスは、このインプレッションメッセージコードとコンバージョンデータを組み合わせ、図1の報告システム190からフェッチされた公開鍵を使用してこの組合せを暗号化することができる。 Blind signed combined conversion data is obtained (506). When a conversion occurs, the system that determined that the conversion occurred, eg, digital component distribution system 150 of FIG. 1, can provide the conversion data to application 112 . Application 112 may generate blinded conversion and impression data by encrypting a combination of conversion data and HMAC code, eg, the impression data's HMAC SHA256 message code. For example, the client device can combine this impression message code with the conversion data and encrypt the combination using the public key fetched from reporting system 190 of FIG.

次いで、アプリケーション112は、このデータの組合せにブラインド署名する要求とともに、ブラインド署名されたインプレッションデータ、ならびにブラインド化されたコンバージョンデータおよびインプレッションデータをデジタルコンポーネント配信システム150に送信することができる。デジタルコンポーネント配信システム150は、デジタルコンポーネント配信システム150の第1のコンバージョンブラインド署名鍵を使用して、ブラインド署名されたインプレッションデータとブラインド化されたコンバージョンデータおよびインプレッションデータとの組合せにブラインド署名することができる。このブラインド署名されたデータは、この例ではブラインド署名された結合されたコンバージョンデータである。 Application 112 can then send the blind-signed impression data and the blinded conversion and impression data to digital component distribution system 150 along with a request to blind-sign this combination of data. The digital component distribution system 150 may blind sign the blind signed impression data and the combination of the blind conversion data and the impression data using the first conversion blind signing key of the digital component distribution system 150. can. This blind signed data is the combined blind signed conversion data in this example.

ブラインド署名されたコンバージョンデータおよびノンスデータが取得される(508)。このノンスは、ブラインド署名されたインプレッションデータおよびノンスデータを取得するために使用されるノンスと同じである可能性がある。アプリケーション112は、ブラインド化されたコンバージョンデータとノンスとの組合せを使用して、HMAC、たとえば、HMACSHA256メッセージコードを生成することができる。クライアントデバイス110は、コンバージョンノンスメッセージコードにブラインド署名する要求とともに、このコンバージョンノンスメッセージコードをデジタルコンポーネント配信システム150に送信することができる。上記のように、コンバージョンが有効である場合、不正検出サーバは、デジタルコンポーネント配信システム150によって秘密裏に維持される第2のコンバージョンブラインド署名鍵を使用して、コンバージョンノンスメッセージコードにブラインド署名することができる。デジタルコンポーネント配信システム150の第2のコンバージョンブラインド署名鍵は、デジタルコンポーネント配信システム150の第1のコンバージョンブラインド署名鍵とは異なり、コンバージョンの署名を取得することができず、それがノンスの署名であると主張する。デジタルコンポーネント配信システム150は、ブラインド署名されたコンバージョンノンスメッセージコードをクライアントデバイス110に返すことができる。 Blind-signed conversion data and nonce data are obtained (508). This nonce may be the same nonce used to obtain blind-signed impression data and nonce data. Application 112 may use the combination of blinded conversion data and nonce to generate an HMAC, eg, HMAC SHA256 message code. Client device 110 can send the conversion nonce message code to digital component distribution system 150 along with a request to blind sign the conversion nonce message code. As above, if the conversion is valid, the fraud detection server blind signs the conversion nonce message code using a second conversion blind signing key secretly maintained by the digital component distribution system 150. can be done. Unlike the first conversion blind signature key of the digital component distribution system 150, the second conversion blind signature key of the digital component distribution system 150 cannot obtain a conversion signature, which is a nonce signature. claim. Digital component delivery system 150 may return a blind-signed conversion nonce message code to client device 110 .

測定データ要素が生成される(510)。この例では、アプリケーション112は、シークレット密の共有を表すグループメンバー鍵(たとえば、インプレッションデータおよびコンバージョンデータ)、グループ識別子、および一意の鍵を含む測定データ要素を生成することができる。 A measurement data element is generated (510). In this example, application 112 can generate a measurement data element that includes a group member key (eg, impression data and conversion data) representing secret sharing, a group identifier, and a unique key.

アプリケーション112は、ブラインド署名されたインプレッションノンスメッセージコード、ブラインド署名されたコンバージョンノンスメッセージコード、およびノンスを含む結合されたメッセージを生成することによって、一意の鍵を生成することができる。結合されたメッセージの各部分は、結合されたメッセージのそれぞれのフィールドに含めることができる。次いで、アプリケーション112は、ブラインド署名された結合されたコンバージョンデータを暗号化鍵として使用して結合されたメッセージを暗号化することによって、一意の鍵を生成することができる。 Application 112 may generate a unique key by generating a combined message that includes a blind-signed impression nonce message code, a blind-signed conversion nonce message code, and a nonce. Each part of the combined message can be included in a respective field of the combined message. Application 112 can then generate a unique key by encrypting the combined message using the blind-signed combined conversion data as an encryption key.

アプリケーション112は、図4のプロセス400を使用してグループメンバー鍵が生成される方法と同様に、しきい値暗号化を使用してグループメンバー鍵を生成することができる。たとえば、グループメンバー鍵は、多項式技法を使用して生成することができ、シードは、ブラインド署名された結合されたコンバージョンデータ、ブラインド署名された結合されたコンバージョンデータと追加データ(たとえば、報告システム190の報告URL)との組合せ、あるいは、暗号化されたブラインド署名された結合されたコンバージョンデータ(報告システムの公開鍵を使用)と報告システム190の報告URLとの組合せであり得る。 Application 112 may generate group member keys using threshold encryption, similar to how group member keys are generated using process 400 of FIG. For example, the group member key can be generated using a polynomial technique, the seed being the combined blind-signed conversion data, the combined blind-signed conversion data and additional data (e.g., reporting system 190 ), or encrypted, blind-signed combined conversion data (using the reporting system's public key) and the reporting URL of the reporting system 190 .

アプリケーション112はまた、図4のプロセス400を使用してグループ識別子が生成される方法と同様に、グループ識別子を生成することができる。たとえば、アプリケーション112は、グループ識別子を生成するために、鍵導出関数(たとえば、一方向暗号化ハッシュ関数)およびシードを使用することができる。 Application 112 may also generate group identifiers, similar to how group identifiers are generated using process 400 of FIG. For example, application 112 can use a key derivation function (eg, a one-way cryptographic hash function) and a seed to generate a group identifier.

アプリケーション112は、グループメンバー鍵、一意の鍵、およびグループ識別子を含む測定データ要素を送信することができる(512)。たとえば、アプリケーション112は、測定データ要素を、図1の集約システム180などの集約システムに送信することができる。アプリケーションは、時間ベースの攻撃を防ぐために、コンバージョンが検出された後、ランダムに選択された(または、疑似ランダムな)期間が経過した後に測定データ要素を送信することができる。 Application 112 may send measurement data elements including group member keys, unique keys, and group identifiers (512). For example, application 112 may send measurement data elements to an aggregation system, such as aggregation system 180 in FIG. Applications can send measurement data elements after a randomly selected (or pseudo-random) period of time has elapsed after a conversion is detected to prevent time-based attacks.

図6は、インプレッションデータを復号化するための例示的なプロセス600を示す流れ図である。プロセス600は、たとえば、図1の集約システム180および/または報告システム190などの1つまたは複数のサーバによって実装することができる。プロセス600の動作はまた、非一時的コンピュータ可読媒体に記憶された命令として実装することができ、1つまたは複数のデータ処理装置による命令の実行により、1つまたは複数のデータ処理装置にプロセス600の動作を実行させることができる。 FIG. 6 is a flow diagram illustrating an exemplary process 600 for decoding impression data. Process 600 may be implemented by one or more servers, such as aggregation system 180 and/or reporting system 190 of FIG. 1, for example. The operations of process 600 may also be implemented as instructions stored on a non-transitory computer-readable medium such that execution of the instructions by one or more data processing devices causes process 600 to occur in one or more data processing devices. can be executed.

測定データ要素は、クライアントデバイスから受信される(602)。たとえば、クライアントデバイス110上で実行されるアプリケーション112、たとえば、ウェブブラウザまたはネイティブアプリケーションは、検出されたインプレッションおよびコンバージョン(たとえば、インプレッションとコンバージョンのペア)に応答して、測定要素を生成および送信することができる。いくつかの実装形態では、図4を参照して上で説明したように、測定データ要素は、グループメンバー鍵およびグループ識別子を含むことができる。いくつかの実装形態では、図5を参照して上で説明したように、測定データ要素は、グループメンバー鍵、グループ識別子、および一意の鍵を含むことができる。どちらの実装形態においても、グループメンバー鍵は、インプレッションのインプレッションデータとしきい値tに基づくシードを使用した(t、n)-しきい値暗号化技法を使用して生成することができる。 A measurement data element is received from a client device (602). For example, an application 112, e.g., a web browser or native application, running on the client device 110 may generate and transmit measurement elements in response to detected impressions and conversions (e.g., impression-conversion pairs). can be done. In some implementations, the measurement data element can include a group member key and a group identifier, as described above with reference to FIG. In some implementations, the measurement data elements can include group member keys, group identifiers, and unique keys, as described above with reference to FIG. In either implementation, the group member key can be generated using a (t,n)-threshold encryption technique using a seed based on impression data of impressions and a threshold t.

インプレッションとコンバージョンのペアについて少なくともt個の測定データ要素が受信されたかどうかの決定が行われる(604)。たとえば、受信され、インプレッションとコンバージョンのペアのグループ識別子を含む個別の測定データ要素の数をカウントすることができる。このカウントは、しきい値tと比較することができる。 A determination is made whether at least t measurement data elements have been received for the impression and conversion pair (604). For example, the number of distinct measurement data elements received and containing group identifiers for impression-conversion pairs may be counted. This count can be compared to a threshold t.

インプレッションとコンバージョンのペアのしきい値t未満の個別の測定データ要素が受信された場合、プロセス600は、シークレット(たとえば、インプレッションデータおよびコンバージョンデータ)は、インプレッションとコンバージョンのペアの少なくともt個の測定データ要素が受信されるまで復号化することができないため、動作602に戻って、インプレッションとコンバージョンのペアの追加の測定データ要素を待つことができる。 If less than a threshold t distinct measurement data elements for an impression-conversion pair are received, the process 600 determines that the secret (e.g., impression data and conversion data) is a set of at least t measurements for an impression-conversion pair. Since the data elements cannot be decoded until received, operation 602 can be returned to await additional measurement data elements of the impression-conversion pair.

インプレッションとコンバージョンのペアの少なくともしきい値t個の個別の測定データ要素が受信された場合、各測定データ要素の暗号化されたインプレッションデータが復号化される(606)。測定データ要素がグループメンバー鍵およびグループ識別子を含む実装形態においては、暗号化されたインプレッションデータは、図4を参照して上で説明したように復号化することができる。 The encrypted impression data for each measurement data element is decrypted (606) if at least a threshold t individual measurement data elements of the impression-conversion pair are received. In implementations where the measurement data element includes the group member key and group identifier, the encrypted impression data can be decrypted as described above with reference to FIG.

測定データ要素がグループメンバー鍵、グループ識別子、および一意の鍵を含む実装形態では、図4を参照して上記で説明したように、ブラインド署名された結合されたコンバージョンデータおよび報告URLは、グループ鍵を再生成することによって回復することができる。回復されたコンバージョンデータと回復されたインプレッションデータは、データをブラインド化するために使用されたプロトコルを使用してブラインドを解除することができる。 In implementations where the measurement data element includes a group member key, a group identifier, and a unique key, as described above with reference to Figure 4, the combined blind-signed conversion data and reporting URL will contain the group key can be recovered by regenerating the Recovered conversion data and recovered impression data can be unblinded using the protocol used to blind the data.

ブラインド署名されたインプレッションノンスメッセージコード、ブラインド署名されたコンバージョンノンスメッセージコード、およびノンスを含む結合されたメッセージは、ブラインド署名された結合されたコンバージョンデータを使用して一意の鍵を復号化することによって回復することができる。次いで、ブラインド署名されたインプレッションノンスメッセージコードおよびブラインド署名されたコンバージョンノンスメッセージコードを、ブラインド署名されたインプレッションデータ、ブラインド署名されたコンバージョンデータおよびインプレッションデータ、ならびにノンスを使用して検証することができる。たとえば、集約システム180は、回復されたインプレッションデータおよびノンスを使用してブラインド署名されたインプレッションノンスメッセージコード(たとえば、HMACSHA256メッセージコード)を計算し、これを回復されたブラインド署名されたインプレッションノンスメッセージコードと比較することができる。同様に、集約システム180は、回復されたインプレッションデータおよびコンバージョンデータならびにノンスを使用して、ブラインド署名されたコンバージョンノンスメッセージコード(たとえば、HMACSHA256メッセージコード)を計算し、これを、回復されたブラインド署名されたコンバージョンノンスメッセージコードと比較することができる。両方が一致する場合、回復された両方のコードが検証される。 The combined message containing the blind-signed impression nonce message code, the blind-signed conversion nonce message code, and the nonce is processed by decrypting the unique key using the blind-signed combined conversion data can recover. The blind signed impression nonce message code and blind signed conversion nonce message code can then be verified using the blind signed impression data, the blind signed conversion and impression data, and the nonce. For example, the aggregation system 180 may use the recovered impression data and the nonce to compute a blind-signed impression nonce message code (e.g., HMAC SHA256 message code), which may be converted to a recovered blind-signed impression nonce message. Code can be compared. Similarly, aggregation system 180 uses the recovered impression and conversion data and the nonce to compute a blind signed conversion nonce message code (e.g., HMAC SHA256 message code), which is converted to the recovered blind It can be compared with the signed conversion nonce message code. If both match, both recovered codes are verified.

次いで、不正検出システム170は、インプレッションデータのブラインド署名と、インプレッションデータおよびノンスデータのブラインド署名を検証することができる。同様に、デジタルコンポーネント配信システム150は、ブラインド署名されたコンバージョンデータのブラインド署名、ならびにブラインド署名されたコンバージョンおよびノンスデータのブラインド署名を検証することができる。 The fraud detection system 170 can then verify the blind signatures on the impression data and the blind signatures on the impression data and the nonce data. Similarly, digital component distribution system 150 can verify blind signatures on blind-signed conversion data and blind signatures on blind-signed conversion and nonce data.

次いで、k-匿名性を確保するために、インプレッションとコンバージョンのペアの測定データ要素における一意のノンスの数を決定することができる。次に、k-匿名性を確保するために、インプレッションとコンバージョンのペアの測定データ要素における一意のノンスの数を決定することができる。一意のノンスの数は、インプレッション/コンバージョンイベントを報告したブラウザ(または、アプリケーション)の数である。一意のノンスの数がkより大きい場合、報告システムは、少なくともk個のブラウザがイベントを確認したことを認識して、コンバージョン数をデジタルコンポーネント配信システムに報告する。一意のノンスの数がk未満の場合、報告システムはコンバージョン数を報告しないため、k-匿名性が適用される。危険にさらされたブラウザは、上記の検証を回避する方法で追加のノンスを偽造することはできない。 Then, to ensure k-anonymity, the number of unique nonces in the impression-conversion pair measurement data element can be determined. Then, to ensure k-anonymity, the number of unique nonces in the impression-conversion pair measurement data element can be determined. The number of unique nonce is the number of browsers (or applications) reporting impression/conversion events. If the number of unique nonce is greater than k, the reporting system knows that at least k browsers have seen the event and reports the number of conversions to the digital component delivery system. If the number of unique nonces is less than k, the reporting system will not report the number of conversions, hence k-anonymity is applied. A compromised browser cannot forge additional nonce in a way that circumvents the above validation.

上記のすべての検証が成功した場合、インプレッションとコンバージョンは有効であり、シビル攻撃の一部ではない。検証の各々が成功したとの決定に応答して、ブラインド署名されたインプレッションデータ、ブラインド署名されたコンバージョンデータおよびインプレッションデータ、ならびに一意のノンスの数を、報告URLを使用して報告システム190に送信することができる。次いで、報告システム190は、インプレッションデータを暗号化するために使用された公開鍵に対応する秘密鍵を使用して、インプレッションデータを回復することができる。報告システム190は、ブラインド化されたコンバージョンデータおよびインプレッションデータを暗号化するために使用された秘密鍵を使用してブラインド署名されたコンバージョンデータおよびインプレッションデータを復号化することによって、同様にコンバージョンデータを回復することができる。 If all the above validations are successful, the impression and conversion are valid and not part of a Sybil attack. In response to determining that each of the verifications was successful, the blind signed impression data, the blind signed conversion data and the impression data, and the number of unique nonce are sent to the reporting system 190 using the reporting URL. can do. Reporting system 190 can then recover the impression data using the private key corresponding to the public key used to encrypt the impression data. The reporting system 190 similarly encrypts the conversion data by decrypting the blind-signed conversion and impression data using the private key used to encrypt the blind conversion and impression data. can recover.

図7は、上記の動作を実行するために使用することができる例示的なコンピュータシステム700のブロック図である。システム700は、プロセッサ710、メモリ720、ストレージデバイス730、および入力/出力デバイス740を含む。コンポーネント710、720、730、および740のそれぞれは、たとえば、システムバス750を使用して相互接続することができる。プロセッサ710は、システム700内で実行するための命令を処理することができる。いくつかの実装形態では、プロセッサ710はシングルスレッドプロセッサである。別の実装形態では、プロセッサ710はマルチスレッドプロセッサである。プロセッサ710は、メモリ720またはストレージデバイス730に記憶された命令を処理することができる。 FIG. 7 is a block diagram of an exemplary computer system 700 that can be used to perform the operations described above. System 700 includes processor 710 , memory 720 , storage device 730 and input/output devices 740 . Each of components 710, 720, 730, and 740 may be interconnected using system bus 750, for example. Processor 710 can process instructions for execution within system 700 . In some implementations, processor 710 is a single-threaded processor. In another implementation, processor 710 is a multithreaded processor. Processor 710 can process instructions stored in memory 720 or storage device 730 .

メモリ720は、システム700内に情報を記憶する。一実装形態では、メモリ720は、コンピュータ可読媒体である。いくつかの実装形態では、メモリ720は揮発性メモリユニットである。別の実装形態では、メモリ720は、不揮発性メモリユニットである。 Memory 720 stores information within system 700 . In one implementation, memory 720 is a computer-readable medium. In some implementations, memory 720 is a volatile memory unit. In another implementation, memory 720 is a non-volatile memory unit.

ストレージデバイス730は、システム700に大容量ストレージを提供することができる。いくつかの実装形態では、ストレージデバイス730は、コンピュータ可読媒体である。様々な異なる実装形態では、ストレージデバイス730は、たとえば、ハードディスクデバイス、光ディスクデバイス、複数のコンピューティングデバイス(たとえば、クラウドストレージデバイスデバイス)によってネットワーク上で共有されるストレージデバイス、または他の何らかの大容量ストレージデバイスを含むことができる。 Storage device 730 can provide mass storage for system 700 . In some implementations, storage device 730 is a computer-readable medium. In various different implementations, storage device 730 may be, for example, a hard disk device, an optical disk device, a storage device shared over a network by multiple computing devices (eg, a cloud storage device device), or some other mass storage device. can include devices.

入力/出力デバイス740は、システム700の入力/出力動作を提供する。いくつかの実装形態では、入力/出力デバイス740は、1つまたは複数のネットワークインターフェースデバイス、たとえば、イーサネットカード、シリアル通信デバイス、たとえば、RS-232ポート、および/またはワイヤレスインターフェースデバイス、たとえば、802.11カードを含むことができる。別の実装形態では、入力/出力デバイスは、入力データを受信し、出力データを外部デバイス760、たとえば、キーボード、プリンタ、およびディスプレイデバイスに送信するように構成されたドライバデバイスを含むことができる。しかしながら、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビクライアントデバイスなどの、他の実装形態も使用することができる。 Input/output devices 740 provide input/output operations for system 700 . In some implementations, input/output device 740 is one or more network interface devices such as Ethernet cards, serial communication devices such as RS-232 ports, and/or wireless interface devices such as 802.11 cards. can include In another implementation, the input/output devices may include driver devices configured to receive input data and send output data to external devices 760, such as keyboards, printers, and display devices. However, other implementations can also be used, such as mobile computing devices, mobile communications devices, set-top box television client devices, and the like.

例示的な処理システムが図7に記載されているが、本明細書に記載されている主題および機能動作の実装形態は、他のタイプのデジタル電子回路において、あるいはコンピュータソフトウェア、ファームウェア、またはハードウェアにおいて実装することができ、これには、本明細書に開示されている構造とそれらの構造的同等物、またはそれらの1つまたは複数の組合せが含まれる。 Although an exemplary processing system is described in FIG. 7, implementations of the subject matter and functional operations described herein may be implemented in other types of digital electronic circuits, or in computer software, firmware, or hardware. including the structures disclosed herein and their structural equivalents, or combinations of one or more thereof.

本明細書に記載の主題および動作の実施形態は、デジタル電子回路、または本明細書に開示される構造およびそれらの構造的同等物を含むコンピュータソフトウェア、ファームウェア、またはハードウェアにおいて、あるいはそれらの1つまたは複数の組合せにおいて実装することができる。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行するために、またはその動作を制御するために、コンピュータストレージ媒体(または、媒体)上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。あるいは、またはさらに、プログラム命令は、データ処理装置による実行のために適切な受信機装置に送信するための情報を符号化するために生成される、人工的に生成された伝搬信号、たとえば、機械生成の電気、光、または電磁信号に符号化することができる。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムまたはシリアルアクセスメモリアレイまたはデバイス、あるいはそれらの1つまたは複数の組合せであり得るか、またはそれらに含まれ得る。さらに、コンピュータストレージ媒体は伝搬信号ではないが、コンピュータストレージ媒体は、人工的に生成された伝搬信号に符号化されたコンピュータプログラム命令のソースまたは宛先であり得る。コンピュータストレージ媒体はまた、1つまたは複数の別個の物理的コンポーネントまたは媒体(たとえば、複数のCD、ディスク、または他のストレージデバイス)であり得るか、またはそれらに含まれ得る。 Embodiments of the subject matter and operations described herein may be implemented in or in digital electronic circuitry, or computer software, firmware, or hardware including the structures disclosed herein and their structural equivalents. can be implemented in one or more combinations. Embodiments of the subject matter described herein may be stored on a computer storage medium (or media) for execution by or for controlling the operation of one or more computer programs, i.e., data processing apparatus. It can be implemented as one or more modules of encoded computer program instructions. Alternatively, or additionally, the program instructions may be an artificially generated propagated signal, e.g. It can be encoded into the generated electrical, optical, or electromagnetic signal. A computer storage medium may be or be included in a computer readable storage device, a computer readable storage substrate, a random or serial access memory array or device, or a combination of one or more thereof. Moreover, although a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially generated propagated signal. A computer storage medium may also be or be contained within one or more separate physical components or media (eg, multiple CDs, discs, or other storage devices).

本明細書に記載されている動作は、1つまたは複数のコンピュータ可読ストレージデバイスに記憶されているか、または他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装することができる。 The operations described herein may be implemented as operations performed by a data processing apparatus on data stored in one or more computer readable storage devices or received from other sources. can be done.

「データ処理装置」という用語は、たとえば、プログラム可能なプロセッサ、コンピュータ、チップ上のシステム、または複数のもの、あるいは前述の組合せを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路を含むことができる。装置はまた、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、あるいはそれらの1つまたは複数の組合せを構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。 The term "data processor" means any kind of apparatus, device and machine for processing data including, for example, a programmable processor, computer, system on a chip, or any number or combination of the foregoing. encompasses The device may include dedicated logic circuits such as FPGAs (Field Programmable Gate Arrays) or ASICs (Application Specific Integrated Circuits). The apparatus also includes, in addition to hardware, code that creates an execution environment for the computer program in question, such as processor firmware, protocol stacks, database management systems, operating systems, cross-platform runtime environments, virtual machines, or one of these. Or it can contain codes that make up multiple combinations. Devices and execution environments can implement a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.

コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語またはインタープリタ型言語、宣言型言語または手続き型言語を含む、あらゆる形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、あるいはモジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境における使用に適したその他のユニットとしてなど、任意の形式で展開することができる。コンピュータプログラムは、ファイルシステム内のファイルに対応する場合があるが、対応する必要はない。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプト)を保持するファイルの一部に、問題のプログラム専用の単一ファイルに、または複数の調整されたファイル(たとえば、1つまたは複数のモジュール、サブプログラム、あるいはコードの一部を記憶するファイル)に記憶することができる。コンピュータプログラムは、1台のコンピュータ、または1つのサイトに配置されているか、複数のサイトに分散され、通信ネットワークによって相互接続されている複数のコンピュータで実行されるように展開することができる。 A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted, declarative, or procedural languages. , can be deployed in any form, such as as a stand-alone program, or as modules, components, subroutines, objects, or other units suitable for use in a computing environment. A computer program may, but need not, correspond to files in a file system. A program may be part of a file holding other programs or data (e.g., one or more scripts stored in a markup language document), a single file dedicated to the program in question, or multiple (eg, files that store one or more modules, subprograms, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communications network.

本明細書に記載のプロセスおよび論理フローは、入力データを操作して出力を生成することによってアクションを実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行することができる。プロセスおよび論理フローはまた、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行することができ、装置はそれらとして実装することもできる。 The processes and logic flows described herein are performed by one or more programmable processors executing one or more computer programs to perform actions by manipulating input data and generating output. can do. The processes and logic flows may also be performed by dedicated logic circuits, such as FPGAs (Field Programmable Gate Arrays) or ASICs (Application Specific Integrated Circuits), and devices may be implemented as such.

コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方を含む。一般に、プロセッサは、読取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令とデータを受信する。コンピュータの本質的な要素は、命令に従ってアクションを実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば、磁気、光磁気ディスク、または光ディスクを含むか、またはそこからデータを受信するか、そこにデータを転送するか、あるいはその両方のために動作可能に結合される。しかしながら、コンピュータにそのようなデバイスが必要なわけではない。さらに、コンピュータは、別のデバイス、たとえば、ほんの数例を挙げると、モバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)受信機、または携帯型ストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に埋め込むことができる。コンピュータプログラム命令およびデータを記憶するために適したデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCDROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、メディア、およびメモリデバイスを含む。プロセッサとメモリは、専用論理回路によって補完することもでき、またはそこに組み込むことができる。 Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors. Generally, a processor receives instructions and data from read-only memory and/or random-access memory. The essential elements of a computer are a processor for performing actions according to instructions and one or more memory devices for storing instructions and data. Generally, a computer also includes, receives data from, or transfers data to, one or more mass storage devices for storing data, such as magnetic, magneto-optical, or optical disks. or operably coupled to both. However, the computer does not require such a device. In addition, the computer may be connected to another device such as a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a handheld device, just to name a few. It can be embedded in a storage device (eg, Universal Serial Bus (USB) flash drive). Devices suitable for storing computer program instructions and data include, by way of example, semiconductor memory devices such as EPROM, EEPROM and flash memory devices, magnetic disks such as internal or removable disks, magneto-optical disks, and CDROMs. and all forms of non-volatile memory, media, and memory devices, including DVD-ROM discs. The processor and memory may also be supplemented by, or incorporated in, dedicated logic circuitry.

ユーザとの相互作用を提供するために、本明細書に記載の主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLDC(液晶ディスプレイ)モニタと、キーボードおよびポインティングデバイス、たとえばユーザがコンピュータに入力を提供することができるマウスまたはトラックボールなどのポインティングデバイスとを有するコンピュータ上に実装することができる。ユーザとの相互作用を提供するために、他の種類のデバイスを使用することができる。たとえば、ユーザに提供されるフィードバックは、たとえば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなど、任意の形式の感覚的フィードバックであり得、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受信することができる。さらに、コンピュータは、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、たとえば、ウェブブラウザから受信した要求に応じて、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと相互作用することができる。 To provide interaction with a user, embodiments of the subject matter described herein include a display device, such as a CRT (cathode ray tube) or LDC (liquid crystal display) monitor, for displaying information to a user; It can be implemented on a computer having a keyboard and pointing device, such as a mouse or trackball that allows a user to provide input to the computer. Other types of devices can be used to provide user interaction. For example, the feedback provided to the user can be any form of sensory feedback, e.g., visual, auditory, or tactile feedback, and the input from the user can be acoustic, speech, or tactile input. can be received in any format, including Additionally, the computer may be used by sending and receiving documents to and from the device used by the user, e.g., by sending web pages to the web browser on the user's client device in response to requests received from the web browser. , can interact with the user.

本明細書に記載されている主題の実施形態は、たとえばデータサーバとしてのバックエンドコンポーネントを含むか、またはアプリケーションサーバなどのミドルウェアコンポーネントを含むか、またはたとえば、ユーザが本仕様書に記載されている主題の実装形態と相互作用することができるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータなどのフロントエンドコンポーネントを含むコンピューティングシステム、あるいは1つまたは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、またはフロントエンドコンポーネントの任意の組合せに実装することができる。システムのコンポーネントは、通信ネットワークなどの、デジタルデータ通信の任意の形式または媒体によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアピアツーピアネットワーク)を含む。 Embodiments of the subject matter described herein may include backend components, such as data servers, or middleware components, such as application servers, or may include, for example, user A computing system that includes a front-end component, such as a client computer having a graphical user interface or web browser capable of interacting with a subject implementation, or one or more such back-end components, middleware components, or front-end components It can be implemented in any combination of end components. The components of the system can be interconnected by any form or medium of digital data communication such as a communication network. Examples of communication networks include local area networks (“LAN”) and wide area networks (“WAN”), internetworks (eg, the Internet), and peer-to-peer networks (eg, ad-hoc peer-to-peer networks).

コンピューティングシステムは、クライアントとサーバを含むことができる。クライアントとサーバは通常、互いにリモートであり、通常は通信ネットワークを通じて相互作用する。クライアントとサーバの関係は、それぞれのコンピュータで実行され、相互にクライアントとサーバの関係を有するコンピュータプログラムによって発生する。いくつかの実施形態では、サーバは、データ(たとえば、HTMLページ)をクライアントデバイスに送信する(たとえば、クライアントデバイスと相互作用するユーザにデータを表示し、またそこからユーザ入力を受信する目的で)。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザの動作の結果)は、サーバにおいてクライアントデバイスから受信することができる。 The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, the server sends data (eg, HTML pages) to the client device (eg, for the purpose of displaying the data to and receiving user input from users interacting with the client device). . Data generated at the client device (eg, results of user actions) can be received from the client device at the server.

本明細書は多くの特定の実装形態の詳細を含むが、これらは、発明の範囲または請求され得るものの制限として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に固有の特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書に記載されている特定の特徴はまた、単一の実施形態において組み合わせて実装することができる。逆に、単一の実施形態の文脈において説明される様々な特徴はまた、複数の実施形態において別々に、または任意の適切なサブコンビネーションにおいて実装することができる。さらに、特徴は、特定の組合せで作用するものとして上記に記載され、最初にそのように主張されていても、主張された組合せからの1つまたは複数の特徴は、場合によっては組合せから切り出され得、主張された組合せは、サブコンビネーションまたはサブコンビネーションの変形に向けられ得る。 Although this specification contains many specific implementation details, these should not be construed as limitations on the scope of the invention or what may be claimed, but rather of features inherent in the particular embodiment of the particular invention. should be interpreted as an explanation. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Further, even if features are described above as working in a particular combination and are originally claimed as such, one or more features from the claimed combination may in some cases be cut out of the combination. A claimed combination may be directed to a subcombination or variations of a subcombination.

同様に、動作は特定の順序で図面に描かれているが、これは、望ましい結果を達成するために、そのような動作が示された特定の順序または順番に実行されること、あるいは図示されたすべての動作が実行されることを必要とするものとして理解されるべきではない。特定の状況では、マルチタスクと並列処理が有利な場合がある。さらに、上記の実施形態における様々なシステムコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されたプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品に一緒に統合するか、または複数のソフトウェア製品にパッケージ化することができることが理解されるべきである。 Similarly, although operations have been drawn in the figures in a particular order, this does not mean that such operations are performed in the specific order or order shown, or that they are illustrated in order to achieve a desired result. should not be construed as requiring that all actions be performed. Multitasking and parallelism can be advantageous in certain situations. Furthermore, the separation of various system components in the above embodiments should not be understood as requiring such separation in all embodiments, and the program components and systems described generally operate in a single unit. can be integrated together into multiple software products or packaged into multiple software products.

したがって、主題の特定の実施形態が説明されてきた。他の実施形態は、以下の特許請求の範囲内にある。場合によっては、特許請求の範囲に記載されたアクションは、異なる順序で実行され、依然として望ましい結果を達成することができる。さらに、添付の図面に示されているプロセスは、望ましい結果を達成するために、示されている特定の順序または順番を必ずしも必要としない。特定の実装形態では、マルチタスクと並列処理が有利な場合がある。 Accordingly, specific embodiments of the subject matter have been described. Other embodiments are within the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. Moreover, the processes illustrated in the accompanying drawings do not necessarily require the particular order or order illustrated to achieve desirable results. Multitasking and parallelism may be advantageous in certain implementations.

100 環境
105 データ通信ネットワーク
110 クライアントデバイス
112 アプリケーション
114 インプレッションデータ
116 コンバージョンデータ
130 発行者
140 ウェブサイト
145 リソース
150 デジタルコンポーネント配信システム
157 デジタルコンポーネントパートナ
160 デジタルコンポーネントプロバイダ
170 不正検出システム
180 集約システム
190 報告システム
200 プロセス
300 プロセス
400 プロセス
500 プロセス
600 プロセス
700 コンピュータシステム
710 プロセッサ
720 メモリ
730 ストレージデバイス
740 入力/出力デバイス
750 システムバス
760 外部デバイス
100 environment
105 Data Communication Network
110 client devices
112 applications
114 Impression data
116 conversion data
130 Publishers
140 websites
145 Resources
150 Digital Component Distribution System
157 Digital Component Partners
160 Digital Component Provider
170 Fraud detection system
180 aggregation system
190 Reporting system
200 processes
300 processes
400 processes
500 processes
600 processes
700 computer system
710 processor
720 memory
730 storage devices
740 input/output devices
750 system bus
760 external devices

Claims (13)

複数のクライアントデバイスの各々から、それぞれのグループメンバー鍵、およびデジタルコンポーネントを表示した結果としての所与のコンバージョンのグループ識別子を含む測定データ要素を受信するステップであって、各クライアントデバイスにおいて実行されるアプリケーションが、
インプレッションデータまたは前記コンバージョン用のコンバージョンデータの1つまたは複数を含むネットワークデータに少なくとも基づいて、前記ネットワークデータを暗号化するためのシークレットを定義するグループ鍵を生成することであって、各グループメンバー鍵が、前記シークレットのそれぞれの共有を備える、ことと、
前記アプリケーションに関連するデータに基づいて、前記それぞれのグループメンバー鍵を生成することであって、各クライアントデバイスが、前記シークレットの異なる共有を含む異なるグループメンバー鍵を生成する、ことと
を行うために、しきい値暗号化スキームを使用する、ステップと、
前記グループ識別子を有する少なくともしきい値数の測定データ要素が受信されたことを決定するステップと、
同じグループ識別子を有する少なくとも前記しきい値数の測定データ要素が受信されたとの決定に応答して、前記受信した測定データ要素における前記グループメンバー鍵を使用して前記ネットワークデータを復号化するステップと
を備える、コンピュータ実装方法。
receiving from each of a plurality of client devices a measurement data element comprising a respective group member key and a group identifier for a given conversion as a result of displaying a digital component, said step being performed at each client device; The application
generating, based at least on network data including one or more of impression data or conversion data for said conversion, a group key defining a secret for encrypting said network data, wherein each group member key; comprises a respective share of said secret;
generating said respective group member key based on data associated with said application, wherein each client device generates a different group member key comprising a different sharing of said secret; , using a threshold encryption scheme, and
determining that at least a threshold number of measurement data elements with the group identifier have been received;
responsive to determining that at least the threshold number of measurement data elements having the same group identifier have been received, decrypting the network data using the group member key in the received measurement data elements; A computer-implemented method comprising:
各アプリケーションが、前記インプレッションデータに関連するコンバージョンの発生に応答して、前記測定データ要素を生成および送信し、前記グループ識別子を含む受信されたデータ要素の数に基づいて、前記デジタルコンポーネントのコンバージョンの数を決定するステップをさらに備える、請求項1に記載の方法。 each application generating and transmitting said measurement data elements in response to the occurrence of conversions associated with said impression data; 2. The method of claim 1, further comprising determining a number. 前記グループ鍵を生成するステップが、ブラインド署名されたインプレッションデータに基づいて前記グループ鍵を生成するステップを備える、請求項1または2のいずれか一項に記載の方法。 3. The method of any one of claims 1 or 2, wherein generating the group key comprises generating the group key based on blind signed impression data. 前記ブラインド署名されたインプレッションデータが、
前記インプレッションが有効であると決定した第1のシステムおよび前記コンバージョンを登録することを決定した第2のシステムによって署名されたブラインド化されたインプレッションデータであって、前記インプレッションデータをブラインド化することによって生成される、前記ブラインド化されたインプレッションデータと、
前記第2のシステムによって署名されたコンバージョンデータと
を備える、ブラインド署名された結合されたコンバージョンデータを備える、請求項3に記載の方法。
The blind-signed impression data is
Blinded impression data signed by a first system that determined said impression to be valid and a second system that determined to register said conversion, by blinding said impression data the generated blinded impression data;
4. The method of claim 3, comprising blind signed combined conversion data comprising conversion data signed by the second system.
前記グループ鍵を生成する前記ステップが、前記ブラインド署名された結合されたコンバージョンデータと、前記デジタルコンポーネントのコンバージョンデータが報告される報告システムのネットワークアドレスとの組合せを使用して前記グループ鍵を生成するステップを備える、請求項4に記載の方法。 The step of generating the group key uses a combination of the blind-signed combined conversion data and a network address of a reporting system to which the conversion data of the digital component is reported to generate the group key. 5. The method of claim 4, comprising steps. 前記ブラインド署名された結合されたコンバージョンデータが、前記報告システムの公開鍵を使用して暗号化される、請求項5に記載の方法。 6. The method of claim 5, wherein the blind-signed combined conversion data is encrypted using the reporting system's public key. 前記アプリケーションに関連する前記データが、前記アプリケーションの一意の識別子を備える、請求項1から6のいずれか一項に記載の方法。 7. A method according to any preceding claim, wherein said data relating to said application comprises a unique identifier for said application. 前記しきい値暗号化スキームが、多項式ベースのしきい値暗号化スキームを備え、各クライアントデバイスにおいて実行される前記アプリケーションが、
少なくとも前記インプレッションデータを備えるシードに基づいて、前記グループ鍵として多項式関数を生成することと、
前記シークレットに対応する値を有するように前記多項式関数上の同じ点を選択することと、
前記それぞれのグループメンバー鍵として、前記アプリケーションに関連する前記データを使用して、同じ点とは異なる前記多項式関数上の第2の点を選択することと
を行う、請求項1から7のいずれか一項に記載の方法。
wherein the threshold encryption scheme comprises a polynomial-based threshold encryption scheme, the application running on each client device comprising:
generating a polynomial function as the group key based on a seed comprising at least the impression data;
selecting the same point on the polynomial function to have a value corresponding to the secret;
and selecting a second point on the polynomial function that is different from the same point, using the data associated with the application as the respective group member key. The method according to item 1.
前記受信した測定データ要素における前記グループメンバー鍵を使用して前記インプレッションデータを復号化するステップが、
前記第2の点を使用して前記多項式関数を再生成するステップと、
前記再生成された多項式関数上の同じ点を識別するステップと
を備える、請求項8に記載の方法。
decrypting the impression data using the group member key in the received measurement data element;
regenerating the polynomial function using the second points;
and identifying the same points on the regenerated polynomial function.
前記しきい値暗号化スキームが、中国の剰余定理ベースのスキーム、プロアクティブなシークレット共有、または検証可能なシークレット共有のいずれかを備える、請求項1から9のいずれか一項に記載の方法。 10. The method of any one of claims 1-9, wherein the threshold encryption scheme comprises any of a Chinese Remainder Theorem-based scheme, proactive secret sharing, or verifiable secret sharing. コンピュータによって実行されると、前記コンピュータに、請求項1から10のいずれか一項に記載の方法の前記ステップを実行させる命令を備える、1つまたは複数のコンピュータ可読ストレージ媒体。 One or more computer-readable storage media comprising instructions that, when executed by a computer, cause the computer to perform the steps of the method of any one of claims 1-10. コンピュータによって実行されると、前記コンピュータに、請求項1から10のいずれか一項に記載の方法の前記ステップを実行させる命令を備える、コンピュータプログラム。 A computer program product comprising instructions which, when executed by a computer, cause said computer to perform the steps of the method according to any one of claims 1 to 10. 請求項11に記載の1つまたは複数のプロセッサおよび1つまたは複数のコンピュータ可読ストレージ媒体を有するデータ処理システムを備える、不正を防止するためのシステムであって、前記1つまたは複数のプロセッサが、請求項1から10のいずれか一項に記載の前記ステップを実行するように構成される、システム。 12. A system for preventing fraud, comprising a data processing system having one or more processors according to claim 11 and one or more computer-readable storage media, wherein the one or more processors: A system configured to perform the steps of any one of claims 1-10.
JP2021540867A 2020-01-19 2020-12-11 Fraud Prevention in Aggregated Network Measurements Active JP7157258B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IL272126A IL272126A (en) 2020-01-19 2020-01-19 Preventing fraud in aggregated network measurements
IL272126 2020-01-19
PCT/US2020/064498 WO2021145988A1 (en) 2020-01-19 2020-12-11 Preventing fraud in aggregated network measurements

Publications (2)

Publication Number Publication Date
JP2022532815A JP2022532815A (en) 2022-07-20
JP7157258B2 true JP7157258B2 (en) 2022-10-19

Family

ID=76864585

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021540867A Active JP7157258B2 (en) 2020-01-19 2020-12-11 Fraud Prevention in Aggregated Network Measurements

Country Status (7)

Country Link
US (3) US11736459B2 (en)
EP (1) EP3895368B1 (en)
JP (1) JP7157258B2 (en)
KR (1) KR102661484B1 (en)
CN (1) CN113439414B (en)
IL (1) IL272126A (en)
WO (1) WO2021145988A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112953931B (en) * 2021-02-09 2022-11-22 北京字节跳动网络技术有限公司 Data processing method and device, computer equipment and computer storage medium
WO2023048711A1 (en) * 2021-09-22 2023-03-30 Visa International Service Association Threshold secret share generation for distributed symmetric cryptography
CN115277215A (en) * 2022-07-29 2022-11-01 中国银行股份有限公司 Network payment encryption method, network payment decryption method, device and equipment
KR20240150284A (en) * 2023-04-07 2024-10-15 한양대학교 산학협력단 Share hardening method for multi-factor threshold secret sharing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021479A1 (en) 2001-12-12 2005-01-27 Jorba Andreu Riera Secure remote electronic voting system and cryptographic protocols and computer programs employed
US20050240591A1 (en) 2004-04-21 2005-10-27 Carla Marceau Secure peer-to-peer object storage system
US20140095297A1 (en) 2012-10-01 2014-04-03 Dstillery, Inc. Systems, methods, and media for mobile advertising conversation attribution
JP2015517163A (en) 2012-04-27 2015-06-18 グーグル・インコーポレーテッド Privacy management across multiple devices
US9641332B1 (en) 2013-01-30 2017-05-02 Google Inc. Privacy-preserving measurements of a campaign

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7434047B2 (en) * 2004-12-30 2008-10-07 Nokia, Inc. System, method and computer program product for detecting a rogue member in a multicast group
US9015489B2 (en) 2010-04-07 2015-04-21 Microsoft Technology Licensing, Llc Securing passwords against dictionary attacks
US9275237B2 (en) * 2013-12-09 2016-03-01 Palo Alto Research Center Incorporated Method and apparatus for privacy and trust enhancing sharing of data for collaborative analytics
CN106936787A (en) 2015-12-31 2017-07-07 金雅拓股份有限公司 For protecting the method that encryption key is used in two different encryption environment
KR101950073B1 (en) * 2016-09-01 2019-02-19 명지대학교 산학협력단 System and method of providing a security and anonymity service using secret distribution
EP3419211B1 (en) * 2017-06-23 2022-03-30 Flytxt B.V. Privacy preserving computation protocol for data analytics
CN107659401B (en) 2017-10-09 2019-08-30 华中科技大学 A similarity-aware secure data deduplication encryption method
US11410105B2 (en) * 2019-07-03 2022-08-09 Vertru Technologies Inc. Blockchain based supply chain network systems
CN110601822A (en) 2019-08-20 2019-12-20 国家电网有限公司 Encryption blind signature method based on quantum secret communication technology

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021479A1 (en) 2001-12-12 2005-01-27 Jorba Andreu Riera Secure remote electronic voting system and cryptographic protocols and computer programs employed
US20050240591A1 (en) 2004-04-21 2005-10-27 Carla Marceau Secure peer-to-peer object storage system
JP2015517163A (en) 2012-04-27 2015-06-18 グーグル・インコーポレーテッド Privacy management across multiple devices
US20140095297A1 (en) 2012-10-01 2014-04-03 Dstillery, Inc. Systems, methods, and media for mobile advertising conversation attribution
US9641332B1 (en) 2013-01-30 2017-05-02 Google Inc. Privacy-preserving measurements of a campaign

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LIU, D. et al.,Towards Private and Efficient Ad Impression Aggregation in Mobile Advertising,2019 IEEE International Conference on Communicaitons (ICC),2019年05月,pp.1-6

Also Published As

Publication number Publication date
CN113439414B (en) 2024-09-13
KR20210097786A (en) 2021-08-09
KR102661484B1 (en) 2024-04-26
US12010106B2 (en) 2024-06-11
IL272126A (en) 2021-07-29
EP3895368B1 (en) 2026-02-04
WO2021145988A1 (en) 2021-07-22
EP3895368A1 (en) 2021-10-20
US20220353251A1 (en) 2022-11-03
US12284164B2 (en) 2025-04-22
US20230421544A1 (en) 2023-12-28
US20240406153A1 (en) 2024-12-05
JP2022532815A (en) 2022-07-20
US11736459B2 (en) 2023-08-22
CN113439414A (en) 2021-09-24

Similar Documents

Publication Publication Date Title
US12309260B2 (en) Aggregating encrypted network values
JP7157258B2 (en) Fraud Prevention in Aggregated Network Measurements
US12069157B2 (en) Generating sequences of network data while preventing acquisition or manipulation of time data
US12160525B2 (en) Preventing data manipulation using multiple aggregation servers
KR20220123695A (en) Cryptographically validating security requests
CN114731293B (en) Prevent data manipulation and protect user privacy when determining accurate location event measurements
US12335410B2 (en) Preventing data manipulation and protecting user privacy in telecommunication network measurements

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210914

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210914

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: 20220912

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221006

R150 Certificate of patent or registration of utility model

Ref document number: 7157258

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250