IP Library Granted Patent US 10,366,411
Granted Patent B2
US 10,366,411 · App. 14/579,330 · Granted Jul 30, 2019

Protecting privacy of personally identifying information when delivering targeted assets

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,366,411
App. No.
14/579,330
Granted
Jul 30, 2019
Kind
B2
Abstract

Techniques are disclosed herein for protecting personally identifying information (PII) and behavioral data while delivering targeted assets. In one aspect, a profile is created based on a template and desired characteristics of users to receive one or more targeted assets. The template provides a framework for the user characteristics. One or more clients are provided the template. A manifest that identifies the targeted assets is encrypted based on the profile. The encrypted manifest is sent to the one or more clients. A user profile is generated at a client based on a template. The client attempts to decrypt the encrypted manifest based on the profile created at the client. The client sends a request for any targeted assets that were identified through the attempt to decrypt the encrypted manifest.

Claims (66)

1. A device comprising:

a processor that:

fills in a client-side version of a template by filling in one or more of a plurality of data fields with one or more user-specific values that are based on user characteristics of a user;

receives, via a communication network, an encrypted manifest that identifies a plurality of targeted assets, wherein the manifest has been previously remotely encrypted to have a plurality of encrypted portions, wherein each encrypted portion of the manifest is decryptable by at least one permutation of a plurality of targeted user characteristics, wherein each permutation is associated with a corresponding targeted asset of the plurality of targeted assets;

decrypts an encrypted portion of the plurality of encrypted portions of the encrypted manifest based on the one or more user-specific values included in the client-side filled in version of the template to obtain a decrypted portion, wherein the device is prevented from decrypting other of the plurality of encrypted portions of the encrypted manifest for which the data fields in the client-side version of the template do not contain user-specific values that can be used to decrypt the other of the plurality of encrypted portions; and

sends a request to a server via the communication network for the targeted asset identified by the decrypted portion,

wherein the client-side filled in version of the template is not sent to the server.

2. The device of claim 1 , wherein the processor further:

receives a seed value from the server; and

generates a decryption key based on the client-side filled in version of the template and the seed value.

3. The device of claim 2 , wherein the processor decrypts at least a part of the encrypted manifest based on the decryption key.

4. The device of claim 2 , wherein the processor further:

receives a first authentication parameter from the server that is based on an encryption key that was used to encrypt the manifest; and

applies the decryption key to results of decrypting the encrypted portion of the encrypted manifest to create a second authentication parameter; and

identifies the at least one targeted asset of the plurality of targeted assets by comparing the first authentication parameter to the second authentication parameter.

5. The device of claim 2 , wherein the processor further:

receives a mask from the server; and

replaces bits in the decryption key with don't care bits based on the mask.

6. The device of claim 1 , wherein the processor fills in the template based on one or more of:

demographic data associated with the user, psychographic data, purchases made by the user, or viewing behavior of the user.

7. A machine implemented method, the method comprising:

at a first server device:

filling in a plurality of data fields of a template with initial values that are based on a plurality of targeted user characteristics to obtain a server-side filled in version of the template, wherein the plurality of targeted user characteristics each indicate a targeted segment of users and a plurality of permutations of the data fields are each associated with a corresponding targeted asset of a plurality of targeted assets; and

encrypting a manifest based on the targeted user characteristics of the server-side filled in version of the template to obtain an encrypted manifest having a plurality of encrypted portions, each encrypted portion corresponding to a data field of the plurality of data fields and identifying a targeted asset of the plurality of targeted assets; and

at a client device:

generating a user-specific profile by filling in one or more of the plurality of data fields of a client-side version of the template with one or more user-specific values that are based on user characteristics of a user;

receiving, via a communication network, the encrypted manifest;

decrypting an encrypted portion of the plurality of encrypted portions of the encrypted manifest at the client device based on the one or more user-specific values included in the profile to obtain a decrypted portion,

wherein the client device is prevented from decrypting other of the plurality of encrypted portions of the encrypted manifest for which the data fields in the client-side version of the template do not contain user-specific values that can be used to decrypt the other of the plurality of encrypted portions; and

sending a request from the client device to a second server via the communication network for the targeted asset identified by the decrypted portion,

wherein the client-side version of the template is not sent to the second server.

8. A machine implemented method as recited in claim 7 , further comprising:

receiving a seed value at the client device; and

generating a decryption key at the client device based on the profile and the seed value.

9. A machine implemented method as recited in claim 8 , wherein decrypting the encrypted portion of the encrypted manifest includes at least partially decrypting the manifest at the client device based on the decryption key.

10. A machine implemented method of claim 8 , further comprising:

receiving a first authentication parameter at the client device that is based on an encryption key that was used to encrypt the manifest; and

applying the decryption key at the client device to results of decrypting the encrypted portion of the encrypted manifest to create a second authentication parameter; and

at the client device, at least partially decrypting the encrypted manifest by comparing the first authentication parameter to the second authentication parameter.

11. A machine implemented method of claim 8 , wherein generating the profile includes determining one or more of:

demographic data associated with the user, psychographic data, purchases made by the user, or viewing behavior of the user.

12. A machine implemented method of claim 11 , wherein the determining takes place at the client device.

13. A machine implemented method of claim 8 , further comprising:

receiving a mask at the client device; and

replacing bits in the decryption key with don't care bits at the client device based on the mask.

14. A hardware computer readable storage device comprising instructions which, when executed on a processor, cause the processor to:

fill in a client-side version of a template by filling in one or more of a plurality of data fields with one or more user-specific values that are based on user characteristics of a user, wherein the template is filled in at a client device;

receive via a communication network, at the client device, an encrypted manifest that identifies a plurality of targeted assets, wherein the manifest has been previously remotely encrypted to have a plurality of encrypted portions, wherein each encrypted portion of the manifest is decryptable by at least one permutation of a plurality of targeted user characteristics associated with a corresponding targeted asset of the plurality of targeted assets;

decrypt an encrypted portion of the plurality of encrypted portions of the encrypted manifest at the client device based on the one or more user-specific values included in the client-side filled in version of the template to obtain a decrypted portion, wherein the client device is prevented from decrypting other of the plurality of encrypted portions of the encrypted manifest for which the data fields in the client-side version of the template do not contain user-specific values that can be used to decrypt the other of the plurality of encrypted portions; and

send a request from the client device to a server via the communication network for the targeted asset identified by the decrypted portion,

wherein the client-side filled in version of the template is not sent to the server.

15. The hardware computer readable storage device of claim 14 , wherein the instructions further cause the processor to:

receive a seed value from the server; and

generate a decryption key based on the client-side filled in version of the template and the seed value.

16. The hardware computer readable storage device of claim 15 , wherein the instructions cause the processor to decrypt at least a part of the encrypted manifest at the client device based on the decryption key.

17. The hardware computer readable storage device of claim 15 , wherein the instructions further cause the processor to:

receive a first authentication parameter from the server that is based on an encryption key that was used to encrypt the manifest;

apply the decryption key to results of decrypting the encrypted portion of the encrypted manifest to create a second authentication parameter; and

at least partially decrypt the encrypted manifest by comparing the first authentication parameter to the second authentication parameter.

18. The hardware computer readable storage device of claim 15 , wherein the instructions further cause the processor to:

receive a mask from the server; and

replace bits in the decryption key with don't care bits based on the mask.

19. The hardware computer readable storage device of claim 14 , wherein the instructions further cause the processor to fill in the template based on one or more of: demographic data associated with the user, psychographic data, purchases made by the user, or viewing behavior of the user.

20. The hardware computer readable storage device of claim 14 , wherein the filled in template comprises bits, wherein the instructions further cause the processor to:

receive a mask and a base key from the server, wherein the base key has bits; and

replace selected bits of the bits in the client-side filled in version of the template with bits from the base key based on the mask to generate a modified client-side filled in version of the template, wherein the instructions that cause the processor to decrypt at least a part of the encrypted manifest at the client device based on the data included in the client-side filled in version of the template cause the processor to decrypt at least a part of the encrypted manifest based on the modified client-side filled in version of the template.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034819/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2014
From: RAMBERG, ERIK
To: MICROSOFT CORPORATION
Reel/Frame 034571/0867 →