Methods for aggregating points between interactions

By performing encryption processing and aggregation operations in the computing system, the problem of the existing technology that it is difficult to securely aggregate and distribute interactive data while protecting user privacy is solved, and safe and efficient data processing and privacy protection are achieved.

CN113994333BActive Publication Date: 2025-09-09GOOGLE LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080005943.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-05-26
Filing Date
2020-08-24
Publication Date
2025-09-09
Estimated Expiration
2040-08-24

AI Technical Summary

Technical Problem

Existing technologies have difficulty in effectively aggregating and distributing interaction data from different entities while maintaining user privacy, especially when content publishers and users interact.

Method used

By using encryption technology and computer architecture methodologies, data encryption processing and aggregation operations are implemented. The specific steps include receiving an encrypted identifier and performing a hiding operation at a first computing system to generate a hidden encrypted identifier; and decrypting the hidden encrypted identifier and performing an aggregation operation at a second computing system to generate an encrypted aggregate value.

Benefits of technology

It achieves the secure aggregation and distribution of interactive data without leaking personal information, protects user privacy, and provides higher data processing efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113994333B_ABST
    Figure CN113994333B_ABST
Patent Text Reader

Abstract

Methods disclosed herein may include receiving an encrypted identifier and an encrypted value at a first computing system, performing a hiding operation on the encrypted identifier by the first computing system to produce a hidden encrypted identifier, wherein the hiding operation hides the encrypted identifier from the first computing system and the second computing system but enables matching between the hidden encrypted identifiers, decrypting the hidden encrypted identifier by the second computing system to produce a hidden identifier, and performing an aggregation operation by the second computing system using the hidden identifier and the encrypted value to generate an encrypted aggregate value without accessing personally identifiable information associated with the encrypted value.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to and the benefit of U.S. Provisional Application No. 63 / 029,835, filed May 26, 2020, which is incorporated herein by reference in its entirety. Background Art

[0003] It can be helpful for an analytics system to be able to determine aggregate information about interactions with content, such as the number of devices that interacted with a particular content item. However, it is often desirable to maintain the privacy of this information. For example, an entity may be interested in receiving information about how many devices a particular type of content reached, or how many devices interacted with that content in a particular way, without necessarily receiving information that could identify the source of the information, such as an identifier associated with the device. Summary of the Invention

[0004] One embodiment of the present disclosure relates to a method, comprising: receiving an encrypted identifier and an encrypted value at a first computing system; performing, by the first computing system, a hiding operation on the encrypted identifier to produce a hidden encrypted identifier, wherein the hiding operation hides the encrypted identifier from the first computing system and a second computing system but enables matching between the hidden encrypted identifiers; decrypting, by the second computing system, the hidden encrypted identifier to produce a hidden identifier, and performing, by the second computing system, an aggregation operation using the hidden identifier and the encrypted value to generate an encrypted aggregate value without accessing personal information associated with the encrypted value.

[0005] In some embodiments, performing the hiding operation includes removing a first portion of the first encryption from the encrypted identifier to produce a partially encrypted identifier; and deterministically encrypting the partially encrypted identifier using a second encryption to produce a hidden encrypted identifier. In some embodiments, decrypting the hidden encrypted identifier includes removing the second portion of the first encryption from the hidden encrypted identifier to produce the hidden identifier. In some embodiments, the method further includes decrypting the encrypted aggregate value by a third computing system to produce the aggregate value. In some embodiments, the method further includes collaboratively generating a first encryption key by the first computing system and the second computing system; generating a second encryption key and a third encryption key associated with the first encryption key by the first computing system; generating a fourth encryption key associated with the first encryption key by the second computing system; and generating fifth and sixth encryption keys by the third computing system.

[0006] In some embodiments, the encrypted identifier is encrypted using a first encryption key, and the encrypted value is encrypted using a fifth encryption key, wherein a concealing operation uses second and third encryption keys, wherein the concealed encrypted identifier is decrypted using a fourth encryption key, and wherein the encrypted aggregate value is decrypted using a sixth encryption key. In some embodiments, the concealing operation includes shuffling the encrypted identifier and re-randomizing the encrypted value by generating ciphertext using a hash function. In some embodiments, the third computing system is part of the first computing system. In some embodiments, at least one of the first computing system or the third computing system is a distributed computing system. In some embodiments, the method further includes: generating a random value by a second computing system; performing an operation by the second computing system using the random value and the encrypted aggregate value to produce a result; and sending the random value by the second computing system to a content publisher associated with the encrypted identifier. In some embodiments, the aggregation operation includes performing a weighting function using the concealed identifier and a time value associated with the concealed identifier to produce the encrypted aggregate value.

[0007] Another embodiment of the present disclosure relates to an outcome measurement system, comprising a first computing system configured to receive an encrypted identifier and an encrypted value, and to perform a hiding operation on the encrypted identifier to produce a hidden encrypted identifier, wherein the hiding operation hides the encrypted identifier from the first computing system and the second computing system but enables matching between the hidden encrypted identifiers, and a second computing system configured to decrypt the hidden encrypted identifier to produce a hidden identifier, and to perform an aggregation operation using the hidden identifier and the encrypted value to generate an encrypted aggregate value without accessing personally identifiable information associated with the encrypted value.

[0008] In some embodiments, performing the hiding operation includes removing a first portion of the first encryption from the encrypted identifier to produce a partially encrypted identifier; and deterministically encrypting the partially encrypted identifier using a second encryption to produce a hidden encrypted identifier. In some embodiments, decrypting the hidden encrypted identifier includes removing the second portion of the first encryption from the hidden encrypted identifier to produce the hidden identifier. In some embodiments, the result measurement system further includes a third computing system configured to decrypt the encrypted aggregate value to produce the aggregate value. In some embodiments, the first computing system and the second computing system are further configured to collaboratively generate a first encryption key, wherein the first computing system is further configured to generate a second encryption key and a third encryption key associated with the first encryption key; wherein the second computing system is further configured to generate a fourth encryption key associated with the first encryption key; and wherein the third computing system is further configured to generate fifth and sixth encryption keys.

[0009] In some embodiments, the encrypted identifier is encrypted using a first encryption key and the encrypted value is encrypted using a fifth encryption key, wherein the hiding operation uses the second and third encryption keys, wherein the hidden encrypted identifier is decrypted using a fourth encryption key, and wherein the encrypted aggregate value is decrypted using a sixth encryption key. In some embodiments, the third computing system is part of the first computing system. In some embodiments, at least one of the first computing system or the third computing system is a distributed computing system. In some embodiments, the aggregation operation includes performing a weighting function using the hidden identifier and a time value associated with the hidden identifier to produce the encrypted aggregate value.

[0010] Another embodiment of the present disclosure relates to one or more computer-readable storage media having instructions stored thereon that, when executed by one or more processors of at least one of a first computing system and a second computing system, cause the first computing system to receive an encrypted identifier and an encrypted value, and perform a hiding operation on the encrypted identifier to produce a hidden encrypted identifier, wherein the hiding operation hides the encrypted identifier from the first computing system and the second computing system but enables matching between the hidden encrypted identifiers; and cause the second computing system to decrypt the hidden encrypted identifier to produce a hidden identifier, and perform an aggregation operation using the hidden identifier and the encrypted value to generate an encrypted aggregate value, without accessing personally identifiable information associated with the encrypted value.

[0011] In some embodiments, performing the hiding operation includes: removing a first portion of the first encryption from the encrypted identifier to produce a partially encrypted identifier; and deterministically encrypting the partially encrypted identifier using a second encryption to produce a hidden encrypted identifier. In some embodiments, decrypting the hidden encrypted identifier includes removing the second portion of the first encryption from the hidden encrypted identifier to produce the hidden identifier. In some embodiments, the instructions are further configured to, when executed by one or more processors of a third computing system, cause the third computing system to decrypt the encrypted aggregate value to produce the aggregate value. In some embodiments, the instructions are configured to cause the first computing system and the second computing system to collaboratively generate a first encryption key; and wherein the instructions are configured to cause the first computing system to generate a second encryption key and a third encryption key associated with the first encryption key; wherein the instructions are configured to cause the second computing system to generate a fourth encryption key associated with the first encryption key; and wherein the instructions are configured to cause the third computing system to generate fifth and sixth encryption keys. In some embodiments, the encrypted identifier is encrypted using a first encryption key, and the encrypted value is encrypted using a fifth encryption key, wherein the hiding operation uses the second and third encryption keys, wherein the hidden encrypted identifier is decrypted using a fourth encryption key, and wherein the encrypted aggregate value is decrypted using a sixth encryption key. In some embodiments, the third computing system is part of the first computing system. In some embodiments, at least one of the first computing system or the third computing system is a distributed computing system. In some embodiments, the aggregation operation includes performing a weighting function using the hidden identifier and a time value associated with the hidden identifier to produce the encrypted aggregate value.

[0012] Various aspects and embodiments may be combined where appropriate. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] Figures 1A-1B is a diagram illustrating various entities interacting over a network in accordance with an illustrative embodiment.

[0014] Figure 2 is a diagram illustrating a method of using Figure 1A Diagram of the data transfer and aggregation of the results measurement system.

[0015] Figure 3A is a diagram illustrating a method for Figure 1A Flowchart of a key generation method of a first data processing system.

[0016] Figure 3B is a diagram illustrating a method for Figure 1A Flowchart of a key generation method for a second data processing system.

[0017] Figure 3C is a diagram illustrating a method for Figure 1A Flowchart of a key generation method of a third data processing system.

[0018] Figure 3D is a diagram illustrating a method for Figure 1B Flowchart of a key generation method for a publisher computing system.

[0019] Figures 4A-4B is a diagram illustrating a method according to an illustrative embodiment. Figures 1A-1B A flowchart of a method for secure delivery and aggregation of interactive points in a system.

[0020] Figure 5 is a diagram illustrating a method for performing Figure 4B Flowchart of the method for aggregation operation.

[0021] Figure 6 is a diagram illustrating a method according to an illustrative embodiment. Figure 5 A graph of dataset manipulation using aggregation operations.

[0022] Figure 7 is a diagram illustrating a method according to an illustrative embodiment. Figure 5 Another diagram of the aggregation operation for data set manipulation.

[0023] Figure 8 is a diagram illustrating a method according to an illustrative embodiment. Figure 5 Another diagram of the aggregation operation for data set manipulation.

[0024] Figure 9 is a diagram illustrating a method according to an illustrative embodiment. Figure 5 A graph of the Shapley values ​​of the aggregate operation.

[0025] Figure 10 is a diagram illustrating a method according to an illustrative embodiment. Figure 5 The generated graph of the Markov model of the aggregation operation.

[0026] Figure 11 is a diagram illustrating an exemplary embodiment of the present invention. Figure 4B Flowchart of a method of shielding operation.

[0027] Figure 12 is a block diagram of a computing system in accordance with an illustrative embodiment. DETAILED DESCRIPTION

[0028] Various concepts related to methods, apparatus, and systems for aggregating points between interactions in a privacy-aware manner, and implementations thereof, are described in greater detail below. As the described concepts are not limited to any particular implementation, the various concepts introduced above and discussed in greater detail below may be implemented in any of a variety of ways.

[0029] In many areas, it may be necessary or desirable to determine an aggregate number of interactions attributed to a content publisher. For example, multiple content publishers may display multiple content items that users viewed before performing an online interaction, and it may be desirable to determine the number of online interactions associated with each content publisher's content items (e.g., how many users viewed a particular content item before performing an online interaction).

[0030] The systems and methods of the present disclosure generally relate to aggregating multiple interactions associated with a content item and distributing credits among multiple content publishers and / or interaction paths associated with the content item. More specifically, the systems and methods of the present disclosure relate to unique cryptographic and computer architecture methodologies to aggregate data from different entities and distribute credits among the entities in a more secure manner. Typically, aggregating data from different entities requires that the computing system have access to user-specific data. For example, the system can determine an aggregate count by summing the values ​​with matching user identifiers. To avoid leaking personal information, the identity of the user must be hidden and appropriately protected when generating and reporting the data.

[0031] It is desirable to conduct certain analytical activities in a manner that prevents the exposure of personal information. Therefore, a unique cryptographic and computer architecture methodology is needed to more securely aggregate data from different entities. Aspects of the present disclosure provide improved cryptographic methods and computer architectures. These cryptographic methods and architectures can be used to securely associate online interactions with data from content publishers while providing increased security and protecting user privacy.

[0032] To ensure the privacy and security of personal information, the systems and methods of the present disclosure process data to prevent entities (e.g., content providers, third parties, etc.) from receiving personal information. A non-limiting example implementation is as follows: a second data processing system can generate a first public key for asymmetric encryption. A publisher computing system can use the first public key to encrypt a first user identifier. A third data processing system can generate a second public key for homomorphic encryption. An interactive data provider computing system can use the first public key and a value associated with the second public key to encrypt a second user identifier. The first data processing system can receive multiple encrypted first user identifiers from multiple content publishers (e.g., publisher computing systems, etc.). The first data processing system can receive multiple encrypted second user identifiers and associated encryption values ​​from one or more interactive data providers (e.g., interactive data provider computing systems, etc.). The first data processing system can generate a secret key for elliptic curve cryptography and can use the secret key to encrypt the encrypted first user identifier and the second user identifier to generate a double-encrypted first user identifier and the second user identifier. The first data processing system can send the doubly encrypted first and second user identifiers and the associated encrypted values ​​to a second data processing system, which can decrypt the doubly encrypted first and second user identifiers to produce elliptic curve (EC) encrypted first and second user identifiers. The second data processing system can combine the EC-encrypted first and second user identifiers and calculate an encrypted aggregate value associated with each content publisher based on the combined EC-encrypted first and second user identifiers. The second data processing system can send the encrypted aggregate value to a third data processing system, which can decrypt the encrypted aggregate value to recover the aggregate value associated with each content publisher. Thus, the result measurement system (e.g., the first, second, and third data processing systems, etc.) can facilitate the aggregation of interaction data without leaking personal information.

[0033] In some embodiments of the present disclosure, a user may be provided with controls that allow the user to choose whether and when the systems, programs, or features described herein enable user information (e.g., information about the user's social network, social activities or activities, occupation, the user's preferences, or the user's current location) and whether content or communications are sent to the user from the server. In addition, certain data may be processed in one or more ways before being stored or used to remove personally identifiable information. For example, the user's identity may be processed so that the user's personal information cannot be determined or only certain personal information can be determined, or the user's geographic location may be summarized (e.g., to the city, zip code, or state level) when obtaining location information so that the user's specific location cannot be determined. Thus, the user can control what information about the user is collected, how the information is used, and what information is provided to the user.

[0034] Now refer to Figures 1A-1B According to an illustrative embodiment, a system 100 for securely aggregating data from different entities is shown. System 100 includes a result measurement service 102, a publisher computing system 10, and an interactive data provider computing system 30. In various embodiments, result measurement service 102 includes a first data processing system 200, a second data processing system 300, and a third data processing system 400. In various embodiments, components of system 100 communicate via a network 60. Network 60 can include a computer network such as the Internet, a local area network, a wide area network, a metropolitan area network, or other regional network, an intranet, a satellite network, other computer networks (such as voice or data mobile phone communication networks), combinations thereof, or any other type of electronic communication network. Network 60 can include or constitute a display network (e.g., a subset of information resources available on the Internet associated with content delivery or search engine results systems, or a subset of information resources eligible to include third-party content items as part of a content delivery campaign). In various embodiments, network 60 facilitates secure communication between components of system 100. As non-limiting examples, network 60 may implement Transport Layer Security (TLS), Secure Sockets Layer (SSL), Hypertext Transfer Protocol Security (HTTPS), and / or any other secure communication protocol.

[0035] The publisher computing system 10 can host publisher data (such as user identifiers). In various embodiments, the publisher computing system 10 is associated with a publisher (e.g., an online publisher, etc.). In various embodiments, the publisher data is associated with user interactions with publisher content. For example, the publisher data can include a user identifier and a timestamp associated with a user who interacts with publisher content. In some embodiments, the publisher data includes a count of user interactions. In some embodiments, the publisher data includes an interaction classification. For example, the publisher data can include an interaction classification indicating whether a user viewed a content item or interacted with a content item (e.g., clicked on the content item, etc.). In various embodiments, the publisher content can be a marketing item (e.g., an advertisement) associated with a third party.

[0036] Publisher computing system 10 may include a database 12 and processing circuitry 14. Database 12 may store publisher data. For example, after providing a publisher content item to a client device, publisher computing system 10 may store a user identifier associated with the user in database 12. The user identifier may later be used to associate anonymous interaction data. Database 12 may include one or more storage media. The storage media may include, but is not limited to, magnetic storage, optical storage, flash memory, and / or RAM. Publisher computing system 10 may implement or facilitate various APIs to perform database functions (i.e., manage data stored in database 12). The API may be, but is not limited to, SQL, ODBC, JDBC, and / or any other data storage and manipulation API.

[0037] Processing circuitry 14 includes a processor 16 and memory 18. Memory 18 may have instructions stored thereon that, when executed by processor 16, cause processing circuitry 14 to perform the various operations described herein. The operations described herein may be implemented using software, hardware, or a combination thereof. Processor 16 may include a microprocessor, an ASIC, an FPGA, or the like, or a combination thereof. In many embodiments, processor 16 may be a multi-core processor or a processor array. Processor 16 may implement or facilitate a secure environment. For example, processor 16 may implement Software Guard Extensions (SGX) to define dedicated areas (e.g., enclaves) within memory 18. Memory 18 may include, but is not limited to, electronic, optical, magnetic, or any other storage device capable of providing program instructions to processor 16. Memory 18 may include a floppy disk, CD-ROM, DVD, magnetic disk, memory chip, ROM, RAM, EEPROM, EPROM, flash memory, optical media, or any other suitable memory from which processor 16 can read instructions. The instructions may include code from any suitable computer programming language, such as, but not limited to, C, C++, C#, Java, JavaScript, Perl, HTML, XML, Python, and Visual Basic.

[0038] Memory 18 may include a first encryption circuit 20, a second encryption circuit 22, and a decryption circuit 24. In the illustrated embodiment, circuits 20, 22, and 24 may be implemented using computer-readable or machine-readable instructions stored in memory 18. In other embodiments, circuits 20, 22, and 24 may be discrete hardware circuits or implemented using a combination of hardware and software. First encryption circuit 20 may perform one or more encryption functions on input data to generate encrypted data. In some embodiments, first encryption circuit 20 implements asymmetric encryption functions. In various embodiments, first encryption circuit 20 implements the ElGamal (EG) encryption protocol. For example, first encryption circuit 20 may encrypt a user identifier using an EG public key received from second data processing system 300. In various embodiments, first encryption circuit 20 implements exchange encryption. For example, first encryption circuit 20 may implement EG encryption to facilitate doubly encrypted values ​​(e.g., a single value encrypted using two different encryption schemes). In various embodiments, first encryption circuit 20 facilitates random encryption. For example, the first encryption circuit 20 may encrypt a first value using a first key to produce a first encryption result, and may encrypt the first value again using the first key to produce a second encryption result that is different from the first encryption result (e.g., produces a different ciphertext). In various embodiments, the first encryption circuit 20 facilitates re-randomization.

[0039] The second encryption circuit 22 can perform one or more encryption functions on the input data to generate encrypted data. In some embodiments, the second encryption circuit 22 performs asymmetric encryption functions. In various embodiments, the second encryption circuit 22 generates encryption keys. For example, the second encryption circuit 22 can generate a public key and a secret key. In some embodiments, the second encryption circuit 22 shares encryption keys with other components of the system 100 (e.g., the second data processing system 300, etc.). For example, the second encryption circuit 22 can generate a public key and send the public key to the second data processing system 300. In various embodiments, the second encryption circuit 22 performs the exchange encryption described above with reference to the first encryption circuit 20.

[0040] Decryption circuitry 24 can receive encrypted data and decrypt it to produce unencrypted data. In various embodiments, decryption circuitry 24 receives encrypted data from third data processing system 400. Decryption circuitry 24 can decrypt asymmetrically encrypted data. Additionally or alternatively, decryption circuitry 24 can decrypt symmetrically and / or threshold-encrypted data. In various embodiments, decryption circuitry 24 receives one or more secrets (e.g., a secret key, etc.) from second encryption circuitry 22. For example, decryption circuitry 24 can receive a secret key from second encryption circuitry 22 and use the secret key to decrypt encrypted data received from third data processing system 400.

[0041] The interaction data provider computing system 30 can host interaction data, such as user identifiers and / or values. In various embodiments, the interaction data provider computing system 30 is associated with an interaction data provider (e.g., a merchant, an interaction data clearinghouse, etc.). In various embodiments, the interaction data is associated with a user's commercial activity (e.g., a purchase, etc.). For example, the interaction data can include a user identifier of a user performing an online transaction. In various embodiments, the interaction data can include a timestamp and / or value associated with the interaction. In some embodiments, the interaction data includes an interaction classification. For example, the interaction data can include an interaction classification indicating the type of interaction (e.g., a website visit, a purchase, etc.). In various embodiments, the interaction data can be associated with the publisher data described with reference to the publisher computing system 10. For example, the interaction data can include a user identifier that overlaps with a portion of the user identifiers in the publisher data.

[0042] The interactive data provider computing system 30 may include a database 32 and processing circuitry 34. The database 32 may store interaction data. For example, upon detecting a user interaction, the interactive data provider computing system 30 may store a user identifier associated with the user in the database 32. The user identifier may later be used to associate anonymous interaction data. The database 32 may include one or more storage media. The storage media may include, but is not limited to, magnetic storage, optical storage, flash memory, and / or RAM. The interactive data provider computing system 30 may implement or facilitate various APIs to perform database functions (i.e., manage data stored in the database 32). These APIs may be, but are not limited to, SQL, ODBC, JDBC, and / or any other data storage and manipulation APIs.

[0043] Processing circuitry 34 includes a processor 36 and a memory 38. Memory 38 may have instructions stored thereon that, when executed by processor 36, cause processing circuitry 34 to perform the various operations described herein. The operations described herein may be implemented using software, hardware, or a combination thereof. Processor 36 may include a microprocessor, an ASIC, an FPGA, or the like, or a combination thereof. In many embodiments, processor 36 may be a multi-core processor or a processor array. Processor 36 may implement or facilitate the secure environment described above. Memory 38 may include, but is not limited to, electronic, optical, magnetic, or any other storage device capable of providing program instructions to processor 36. Memory 38 may include a floppy disk, CD-ROM, DVD, magnetic disk, memory chip, ROM, RAM, EEPROM, EPROM, flash memory, optical media, or any other suitable memory from which processor 36 can read instructions. Instructions may include code from any suitable computer programming language, such as, but not limited to, C, C++, C#, Java, JavaScript, Perl, HTML, XML, Python, and Visual Basic.

[0044] Memory 38 may include first encryption circuitry 40 and second encryption circuitry 42. First encryption circuitry 40 may perform one or more encryption functions on input data to generate encrypted data. In some embodiments, first encryption circuitry 40 performs asymmetric encryption functions. In various embodiments, first encryption circuitry 40 performs (EG) encryption. For example, first encryption circuitry 40 may encrypt a user identifier using an EG public key received from second data processing system 300. In various embodiments, first encryption circuitry 40 facilitates various encryption functions (e.g., interchangeability, re-randomization, etc.) as described with reference to first encryption circuitry 20.

[0045] The second encryption circuit 42 may perform one or more encryption functions on the input data to generate encrypted data. In some embodiments, the second encryption circuit 42 performs asymmetric encryption functions. For example, the second encryption circuit 42 may implement a homomorphic cryptosystem. In some embodiments, the second encryption circuit 42 performs additive encryption functions. For example, the second encryption circuit 42 may implement additive homomorphic encryption (AHE). In various embodiments, the second encryption circuit 42 implements the exponential ElGamal (EEG) protocol. Additionally or alternatively, the second encryption circuit 42 may implement a Paillier cryptosystem and / or Ring-LWE-based encryption. In some embodiments, the second encryption circuit 42 performs symmetric encryption functions. In various embodiments, the second encryption circuit 42 encrypts values ​​using an AHE public key received from the third data processing system 400. In some embodiments, the second encryption circuit 42 facilitates homomorphic scalar multiplication. In various embodiments, the second encryption circuit 42 facilitates various cryptographic functions (e.g., commutativity, re-randomization, etc.) as described with reference to the first encryption circuit 20.

[0046] Now specific reference Figure 1A , the first data processing system 200 can facilitate the processing of publisher data and / or interaction data. In various embodiments, the first data processing system 200 receives data and processes the data to generate processed data (e.g., data without or with less personal information, etc.). In some embodiments, the first data processing system 200 generates differentially private data. In some embodiments, the first data processing system 200 generates encryption keys. For example, the first data processing system 200 can collaborate with the second data processing system 300 to generate an EG public key. The first data processing system 200 can be a server, a distributed processing cluster, a cloud processing system, or any other computing device. The first data processing system 200 can include or execute at least one computer program or at least one script. In some embodiments, the first data processing system 200 includes a combination of software and hardware, such as one or more processors configured to execute one or more scripts.

[0047] The first data processing system 200 is shown as including a database 210 and processing circuitry 220. The database 210 can store data received from the publisher computing system 10 and / or the interactive data provider computing system 30. For example, the database 210 can store an encrypted first identifier from the publisher computing system 10 and / or an encrypted second identifier and / or an encrypted value from the interactive data provider computing system 30. The database 210 can include various storage media as described with reference to the databases 12 and 32.

[0048] Processing circuitry 220 includes a processor 230 and a memory 240. Memory 240 may have instructions stored thereon that, when executed by processor 230, cause processing circuitry 220 to perform various operations described herein. Processing circuitry 220, processor 230, and / or memory 240 may be similar to processing circuitry 14 and 34, processors 16 and 36, and / or memories 18 and 38, as described above. Memory 240 may include a first encryption circuit 242, a second encryption circuit 244, a decryption circuit 246, and a randomization circuit 248.

[0049] The first encryption circuit 242 can perform one or more encryption functions on the input data to generate encrypted data. In some embodiments, the first encryption circuit 242 performs an asymmetric encryption function (e.g., EG). In some embodiments, the first encryption circuit 242 performs EG encryption on an elliptic curve. For example, the first encryption circuit 242 can perform EG encryption on the elliptic curve used by the second encryption circuit 244 to perform EC encryption. In various embodiments, the first encryption circuit 242 generates an encryption key. For example, the first encryption circuit 242 can generate a public key and a secret key. In some embodiments, the first encryption circuit 242 collaborates with the second data processing system 300 to generate the EG public key. In some embodiments, the first encryption circuit 242 shares the encryption key (or a portion thereof) with other components of the system 100 (e.g., the publisher computing system 10, the interactive data provider computing system 30, etc.). For example, the first encryption circuit 242 can collaborate with the second data processing system 300 to generate the EG public key and send the EG public key to the publisher computing system 10 and / or the interactive data provider computing system 30. In various embodiments, the first cryptographic circuit 242 facilitates various cryptographic functions (eg, exchangeability, re-randomization, etc.) as described with reference to the first cryptographic circuit 20 .

[0050] The second encryption circuit 244 may perform one or more encryption functions on the input data to generate encrypted data. In various embodiments, the second encryption circuit 244 implements symmetric encryption functions. For example, the second encryption circuit 244 may implement elliptic curve (EC) encryption. Additionally or alternatively, the second encryption circuit 244 may implement any cryptographic system that assumes the deterministic Diffie-Hellman (DDH) problem is computationally intractable, such that the multiplicative group of quadratic residues is modulo a safe prime number. In some embodiments, the second encryption circuit 244 implements asymmetric encryption functions. In various embodiments, the second encryption circuit 244 generates an encryption key. For example, the second encryption circuit 244 may generate an EC secret key. In some embodiments, the second encryption circuit 244 collaborates with other second encryption circuits 244 to generate multiple EC secret keys (e.g., for collaborative encryption, etc.). In various embodiments, the second encryption circuit 244 utilizes the EC secret key to encrypt an identifier. In various embodiments, the second encryption circuit 244 implements deterministic encryption. For example, the second encryption circuit 244 may encrypt a first value using a first key to produce a first encrypted result, and may encrypt the first value again using the first key to produce a second encrypted result that is identical to the first encrypted result. In various embodiments, the second encryption circuit 244 facilitates generating encrypted data that can be used to compare for equality (e.g., comparing two values ​​encrypted using the same key, etc.).

[0051] In various embodiments, the second encryption circuit 244 facilitates various cryptographic functions (e.g., interchangeability, re-randomization, etc.) as described with reference to the first encryption circuit 20. In some embodiments, the second encryption circuit 244 facilitates collaborative encryption. For example, multiple second encryption circuits 244 can work together to encrypt a data item (e.g., each adding a portion of encryption, etc.).

[0052] The decryption circuitry 246 can receive encrypted data and decrypt it to produce unencrypted data. In various embodiments, the decryption circuitry 246 receives encrypted data from the publisher computing system 10 and / or the interactive data provider computing system 30. For example, the decryption circuitry 246 can receive an encrypted first identifier from the publisher computing system 10 and / or an encrypted second identifier from the interactive data provider computing system 30. The decryption circuitry 246 can decrypt asymmetrically encrypted data. Additionally or alternatively, the decryption circuitry 246 can decrypt symmetrically and / or threshold-encrypted data. In various embodiments, the decryption circuitry 246 receives one or more secrets (e.g., a secret key, etc.) from the first encryption circuitry 242. For example, the decryption circuitry 246 can receive a secret key (e.g., an EG secret key, etc.) from the first encryption circuitry 242 and use the secret key to at least partially decrypt encrypted data received from the publisher computing system 10 and / or the interactive data provider computing system 30.

[0053] Randomization circuitry 248 can receive data and perform various randomization functions to generate randomized data. As non-limiting examples, randomization circuitry 248 can facilitate the removal of implicit / indirect identifiers (e.g., arrival time, order, originating IP address, etc.), perform batching operations, introduce noise, and / or perform any other anonymization operations. In various embodiments, randomization circuitry 248 shuffles (e.g., rearranges, changes its order, etc.) the received data to generate shuffled data. In some embodiments, randomization circuitry 248 applies one or more hash functions to the input data to generate hashed data. For example, randomization circuitry 248 can implement SHA-2, Scrypt, Balloon, and / or Argon2 hash functions. In some embodiments, randomization circuitry 248 facilitates re-randomization of ciphertext by applying subsequent encryption rounds. For example, randomization circuitry 248 can re-randomize an EG encrypted value by encrypting it a second time using the same key used to encrypt it the first time.

[0054] The second data processing system 300 can facilitate securely associating data from different entities. In various embodiments, the second data processing system 300 receives encrypted publisher data and / or encrypted interaction data, and processes the received data to generate aggregated interaction data (e.g., aggregate values, etc.). For example, the second data processing system 300 can perform an aggregation operation to combine user identifiers, determine an aggregate value associated with the interaction, and distribute points among the various publishers. The second data processing system 300 may include or execute at least one computer program or at least one script. In some embodiments, the second data processing system 300 includes a combination of software and hardware, such as one or more processors configured to execute one or more scripts.

[0055] Second data processing system 300 is shown as including processing circuitry 310 having a processor 320 and memory 330. Memory 330 may have instructions stored thereon that, when executed by processor 320, cause processing circuitry 310 to perform various operations described herein. Processing circuitry 310, processor 320, and / or memory 330 may be similar to processing circuitry 14 and 34, processors 16 and 36, and / or memory 18 and 38, as described above. Memory 330 may include a first encryption circuitry 332, a second encryption circuitry 334, a decryption circuitry 336, and an analysis circuitry 338.

[0056] The first encryption circuit 332 can perform one or more encryption functions on the input data to generate encrypted data. In some embodiments, the first encryption circuit 332 performs an asymmetric encryption function (e.g., EG, etc.). In some embodiments, the first encryption circuit 332 performs EG encryption on an elliptic curve. For example, the first encryption circuit 332 can perform EG encryption on the elliptic curve used by the second encryption circuit 244 to perform EC encryption. In various embodiments, the first encryption circuit 332 is similar to the first encryption circuit 242. In some embodiments, the first encryption circuit 332 generates an encryption key. For example, the first encryption circuit 332 can generate a public key (e.g., an EG public key) and a secret key (e.g., an EG secret key). In some embodiments, the first encryption circuit 332 collaborates with the first data processing system 200 to generate the EG public key. In some embodiments, the first encryption circuit 332 shares the encryption key (or a portion thereof) with other components of the system 100 (e.g., the publisher computing system 10, the interactive data provider computing system 30, etc.). In various embodiments, the first cryptographic circuit 332 facilitates various cryptographic functions (eg, exchangeability, re-randomization, etc.) as described with reference to the first cryptographic circuit 20 .

[0057] The second encryption circuit 334 can perform one or more encryption functions on the input data to generate encrypted data. In some embodiments, the second encryption circuit 334 implements an asymmetric encryption function. For example, the second encryption circuit 334 can implement the Rivest-Shamir-Adleman (RSA) cryptographic system. As an additional example, the second encryption circuit 334 can use a public key received from the publisher computing system 10 to encrypt a random value. In various embodiments, the second encryption circuit 334 implements a shielding operation. For example, the second encryption circuit 334 can shield the encrypted aggregate value to generate an encrypted shielded aggregate value. Figure 11 The shielding operation is described in more detail.

[0058] Decryption circuitry 336 can receive encrypted data and decrypt it to produce unencrypted data. In various embodiments, decryption circuitry 336 receives encrypted data from first data processing system 200. For example, decryption circuitry 336 can receive encrypted first and second identifiers from first data processing system 200. Decryption circuitry 336 can decrypt asymmetrically encrypted data. Additionally or alternatively, decryption circuitry 336 can decrypt symmetrically and / or threshold-encrypted data. In various embodiments, decryption circuitry 336 receives one or more secrets (e.g., a secret key, etc.) from first encryption circuitry 332. For example, decryption circuitry 336 can receive a secret key (e.g., an EG secret key, etc.) from first encryption circuitry 332 and use the secret key to at least partially decrypt encrypted data received from first data processing system 200.

[0059] The analysis circuitry 338 may receive anonymous (e.g., encrypted, etc.) publisher data and / or interaction data and generate aggregated interaction data (e.g., aggregate values, etc.). In various embodiments, the analysis circuitry 338 performs statistical operations on the received data to generate statistical measurements describing the received data. For example, the analysis circuitry 338 may determine an aggregate value associated with a publisher's online interactions. In various embodiments, the analysis circuitry 338 facilitates combining user identifiers. For example, the analysis circuitry 338 may combine a first user identifier from the publisher data with a second user identifier from the interaction data. In various embodiments, the analysis circuitry 338 facilitates combining encrypted identifiers to protect user privacy. In some embodiments, the analysis circuitry 338 facilitates distributing points among publishers associated with the online interactions.

[0060] The third data processing system 400 can facilitate the secure distribution of aggregated interaction data (e.g., aggregated values, etc.) generated by the second data processing system 300. For example, the third data processing system 400 can receive an encrypted, masked aggregated value from the second data processing system 300, decrypt the encrypted, masked aggregated value to generate the masked aggregated value, and send the masked aggregated value to one or more publishers. The third data processing system 400 can include or execute at least one computer program or at least one script. In some embodiments, the third data processing system 400 includes a combination of software and hardware, such as one or more processors configured to execute one or more scripts.

[0061] Third data processing system 400 is shown as including processing circuitry 410 having a processor 420 and memory 430. Memory 430 may have instructions stored thereon that, when executed by processor 420, cause processing circuitry 410 to perform various operations described herein. Processing circuitry 410, processor 420, and / or memory 430 may be similar to processing circuitry 14 and 34, processors 16 and 36, and / or memory 18 and 38, as described above. Memory 430 may include encryption circuitry 432, randomization circuitry 434, and decryption circuitry 436.

[0062] The encryption circuit 432 can perform one or more encryption functions on the input data to generate encrypted data. In some embodiments, the encryption circuit 432 performs asymmetric encryption functions (e.g., EG, AHE, etc.). In various embodiments, the encryption circuit 432 is similar to the second encryption circuit 42. In some embodiments, the encryption circuit 432 generates encryption keys. For example, the encryption circuit 432 can generate a public key (e.g., an AHE public key) and a secret key (e.g., an AHE secret key). In some embodiments, the encryption circuit 432 shares encryption keys with other components of the system 100 (e.g., the interactive data provider computing system 30, etc.). In various embodiments, the encryption circuit 432 facilitates various cryptographic functions (e.g., addition, scalar multiplication, etc.) as described with reference to the second encryption circuit 42.

[0063] Randomization circuitry 434 can receive data and perform various randomization functions to generate randomized data. In various embodiments, randomization circuitry 434 is similar to randomization circuitry 248. In some embodiments, randomization circuitry 434 facilitates re-randomization of ciphertext by applying subsequent encryption rounds. For example, randomization circuitry 434 can re-randomize an AHE-encrypted value by encrypting the AHE-encrypted value a second time using the same key used to encrypt the AHE-encrypted value the first time.

[0064] Decryption circuitry 436 can receive encrypted data and decrypt it to produce unencrypted data. In various embodiments, decryption circuitry 436 receives encrypted data from second data processing system 300. For example, decryption circuitry 436 can receive an encrypted aggregate value and / or an encrypted masked aggregate value from second data processing system 300. Decryption circuitry 436 can decrypt asymmetrically encrypted data. Additionally or alternatively, decryption circuitry 436 can decrypt symmetrically and / or threshold-encrypted data.

[0065] In various embodiments, decryption circuitry 436 receives one or more secrets (e.g., a secret key, etc.) from encryption circuitry 432. For example, decryption circuitry 436 can receive a secret key (e.g., an AHE secret key, etc.) from encryption circuitry 432 and use the secret key to at least partially decrypt encrypted data received from second data processing system 300. In some embodiments, decryption circuitry 436 facilitates collaborative decryption. For example, multiple decryption circuits 436 can work together to decrypt an encrypted data item (e.g., each removing a portion of the encryption, etc.).

[0066] Now refer to Figure 2 According to an illustrative embodiment, an improved computer architecture for securely transmitting data from different entities and determining aggregated interaction data is shown. Briefly, a publisher associated with a publisher computing system 10 can provide content items to users using client devices (e.g., smartphones, computers, etc.). In some embodiments, the content items are specific to a particular user. An interaction data provider associated with an interaction data provider computing system 30 can detect when a user interacts with a content item. For example, a user displayed a video can click on the video. It is desirable to measure user interactions with the content item. For example, a publisher providing a video may wish to know how many users clicked on the video. Additionally or alternatively, as a result of a user's interaction with the content item, the user may interact with other content provided by the publisher. For example, a user displayed a video may later visit a website maintained by the publisher to purchase an item featured in the video. In some embodiments, the interaction is or is associated with an online conversion. In various embodiments, measuring user interactions with the content item requires comparing information from the publisher (e.g., publisher data, etc.) with information from the interaction data provider (e.g., interaction data, etc.). Therefore, there is a need for a system that securely and anonymously measures user interactions with online content without revealing personal information. The novel cryptography and computer architecture described herein facilitate securely and anonymously measuring user interactions with online content without revealing personal information.

[0067] At step 502, the first data processing system 200 and the second data processing system 300 collaboratively generate an EG public key. In some embodiments, the second data processing system 300 independently generates the EG public key. In some embodiments, multiple first data processing systems 200 and second data processing systems 300 collaboratively generate the EG public key. In various embodiments, the EG public key is generated by performing EG encryption on an elliptic curve.

[0068] At step 504, the first data processing system 200 transmits the EG public key to the publisher computing system 10 and the interactive data provider computing system 30. Additionally or alternatively, the second data processing system 300 may transmit the EG public key to the publisher computing system 10 and / or the interactive data provider computing system 30. For example, the first data processing system 200 and the second data processing system 300 may send the EG public key to the publisher computing system 10 and the interactive data provider computing system 30, respectively, which may verify that the keys received from the first data processing system 200 and the second data processing system 300 are the same.

[0069] In step 506, the third data processing system 400 transmits the AHE public key to the publisher computing system 10 and the interaction data provider computing system 30. In step 508, the publisher computing system 10 and the interaction data provider computing system 30 transmit the data to the first data processing system 200. In various embodiments, the data is encrypted. For example, a portion of the data may be encrypted using the EG public key, and a portion of the data may be encrypted using the AHE public key. In various embodiments, the publisher computing system 10 transmits encrypted publisher data, and the interaction data provider computing system 30 transmits encrypted interaction data. In various embodiments, the encrypted publisher data includes a first encrypted identifier. In some embodiments, the publisher data includes a timestamp and / or interaction count. In various embodiments, the encrypted interaction data includes a second encrypted identifier and an encrypted value. In some embodiments, the interaction data includes a timestamp and / or trending data. In various embodiments, the first and second encrypted identifiers may be encrypted using the EG public key, and the encrypted value may be encrypted using the AHE public key.

[0070] At step 510, the first data processing system 200 transmits data to the second data processing system 300. In various embodiments, the data is encrypted. For example, a portion of the data may have a first encryption layer with an EC secret key and a second encryption layer with an EG public key, and a portion of the data may have an encryption layer with an AHE public key. In various embodiments, the data includes encrypted publisher data and encrypted interaction data.

[0071] In step 512, the second data processing system 300 transmits the data to the third data processing system 400. In various embodiments, the data is encrypted. For example, the data can be encrypted using an AHE public key. In some embodiments, the data is masked. For example, the data can have a random integer appended. In various embodiments, the data includes an encrypted aggregate value. In some embodiments, the data includes encrypted publisher points associated with one or more publishers. In various embodiments, the third data processing system 400 can transmit the publisher points to one or more publishers (e.g., publisher computing system 10, etc.).

[0072] Now refer to Figures 3A-3D , according to an illustrative embodiment, a key generation process 600 is shown. In various embodiments, the key generation process 600 (or elements thereof) occurs continuously. For example, the system 100 may perform the key generation process 600 for each new data set processed. In some embodiments, the key generation process 600 occurs periodically. For example, the system 100 may perform the key generation process 600 hourly, daily, weekly, etc. With specific reference now to Figure 3A According to an illustrative embodiment, a key generation process 600 for a first data processing system 200 is shown. In step 602, the first data processing system 200 collaborates with the second data processing system 300 to generate a first public key. Additionally or alternatively, multiple first data processing systems 200 may collaborate with the second data processing system 300 to generate the first public key. For example, the first data processing system 200 may be a distributed processing system, and multiple distributed components of the first data processing system 200 may collaborate with the second data processing system 300 to generate the first public key. As another example, multiple replicas of the first data processing system 200 may collaborate with the second data processing system 300 to generate the first public key. In various embodiments, the first public key is an EG public key. For example, the first public key may be a public key generated by performing EG encryption on an elliptic curve. In some embodiments, step 602 is omitted, and the second data processing system 300 generates the first public key independently.

[0073] In step 604, the first data processing system 200 generates a first secret key associated with the first public key. In various embodiments, the first secret key is an EG secret key. In some embodiments, the first data processing system 200 generates multiple first secret keys. For example, the first data processing system 200 may be a distributed processing system that collaborates with the second data processing system 300 to generate the first public key, and the multiple distributed components of the first data processing system 200 may each generate its own first secret key. In various embodiments, the first secret key and the first public key form a key pair. In some embodiments, step 604 is omitted, and the second data processing system 300 generates the first public key independently.

[0074] In step 606, the first data processing system 200 generates a second secret key. In various embodiments, the second secret key is an EC secret key. For example, the second secret key may be generated by performing EC encryption on an elliptic curve. In various embodiments, the elliptic curve used to generate the second secret key is the same as or similar to the elliptic curve used to generate the first public key in step 602 above. In some embodiments, the first data processing system 200 generates multiple second secret keys. For example, the first data processing system 200 may be a distributed processing system, and multiple distributed components of the first data processing system 200 may each generate their own second secret key.

[0075] Now specific reference Figure 3B According to an illustrative embodiment, a key generation process 600 for a second data processing system 300 is shown. At step 608, the second data processing system 300 collaborates with the first data processing system 200 to generate a first public key. In various embodiments, the first public key is an EG public key. In various embodiments, the first public key is generated by performing EG encryption on the same elliptic curve used to generate the second secret key described above in step 606. In some embodiments, the second data processing system 300 collaborates with multiple first data processing systems 200 to generate the first public key. Additionally or alternatively, the second data processing system 300 may independently generate the first public key.

[0076] At step 610, the second data processing system 300 generates a third secret key associated with the first public key. In various embodiments, the third secret key is an EG secret key. In various embodiments, the third secret key and the first public key are a key pair.

[0077] Now specific reference Figure 3C, according to an illustrative embodiment, a key generation process 600 for a third data processing system 400 is shown. At step 612, the third data processing system 400 generates a second public key. In various embodiments, the second public key is an AHE public key. In some embodiments, the third data processing system 400 generates multiple second public keys. For example, the third data processing system 400 may be a distributed processing system, and multiple distributed components of the third data processing system 400 may each generate their own second public key.

[0078] At step 614, the third data processing system 400 generates a fourth secret key associated with the second public key. In various embodiments, the fourth secret key is an AHE secret key. In some embodiments, the third data processing system 400 generates multiple fourth secret keys. For example, the third data processing system 400 may be a distributed processing system, and multiple distributed components of the third data processing system 400 may each generate their own fourth secret key. In various embodiments, the fourth secret key and the second public key form a key pair.

[0079] Now specific reference Figure 3D , according to an illustrative embodiment, a key generation process 600 for a publisher computing system 10 is shown. In some embodiments, the publisher computing system 10 does not generate any keys. At step 616, the publisher computing system 10 generates a third public key. In various embodiments, the third public key is an asymmetric encryption public key. In some embodiments, multiple publishers can generate multiple third public keys, each third public key corresponding to one of the multiple publishers. In some embodiments, step 616 includes generating multiple third public keys, each third public key for a different interaction flow (e.g., mobile, web, etc.).

[0080] At step 618, publisher computing system 10 generates a fifth secret key associated with the third public key. In various embodiments, the fifth secret key is an asymmetric encryption secret key. In various embodiments, the fifth secret key and the third public key are a key pair.

[0081] Now refer to Figures 4A-4B , according to an illustrative embodiment, a method 700 for securely transmitting and associating interaction data is shown. In step 702, the system 100 performs a key generation process. In various embodiments, the key generation process may be performed as described above with reference to FIG. Figures 3A-3DThe key generation process is performed as described in detail. In step 710, the publisher computing system 10 encrypts the first identifier using the first public key. In various embodiments, the first public key is the EG public key received from the second data processing system 300. In various embodiments, the first identifier is a user identifier of a user who interacted with the publisher content (e.g., viewed an advertisement, clicked a link, etc.). In step 712, the publisher computing system 10 transmits data to the first data processing system 200. In various embodiments, the data includes the encrypted first identifier. For example, the data may include the first identifier encrypted using the EG public key from the second data processing system 300. In some embodiments, the data includes a timestamp and / or an amount.

[0082] In step 720, the interaction data provider computing system 30 encrypts the second identifier using the first public key. In various embodiments, the first public key is an EG public key. In various embodiments, the second identifier is a user identifier of a user who completed an online interaction (e.g., a purchase, etc.). In step 722, the interaction data provider computing system 30 encrypts a value using the second public key. In various embodiments, the second public key is an AHE public key received from the third data processing system 400. In various embodiments, the value is a value associated with the online interaction completed by the user (e.g., a purchase amount, etc.). In step 724, the interaction data provider computing system 30 transmits data to the first data processing system 200. In various embodiments, the data includes the encrypted second identifier and the encrypted value. For example, the data may include the second identifier encrypted using the EG public key from the second data processing system 300 and the value encrypted using the AHE public key from the third data processing system 400. In some embodiments, the data includes a timestamp and / or trending data.

[0083] In step 730, the first data processing system 200 receives the encrypted first identifier from the publisher computing system 10 and the encrypted second identifier and the encrypted value from the interactive data provider computing system 30. In some embodiments, the first data processing system 200 receives additional information (e.g., a timestamp, quantity, trending data, etc.). In step 732, the first data processing system 200 removes the encrypted first portion from the encrypted first and second identifiers using the first secret key to generate partially encrypted first and second identifiers. In various embodiments, the first secret key is an EG secret key generated by the first data processing system 200. For example, the first data processing system 200 and the second data processing system 300 can collaboratively generate an EG public key that requires a first EG secret key from the first data processing system 200 and a second EG secret key from the second data processing system 300 for decryption. In some embodiments, step 732 is omitted, and the second data processing system 300 alone removes the EG encryption. Additionally or alternatively, multiple first data processing systems 200 can collaboratively remove the encrypted first portion from the first and second identifiers. For example, the plurality of first data processing systems 200 and the second data processing system 300 may collaboratively generate an EG public key that requires decryption using a first number of EG secret keys from each of the plurality of first data processing systems 200 and a second EG secret key from the second data processing system 300. In various embodiments, the encrypted first portion is an EG encrypted portion that can be removed by the first EG secret key.

[0084] In step 734, the first data processing system 200 encrypts the partially encrypted first and second identifiers using the second secret key to produce obfuscated encrypted first and second identifiers. In various embodiments, the second secret key is an EC secret key generated by the first data processing system 200. In various embodiments, the obfuscated encrypted first and second identifiers have a first partial layer of EG encryption and a second layer of EC encryption. In step 736, the first data processing system 200 performs a randomization operation on at least some of the obfuscated encrypted first identifiers and / or the obfuscated encrypted second identifiers. For example, the randomization operation may include re-randomizing the encrypted ciphertext. In step 738, the first data processing system 200 transmits data to the second data processing system 300. In various embodiments, the data includes the obfuscated encrypted first and second identifiers and the encrypted value. In some embodiments, the data includes additional information (e.g., a timestamp, an amount, trend data, etc.).

[0085] At step 740, the second data processing system 300 receives the obfuscated encrypted first and second identifiers and the encrypted value from the first data processing system 200. In some embodiments, the second data processing system 300 receives additional information (e.g., a timestamp, a quantity, trend data, etc.). At step 742, the second data processing system 300 decrypts the obfuscated encrypted first and second identifiers using a third secret key to produce obfuscated first and second identifiers. In various embodiments, step 742 includes removing a second portion of the EG encryption corresponding to the EG secret key maintained by the second data processing system 300. In some embodiments, the second data processing system 300 removes the entire EG encryption itself (e.g., without requiring the first data processing system 200). In various embodiments, the obfuscated first and second identifiers are EC-encrypted first and second identifiers.

[0086] At step 750, the second data processing system 300 performs an aggregation operation using the obfuscated first and second identifiers and the encrypted value to produce an encrypted aggregate value. In various embodiments, the aggregation operation includes combining the obfuscated first and second identifiers and assigning a score associated with the encrypted value. Figure 5-10 The aggregation operation is described in more detail. In various embodiments, the encrypted aggregate value is a value amount associated with a particular publisher and / or interaction path. In various embodiments, the encrypted aggregate value includes multiple value amounts (e.g., each value amount is associated with a different publisher and / or interaction path, etc.). In various embodiments, the encrypted aggregate value is encrypted using AHE encryption.

[0087] At step 760, the second data processing system 300 performs a masking operation on the encrypted aggregate value to generate an encrypted masked aggregate value. In some embodiments, the masking operation includes appending a random integer. Figure 11 The shielding operation is described in more detail. In some embodiments, step 760 is omitted. In step 744, the second data processing system 300 transmits the encrypted shielded aggregate value to the third data processing system 400. In various embodiments, the encrypted shielded aggregate value may include multiple values ​​(e.g., each value is associated with a different publisher and / or interaction path, etc.).

[0088] In step 770, the third data processing system 400 receives the encrypted masked aggregate value from the second data processing system 300. In various embodiments, the encrypted masked aggregate value includes multiple values ​​as described above. In step 722, the third data processing system 400 decrypts the encrypted masked aggregate value using the fourth secret key to generate a masked aggregate value. In various embodiments, the fourth secret key is an AHE secret key generated by the third data processing system 400. In various embodiments, the masked aggregate value is an aggregate value appended with a random integer. In step 774, the third data processing system 400 transmits the masked aggregate value to the publisher computing system 10. In some embodiments, step 774 includes transmitting multiple masked aggregate values. For example, the third data processing system 400 may transmit multiple masked aggregate values, each associated with a different interaction path and / or a different publisher.

[0089] Now refer to Figure 5-10 , step 750 is shown in greater detail according to an illustrative embodiment. In various embodiments, the second data processing system 300 performs step 750. In step 752, the second data processing system 300 combines the obfuscated first and second identifiers. In various embodiments, combining the obfuscated first and second identifiers includes comparing the ciphertexts of the obfuscated first and second identifiers. For example, an obfuscated first identifier having the ciphertext "svf414fal20" can be combined (e.g., matched, etc.) with an obfuscated second identifier having the ciphertext "svf414fal20". In various embodiments, step 752 includes grouping the data into rows by the obfuscated identifiers.

[0090] In step 754, the second data processing system 300 distributes the points among the publishers. Additionally or alternatively, the second data processing system 300 may distribute the points among the interaction paths. In various embodiments, step 754 includes calculating a function across rows to distribute the points. Figure 6-10Step 754 is described in more detail. In various embodiments, points are allocated based on rule-based attribution. For example, the second data processing system 300 can be based on a first impression scheme (e.g., the first interaction receives all points), a last impression scheme (e.g., the last interaction receives all points), a linear / same weight scheme (e.g., each interaction and / or publisher receives the same portion of the points), a position scheme (e.g., the first and / or last interaction receives the first portion of the points, while the remaining interactions receive the same portion of the remaining said points), a time decay scheme (e.g., similar to linear / same weight, but includes a penalty associated with earlier interactions), a custom scheme, and the like. In some embodiments, points are allocated based on Shapley values. In some embodiments, points are allocated based on a multivariate Markov model (MMM). In step 756, the second data processing system 300 performs a summation to produce an encrypted aggregate value. In some embodiments, step 756 produces multiple value amounts. In various embodiments, step 756 includes aggregating along each column.

[0091] Now specific reference Figure 6 , illustrating data set operations according to illustrative embodiments. In various embodiments, the second data processing system 300 may include publisher data 810 and interaction data 820. In various embodiments, publisher data 810 includes a first identifier 814. First identifier 814 may be EC-encrypted. In some embodiments, first identifier 814 is a device identifier. Additionally or alternatively, first identifier 814 may be or include another identifier, such as an identifier associated with a user account. First identifier 814 is illustrated as a number, but it should be understood that first identifier 814 may be alphanumeric. In various embodiments, first identifier 814 is associated with publisher identifier 812. Publisher identifier 812 may identify the source of the associated first identifier 814. In some embodiments, publisher data includes an interaction path identifier. In various embodiments, interaction data 820 includes a second identifier 822 and a value 824. Second identifier 822 may be EC-encrypted. Value 824 may be AHE-encrypted. As described above, the second identifier 822 and the value 824 are shown as a name and a dollar amount, respectively, but it should be understood that the second identifier 822 and the value 824 are alphanumeric ciphertext. In various embodiments, the value 824 is associated with the second identifier 822. In various embodiments, the second identifier 822 is associated with the first identifier 814. In various embodiments, the publisher data 810 and / or the interaction data 820 are unstructured data (e.g., unsorted, etc.) when received by the second data processing system 300.

[0092] At step 752, the second data processing system 300 combines the obfuscated first and second identifiers (e.g., first identifier 814 and second identifier 822). Step 752 may include grouping the data into rows by matching the first identifier 814 and the second identifier 822. In various embodiments, the second data processing system 300 determines whether the publisher recorded the interaction 830 with the user or did not record the interaction 832 with the user based on the combined first and second identifiers 814 and 822. For example, the second data processing system 300 may determine that publishers 1 and 3 displayed publisher content to "ID 3," while publisher 2 did not. In various embodiments, the second data processing system 300 determines a specific value (e.g., value 824) corresponding to the row based on the matching first identifier 814 and second identifier 822. It should be understood that although the data is shown as corresponding to different publishers, the data may additionally or alternatively correspond to different interaction paths.

[0093] At step 754, the second data processing system 300 distributes the points 840 among the publishers. In some embodiments, the points 840 are a portion or all of the value 824. In some embodiments, the second data processing system 300 distributes the points 840 evenly among the publishers. For example, the second data processing system 300 may determine that publishers 1 and 3 displayed publisher content to "ID 3," while publisher 2 did not, and may distribute the value "$9" associated with "ID 3" evenly between publishers 1 and 3 (e.g., "$4.50" each, etc.). Additionally or alternatively, the second data processing system 300 may use a customized process (e.g., customized rules, etc.) to distribute the value. For example, the second data processing system 300 may distribute the majority of the value to the first publisher whose content was displayed to the user first, and may distribute smaller portions of the value among each of the other publishers whose content was displayed to the user after the first publisher.

[0094] At step 756, second data processing system 300 performs a summation to generate aggregate value 850. Step 756 may include performing an aggregation along each column. For example, second data processing system 300 may sum the set of points 840 associated with publisher 1 to determine total value 850. In various embodiments, second data processing system 300 determines total value 850 for each publisher. Additionally or alternatively, second data processing system 300 may determine a total value for each interaction path.

[0095] Now specific reference Figure 7 , shows data set operations according to illustrative embodiments. In various embodiments, Figure 7 The dataset operation is similar to Figure 6Publisher data 810 may include a time 816. The time 816 may be associated with the time when the user associated with the first identifier 814 interacted with the publisher content. In various embodiments, the time 816 includes a timestamp. In some embodiments, the time 816 is truncated (e.g., to hours, days, etc.) and / or batched to preserve personal information.

[0096] In various embodiments, step 752 is performed as described above. In various embodiments, the second data processing system 300 determines the interaction time 834 associated with each publisher interaction. For example, the second data processing system 300 may determine that publisher 1 displayed publisher content to "ID 3" on "5 / 11," publisher 3 displayed publisher content to "ID 3" on "5 / 14," and publisher 2 did not record any interaction 832. In step 754, the second data processing system 300 may distribute credits 840 among the publishers based on a last-click attribution scheme. For example, the second data processing system 300 may distribute the entire value amount associated with "ID 3" to publisher 3 because publisher 3 was the last publisher to display publisher content to "ID 3." Additionally or alternatively, the second data processing system 300 may distribute credits 840 among the publishers based on a first-click attribution scheme. In various embodiments, step 756 is performed as described above.

[0097] Now specific reference Figure 8 , shows data set operations according to illustrative embodiments. In various embodiments, Figure 8 The dataset operation is similar to Figure 6 Publisher data 810 may include a quantity 818. Quantity 818 may be associated with the number of times a publisher records an interaction with a user (e.g., displays publisher content to a user, etc.).

[0098] In various embodiments, step 752 is performed as described above. In various embodiments, second data processing system 300 determines the number of interactions 836 associated with each publisher interaction. For example, second data processing system 300 may determine that publisher 1 displayed publisher content to "ID 3" once, publisher 3 displayed publisher content to "ID 3" four times, and publisher 2 did not record any interaction 832. In step 754, second data processing system 300 may distribute points 840 among the publishers based on the number of interactions 836. For example, second data processing system 300 may weight points 840 based on the number of interactions 836. As another example, second data processing system 300 may allocate four-fifths of the value associated with "ID 3" to publisher 3 and one-fifth of the value associated with "ID 3" to publisher 1 because publisher 3 recorded four-fifths of the total user interactions associated with "ID 3" and publisher 1 recorded one-fifth of the total user interactions associated with "ID 3." In various implementations, step 756 is performed as described above.

[0099] Now specific reference Figure 9 , illustrating the generation of Shapley values ​​according to an illustrative embodiment. Interaction data 820 may include time 826. Time 826 may be associated with the time at which the user associated with second identifier 822 performed an online interaction (e.g., a purchase, etc.). In various embodiments, time 826 includes a timestamp. In some embodiments, time 826 is truncated (e.g., to hours, days, etc.) and / or batched to preserve personal information (e.g., to maintain privacy and security, etc.). In various embodiments, step 752 is performed as described above to determine interaction time 834.

[0100] In step 754A, the second data processing system 300 determines the number of interactions 862 and the total value 864 associated with each path 860. For example, a first path 860 may include interactions in which a user interacted with publisher content from publishers 1, 2, and 3, while a second path 860 may include interactions in which a user interacted only with publisher content from publisher 1. In some embodiments, the paths 860 describe the type of interaction. For example, a first path 860 may include mobile and web interactions, while a second path may include link recommendations. In various embodiments, the number of interactions 862 is the sum of multiple users recorded as interacting with the elements defined in a particular path 860. In various embodiments, the paths 860 are unordered (e.g., non-sequential, etc.).

[0101] At step 754B, the second data processing system 300 determines the Shapley value 852. The Shapley value 852 may describe the average marginal contribution of the publisher over all possible paths 860. In various embodiments, the second data processing system 300 calculates the Shapley value 852 as:

[0102]

[0103] in, is x j The Shapley value of x is 852, where x j is a user interaction (e.g., the first identifier 814 associated with the publisher identifier 812), where j is an index into the total number of publishers p, where P is the set of all user interactions, where Must include interaction x j A subset of user interactions, and where R(S∪{x j}) is the score assigned to a particular path 860.

[0104] For example, the Shapley value of 852 for publisher 1 can be calculated as:

[0105]

[0106] Additionally or alternatively, the Shapley value 852 may be calculated as the aggregate value 850. For example, the aggregate value 850 may be calculated as:

[0107]

[0108] In some embodiments, step 754B includes step 756. Additionally or alternatively, the aggregate value 850 can be calculated based on the propensity score. For example, the second data processing system 300 can group the data based on the propensity score and can determine the aggregate value 850 based on the grouping of the data.

[0109] Now refer to Figure 10 , shows the generation of a Markov model according to an illustrative embodiment. In various embodiments, step 752 is performed as described above. In various embodiments, the second data processing system 300 determines the number of interactions 862 and the total value 864 associated with a plurality of paths 870. For example, a first path 870 may include interactions in which a user interacted with publisher content from Publisher 1, followed by publisher content from Publisher 2, and then publisher content from Publisher 3, while a second path 870 may include interactions in which a user interacted only with publisher content from Publisher 1. In various embodiments, the paths 870 are ordered (e.g., sequential, etc.).

[0110] In step 754C, the second data processing system 300 generates a Markov model 880. Markov model 880 can model path 870 as a journey through a series of states. Markov model 880 can include nodes 882 and connections 884. Nodes 882 can represent interactions. For example, a user may interact with publisher content from publisher 1 before performing an online interaction (e.g., making a purchase, etc.), and then interact with publisher 3. In various embodiments, Markov model 880 includes a start point, an end point, and an empty node 882. The start point node 882 can represent a starting point (e.g., before the user interacts with the publisher content, etc.). The end point node 882 can represent a user who has already performed an online interaction. The empty node 882 can represent a user who has not yet performed an online interaction. Connections 884 can represent the probability of transitioning from the first node 882 to the second node 882. In various embodiments, the second data processing system 300 determines the probability of connection 884 empirically (e.g., based on publisher data 810 and interaction data 820).

[0111] At step 754D, the second data processing system 300 generates a removal effect 854. The removal effect 854 can model the contribution of a publisher by comparing the number of online interactions that occurred when the specific publisher was present to the number of online interactions that occurred when the specific publisher was not present. In various embodiments, the second data processing system 300 calculates the removal effect 854 as:

[0112] RE(i)=R-∑ppr i

[0113] where RE(i) is the removal effect 854 of the entity associated with node 882i, where R is the total interaction rate (e.g., the percentage of users who ultimately perform online interactions, etc.), and where ppr i is the path probability associated with node 882i. For example, the ppr of origin → publisher 1 → destination i = 0.5*0.33=0.16. In some embodiments, step 754D includes step 756.

[0114] In various implementations, the second data processing system 300 generates the removal effect 854 as a percentage of the sum of the removal effects 854. For example, the removal effect 854 can be calculated as:

[0115]

[0116] Referring now to FIG. 11 , step 760 of performing a masking operation is shown according to an illustrative embodiment. In various embodiments, the second data processing system 300 performs step 760. In step 762, the second data processing system 300 generates a random value. In various embodiments, the random value is a large random value (e.g., 128 bits or longer, etc.). In various embodiments, step 762 includes generating multiple random values. For example, the second data processing system 300 can generate a random value for each destination of the masked aggregate value (e.g., for each publisher, etc.).

[0117] At step 764, the second data processing system 300 performs an operation using the random value and the encrypted aggregate value to generate an encrypted, masked aggregate value. In various embodiments, the operation includes appending the random value to the encrypted aggregate value. At step 766, the second data processing system 300 encrypts the random value using a third public key to generate an encrypted random value. In various embodiments, the third public key is an asymmetric encryption public key from the publisher computing system 10. At step 768, the second data processing system 300 transmits the encrypted random value to the publisher computing system 10. In various embodiments, steps 766 and 768 may be repeated for each random value and / or destination (e.g., for each publisher, etc.).

[0118] Figure 12 The diagram illustrates a depiction of a computing system 1000 that can be used, for example, to implement any of the exemplary systems described herein (e.g., system 100). Computing system 1000 includes a bus 1005 or other communication component for communicating information, and a processor 1010 coupled to bus 1005 for processing information. Computing system 1000 also includes a main memory 1015, such as a random access memory ("RAM") or other dynamic storage device, coupled to bus 1005 to store information and instructions to be executed by processor 1010. Main memory 1015 can also be used to store location information, temporary variables, or other intermediate information during execution of instructions by processor 1010. Computing system 1000 may further include a read-only memory (ROM) 1020 or other static storage device coupled to bus 1005 to store static information and instructions for processor 1010. A storage device 1025, such as a solid-state device, magnetic disk, or optical disk, is coupled to bus 1005 for persistent storage of information and instructions.

[0119] The computing system 1000 may be coupled to a display 1035, such as a liquid crystal display or an active matrix display, via the bus 1005 to display information to a user. An input device 1030, such as a keyboard including alphanumeric and other keys, may be coupled to the bus 1005 to communicate information and command selections to the processor 1010. In another embodiment, the input device 1030 comprises a touch screen display 1035. The input device 1030 may include a cursor control, such as a mouse, a trackball, or cursor direction keys, to communicate direction information and command selections to the processor 1010 and control cursor movement on the display 1035.

[0120] In some embodiments, the computing system 1000 may include a communication adapter 1040, such as a network adapter. The communication adapter 1040 may be coupled to the bus 1005 and may be configured to enable communication with a computing or communication network 1045 and / or other computing systems. In various exemplary embodiments, the communication adapter 1040 may be used to implement any type of network configuration, such as wired (e.g., via Ethernet), wireless (e.g., via WiFi, Bluetooth, etc.), pre-configured, ad hoc, LAN, WAN, etc.

[0121] According to various embodiments, in response to processor 1010 executing the arrangement of instructions contained in main memory 1015, computing system 1000 can implement various processes for implementing the exemplary embodiments described herein. Such instructions can be read into main memory 1015 from another computer-readable medium, such as storage device 1025. Execution of the arrangement of instructions contained in main memory 1015 causes computing system 1000 to perform the exemplary processes described herein. One or more processors in a multi-processing arrangement can also be employed to execute the instructions contained in main memory 1015. In alternative embodiments, hard-wired circuitry can be used in place of or in combination with software instructions to implement the exemplary embodiments. Thus, the embodiments are not limited to any specific combination of hardware circuitry and software.

[0122] Despite Figure 12 An exemplary processing system is described in the specification, but the subject matter and functional operations described in this specification may be implemented using other types of digital electronic circuitry, or in computer software, firmware, or hardware (including the structures disclosed in this specification and their structural equivalents), or a combination of one or more of them.

[0123] In addition to the above, controls can be provided to the user that allow the user to choose whether and when the system, program, or feature described herein can enable the collection of user information (e.g., information about the user's social network, social activities or activities, occupation, user preferences, or user's current location) and whether content or communications are sent to the user from the server. In addition, certain data can be processed in one or more ways before being stored or used to remove personally identifiable information. For example, the user's identity can be processed so that the user's personally identifiable information cannot be determined, or the user's geographic location from which location information is obtained can be summarized (e.g., such as to a city, zip code, or state level) so that the user's specific location cannot be determined. Thus, the user can control what information is collected about the user, how that information is used, and what information is provided to the user. In the event that the system described herein collects personal information about a user or an application installed on a user's device or utilizes personal information, the user is provided with the opportunity to control whether the program or feature collects user information (e.g., information about the user's social network, social activities or activities, occupation, user preferences, or user's current location). Additionally or alternatively, certain data can be processed in one or more ways before being stored or used to remove personal information.

[0124] The systems and methods of the present disclosure offer numerous benefits over existing systems. To avoid leaking personal information, differential privacy may require that aggregated interaction metrics not reveal whether specific individuals were included in the calculation of interaction rates. Therefore, a privacy-preserving method is needed that measures aggregated interactions and distributes credits across multiple publishers.

[0125] One solution utilizes an outcome measurement service. The outcome measurement service can combine publisher data and interaction data to determine aggregate points associated with online interactions. Furthermore, the outcome measurement service can securely assign points associated with online interactions between publishers using the unique cryptographic and computer architecture methods described herein. In various embodiments, the outcome measurement service described herein advances the field of interaction measurement. Furthermore, the outcome measurement service can determine aggregated metrics more quickly and securely than conventional systems, thereby improving the functionality of existing computer systems.

[0126] The subject matter and implementations of the operations described in this specification can be performed using digital electronic circuitry or computer software, firmware, or hardware embodied in tangible media (including the structures disclosed in this specification and their structural equivalents), or a combination of one or more thereof. The subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on one or more computer storage media for execution by a data processing device or to control the operation of the data processing device. Alternatively or in addition, the program instructions can be encoded on an artificially generated propagated signal, such as a machine-generated electrical, optical, or electromagnetic signal, which is generated to encode information for transmission to a suitable receiver device for execution by the data processing device. The computer-readable storage medium can be 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 of these; or be included in the above devices. Furthermore, 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. The computer storage medium can also be one or more separate components or media (e.g., multiple CDs, disks, or other storage devices) or included therein. Therefore, computer storage media are tangible and non-transitory.

[0127] The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.

[0128] The term "data processing apparatus" or "computing device" encompasses all kinds of apparatus, devices, and machines for processing data, including, for example, a programmable processor, a computer, a system on a chip, or multiple or combinations thereof. The apparatus may include dedicated logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). In addition to hardware, the apparatus may also include code that creates an execution environment for the computer program, for example, code constituting processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of the foregoing. The apparatus and execution environment may implement a variety of different computing model infrastructures, such as network services, distributed computing, and grid computing infrastructures.

[0129] A computer program (also referred to as a program, software, software application, script, or code) can be written in any form of programming language (including compiled or interpreted languages, declarative or procedural languages) and can be deployed in any form, including stand-alone programs or modules, components, subroutines, objects, or other units suitable for use in a computing environment. A computer program can, but does not have to, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, subroutines, or portions of code). A computer program can be deployed to execute on one computer or on multiple computers located on one site or distributed across multiple sites and interconnected by a communications network.

[0130] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by dedicated logic circuits, and the apparatus can also be implemented as dedicated logic circuits, for example, FPGAs (field programmable gate arrays) or ASICs (application-specific integrated circuits). The circuits utilized herein can be implemented using hardware circuits (e.g., FPGAs, ASICs, etc.), software (instructions stored on one or more computer-readable storage media and executable by one or more processors), or any combination thereof.

[0131] Processors suitable for executing computer programs include, for example, general-purpose and special-purpose microprocessors, and any one or more processors of any type of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions according to instructions and one or more storage devices for storing instructions and data. Typically, a computer will also include or be operably coupled to one or more large-capacity storage devices (e.g., magnetic, magneto-optical disks or optical disks) for storing data, to receive data from one or more large-capacity storage devices or to transmit data to them or both. However, a computer does not necessarily have such a device. In addition, a computer can be embedded in another device, for example, 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 portable storage device (e.g., a universal serial bus ("USB") flash drive), to name a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and storage devices, including, for example: semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0132] To provide for interaction with a user, embodiments of the subject matter described herein may be performed using a computer having a display device, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user, and a keyboard and pointing device, such as a mouse or trackball, through which the user can provide input to the computer. Other types of devices may also be used to provide for interaction with the user; for example, feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including sound, speech, or tactile input. Additionally, a computer may interact with a user by sending documents to and receiving documents from a device used by the user; for example, by sending a web page to a web browser on a user's client device in response to a request received from the web browser.

[0133] Implementations of the subject matter described in this specification can be performed using a computing system that includes: a back-end component, for example, as a data server; or includes a middleware component, for example, an application server; or includes a front-end component, for example, a client computer with a graphical user interface or a web browser through which a user can interact with implementations of the subject matter described in this specification; or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include local area networks ("LANs") and wide area networks ("WANs"), inter-networks (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

[0134] A computing system may include a client and a server. The client and the server are typically remote from each other and typically interact via a communication network. The relationship between the client and the server is generated by computer programs running on their respective computers and having a client-server relationship with each other. In some embodiments, the server sends data (e.g., an HTML page) to the client device (e.g., for the purpose of displaying data to a user interacting with the client device and receiving user input from it). At the server, data generated at the client device (e.g., the result of a user interaction) can be received from the client device.

[0135] In some illustrative embodiments, the features disclosed herein can be implemented in a smart TV module (or a TV module, a hybrid TV module, etc. that is networked), which may include a processing circuit configured to integrate internet connectivity with (e.g., via cable, satellite, air or other signal reception) more traditional TV program sources. The smart TV module may be physically incorporated into a television set, or may include separate equipment such as a set-top box, a blue-ray or other digital media player, a game console, a hotel television system, and other supporting equipment. The smart TV module may be configured to allow viewers to search and find videos, movies, photos, and other content on a network, on a local cable TV channel, on a satellite TV channel, or to search and find videos, movies, photos, and other content stored on a local hard drive. A set-top box (STB) or a set-top unit (STU) may include an information appliance device that may include a tuner and be connected to a television set and an external signal source, convert the signal into content, and then display the content on a television screen or other display devices. The Smart TV module can be configured to provide a home screen or top-level screen that includes icons for a number of different applications, such as a web browser and multiple streaming services, connected cable or satellite media sources, other network "channels," and the like. The Smart TV module can be further configured to provide an electronic program guide to the user. A companion application for the Smart TV module can operate on the mobile computing device to provide the user with additional information about available programming, to allow the user to control the Smart TV module, and the like. In alternative embodiments, the features described can be implemented on a laptop or other personal computer, a smartphone, other mobile phone, a handheld computer, a tablet PC, or other computing device.

[0136] Although this specification contains many specific implementation details, these should not be interpreted as limitations on any invention or the scope that may be claimed, but rather as descriptions of features specific to particular implementations of particular inventions. Specific features described in this specification in the context of separate implementations may also be performed in combination or in a single implementation. Conversely, various features described in the context of a single implementation may also be performed separately or in multiple implementations in any suitable subcombination. Furthermore, although features may be described above as functioning in a particular combination and even initially claimed as such, in some cases one or more features from the claimed combination may be excluded from the combination, and the claimed combination may be for subcombinations or variations of subcombinations. Additionally, features described with respect to particular headings may be utilized with respect to and / or in combination with illustrative embodiments described under other headings; the headings provided are included for readability purposes only and should not be interpreted as limiting any features provided with respect to such headings.

[0137] Similarly, although operations are depicted in a particular order in the accompanying drawings, this should not be understood as requiring that such operations be performed in the particular order shown or in the sequential order shown, or that all illustrated operations be performed, in order to achieve the desired results. In certain circumstances, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system components in the above-described embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems may generally be integrated together in a single software product or packaged into multiple software products embodied on tangible media.

[0138] Thus, particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve the desired results. Additionally, the processes depicted in the accompanying drawings do not necessarily require the particular order or sequential sequence shown to achieve the desired results. In certain embodiments, multitasking and parallel processing may be advantageous.

Claims

1. A method for performing an aggregation operation, comprising: receiving, at a first computing system, an encrypted identifier and an encrypted value; performing, by the first computing system, a hiding operation on the encrypted identifier to produce a hidden encrypted identifier, wherein the hiding operation hides the encrypted identifier from the first computing system and the second computing system but enables matching between the hidden encrypted identifiers; decrypting, by the second computing system, the hidden encrypted identifier to produce a hidden identifier; performing, by the second computing system, an aggregation operation using the hidden identifier and the encrypted value to generate an encrypted aggregate value without accessing personal information associated with the encrypted value; decrypting the encrypted aggregate value by a third computing system to generate an aggregate value; collaboratively generating, by the first computing system and the second computing system, a first encryption key; generating, by the first computing system, a second encryption key and a third encryption key associated with the first encryption key; generating, by the second computing system, a first decryption key associated with the first encryption key; and A second decryption key and a fourth encryption key are generated by the third computing system.

2. The method according to claim 1, wherein Executing the hiding operation includes: removing the first encrypted first portion from the encrypted identifier to produce a partially encrypted identifier; and The partially encrypted identifier is deterministically encrypted using a second encryption to produce the hidden encrypted identifier.

3. The method according to claim 2, wherein: Decrypting the obscured encrypted identifier includes removing the first encrypted second portion from the obscured encrypted identifier to produce a obscured identifier.

4. The method according to claim 1, wherein The encrypted identifier is encrypted using the first encryption key and the encrypted value is encrypted using the fourth encryption key, wherein the hiding operation uses the second encryption key and a third encryption key, wherein the hidden encrypted identifier is decrypted using the first decryption key, and wherein the encrypted aggregate value is decrypted using the second decryption key.

5. The method according to claim 1, wherein The hiding operation includes shuffling the encrypted identifier and re-randomizing the encrypted value by generating a ciphertext using a hash function.

6. The method according to claim 1, wherein The third computing system and the first computing system are part of the same outcome measurement system.

7. The method according to claim 1, wherein At least one of the first computing system or the third computing system is a distributed computing system.

8. The method according to claim 1, further comprising: generating a random value by the second computing system; performing, by the second computing system, an operation using the random value and the encrypted aggregate value to produce a result; as well as The random value is sent by the second computing system to a content publisher associated with the encrypted identifier.

9. The method according to claim 1, wherein The aggregation operation includes performing a weighting function using the hidden identifier and a time value associated with the hidden identifier to produce the encrypted aggregate value.

10. One or more computer-readable storage media having stored thereon instructions that, when executed by one or more processors of at least one of a first computing system, a second computing system, and a third computing system: Make the first computing system: receiving an encrypted identifier and an encrypted value; as well as performing a hiding operation on the encrypted identifier to generate a hidden encrypted identifier, wherein: The hiding operation hides the encrypted identifier from the first computing system and the second computing system, but enables matching between the hidden encrypted identifiers; Make the second computing system: decrypting the hidden encrypted identifier to produce a hidden identifier, and performing an aggregation operation using the hidden identifier and the encrypted value to generate an encrypted aggregate value without accessing personal information associated with the encrypted value; causing the third computing system to decrypt the encrypted aggregate value to generate an aggregate value; causing the first computing system and the second computing system to collaboratively generate a first encryption key; causing the first computing system to generate a second encryption key and a third encryption key associated with the first encryption key; causing the second computing system to generate a first decryption key associated with the first encryption key; as well as The third computing system is caused to generate a second decryption key and a fourth encryption key.

11. One or more computer-readable storage media according to claim 10, wherein: Executing the hiding operation includes: removing the first encrypted first portion from the encrypted identifier to produce a partially encrypted identifier; and The partially encrypted identifier is deterministically encrypted using a second encryption to produce the hidden encrypted identifier.

12. One or more computer-readable storage media according to claim 11, wherein: Decrypting the obscured encrypted identifier includes removing the first encrypted second portion from the obscured encrypted identifier to produce a obscured identifier.

13. One or more computer-readable storage media according to claim 11, wherein: The encrypted identifier is encrypted using the first encryption key and the encrypted value is encrypted using the fourth encryption key, wherein the hiding operation uses the second encryption key and a third encryption key, wherein the hidden encrypted identifier is decrypted using the first decryption key, and wherein the encrypted aggregate value is decrypted using the second decryption key.

14. The one or more computer-readable storage media of claim 11, wherein: The third computing system and the first computing system are part of the same outcome measurement system.

15. The one or more computer-readable storage media of claim 11, wherein: At least one of the first computing system or the third computing system is a distributed computing system.

16. The one or more computer-readable storage media of claim 10, wherein: The aggregation operation includes performing a weighting function using the hidden identifier and a time value associated with the hidden identifier to produce the encrypted aggregate value.

Citation Information

Patent Citations

  • Computer-implemented privacy engineering system and method

    CN109716345A

  • Methods and apparatus to de-duplicate impression information

    US20150186403A1