IP Library Granted Patent US 8,769,290
Granted Patent B1
US 8,769,290 · App. 13/036,833 · Granted Jul 1, 2014

Providing confidential structured data

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 8,769,290
App. No.
13/036,833
Granted
Jul 1, 2014
Kind
B1
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for providing confidential structured data. In one aspect, a method includes creating a first data structure instance according to a protocol for creating structured and extensible data structures. The first data structure instance is serialized. The serialized first data structure instance is encrypted. A second data structure instance is created according to the protocol. The second data structure instance contains the encrypted and serialized first data structure instance. The second data structure instance is serialized.

Claims (67)

1. A system comprising one or more computers configured to perform operations comprising:

receiving a first request from a client device;

generating a user request token, including:

creating a first data structure instance according to a protocol for creating structured and extensible data structures, the first data structure instance containing first data;

serializing the first data structure instance;

encrypting the serialized first data structure instance;

creating a second data structure instance according to the protocol, the second data structure instance containing the encrypted and serialized first data structure instance; and

serializing the second data structure instance to generate the user request token;

sending a plurality of responsive items to the client device in response to the first request;

sending the user request token to the client device; and

receiving the user request token from the client device and recovering the first data in the user request token, including:

receiving, with the user request token, a second request for additional information regarding one of the responsive items; and

determining whether to respond to the second request based on the user request token.

2. The system of claim 1 , wherein generating the user request token further comprises encoding the serialized second data structure instance into a plurality of text characters.

3. The system of claim 1 , wherein generating the user request token further comprises creating a digital signature using the first data structure and a private key and including the digital signature in the second data structure.

4. The system of claim 1 , wherein encrypting the serialized first data structure comprises using a symmetrical encryption algorithm, a private key, and an initialization vector; and wherein the second data structure includes the initialization vector.

5. The system of claim 4 , wherein the initialization vector is a random initialization vector.

6. The system of claim 1 , wherein the first data comprises one or more of: an internet protocol (IP) address for the client device and a time stamp.

7. The system of claim 1 , wherein recovering the first data in the token comprises:

deserializing the second data structure and extracting the encrypted and serialized first data structure;

decrypting the serialized first data structure; and

deserializing the first data structure to recover the first data.

8. The system of claim 1 ,

wherein generating the user request token comprises generating the user request token in response to the first request, and wherein sending a plurality of responsive items to the client device in response to the first request comprises sending the user request token with the plurality of responsive items.

9. The system of claim 8 , wherein:

generating the user request token comprises generating, for each of the first plurality of items, a respective item token; and

determining whether to respond to the second request comprises determining whether the user request token is valid with respect to the one of the responsive items in the second request for additional information.

10. A method performed by data processing apparatus, the method comprising:

receiving a first request from a client device;

generating a user request token, including:

creating a first data structure instance according to a protocol for creating structured and extensible data structures, the first data structure instance containing first data;

serializing the first data structure instance;

encrypting the serialized first data structure instance;

creating a second data structure instance according to the protocol, the second data structure instance containing the encrypted and serialized first data structure instance; and

serializing the second data structure instance to generate the user request token;

sending a plurality of responsive items to the client device in response to the first request;

sending the user request token to the client device; and

receiving the user request token from the client device and recovering the first data in the user request token, including:

receiving, with the user request token, a second request for additional information regarding one of the responsive items; and

determining whether to respond to the second request based on the user request token.

11. The method of claim 10 , wherein generating the user request token further comprises encoding the serialized second data structure instance into a plurality of text characters.

12. The method of claim 10 , wherein generating the user request token further comprises creating a digital signature using the first data structure and a private key and including the digital signature in the second data structure.

13. The method of claim 10 , wherein encrypting the serialized first data structure comprises using a symmetrical encryption algorithm, a private key, and an initialization vector; and wherein the second data structure includes the initialization vector.

14. The method of claim 13 , wherein the initialization vector is a random initialization vector.

15. The method of claim 10 , wherein the first data comprises one or more of: an internet protocol (IP) address for the client device and a time stamp.

16. The method of claim 10 , wherein recovering the first data in the token comprises:

deserializing the second data structure and extracting the encrypted and serialized first data structure;

decrypting the serialized first data structure; and

deserializing the first data structure to recover the first data.

17. The method of claim 10 ,

wherein generating the user request token comprises generating the user request token in response to the first request, and wherein sending a plurality of responsive items to the client device in response to the first request comprises sending the user request token with the plurality of responsive items.

18. The method of claim 17 , wherein:

generating the user request token comprises generating, for each of the first plurality of items, a respective item token; and

determining whether to respond to the second request comprises determining whether the user request token is valid with respect to the one of the responsive items in the second request for additional information.

19. A computer storage medium encoded with a computer program, the program comprising instructions that when executed by data processing apparatus cause the data processing apparatus to perform operations comprising:

receiving a first request from a client device;

generating a user request token, including:

creating a first data structure instance according to a protocol for creating structured and extensible data structures, the first data structure instance containing first data;

serializing the first data structure instance;

encrypting the serialized first data structure instance;

creating a second data structure instance according to the protocol, the second data structure instance containing the encrypted and serialized first data structure instance; and

serializing the second data structure instance to generate the user request token;

sending a plurality of responsive items to the client device in response to the first request;

sending the user request token to the client device; and

receiving the user request token from the client device and recovering the first data in the user request token, including

receiving, with the user request token, a second request for additional information regarding one of the responsive items; and

determining whether to respond to the second request based on the user request token.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044277/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2011
From: JACOBS, AARON
To: GOOGLE INC.
Reel/Frame 026203/0176 →