IP Library Granted Patent US 9,189,638
Granted Patent B1
US 9,189,638 · App. 13/975,363 · Granted Nov 17, 2015

Systems and methods for multi-function and multi-purpose cryptography

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 9,189,638
App. No.
13/975,363
Granted
Nov 17, 2015
Kind
B1
Abstract

Systems and methods for multi-function and multi-purpose cryptography are described, including obtaining a message to be encrypted by a cipher engine configured to perform encryption using a plurality of predetermined tags with an encryption function; determining a tag of the plurality of predetermined tags based on the message; encrypting, by the cipher engine, the message using the tag to produce a ciphertext; and sending the ciphertext.

Claims (75)

1. A computer-implemented method, comprising, by at least one hardware processor:

obtaining a message to be encrypted by a cipher engine;

identifying a tag corresponding to the message;

retrieving length information, based on the identified tag, from tag information that comprises a plurality of associations, wherein each of the plurality of associations comprises an association between the tag and length information, and wherein the length information comprises one or both of an encryption length and an integrity length;

encrypting, by the at least one hardware process executing the cipher engine, the message using the identified tag and the retrieved length information to produce a ciphertext; and

sending the ciphertext.

2. The method of claim 1 , wherein the encrypting the message further uses a nonce value.

3. The method of claim 1 , wherein encrypting the message comprises:

breaking the message into two or more blocks; and

encrypting each of the two or more blocks using a different count value.

4. The method of claim 1 , wherein at least two tags in the plurality of associations have respective lengths that are different from each other.

5. The method of claim 1 , wherein the encrypting the message further uses a private key.

6. The method of claim 1 , further comprising:

obtaining another message to be encrypted by a cipher engine;

identifying another tag corresponding to the another message, wherein the another tag is different from the tag;

retrieving other length information, based on the identified another tag, from the tag information;

encrypting, by the cipher engine, the another message using the identified another tag to produce another ciphertext; and

sending the another ciphertext.

7. The method of claim 1 , wherein the encrypting the message is performed using one or SHA1, HMAC, HMAC-SHA1, HMAC-SHA256, HMAC-3, cryptographic MAC, a pseudorandom-function, a one-way function, and an encryption function.

8. The method of claim 1 , further comprising:

producing, using a hash function, an authentication string based on one or both of the message and the ciphertext; and

sending the authentication string.

9. A computer-implemented method, comprising, by at least one hardware processor:

obtaining a ciphertext and information, wherein the ciphertext is to be decrypted using at least a portion of the information;

determining a tag using the information;

retrieving length information, based on the determined tag, from tag information, wherein the tag information comprises a plurality of associations, wherein each of the plurality of associations comprises an association between the tag and length information, and wherein the length information comprises one or both of an encryption length and an integrity length;

decrypting, by the at least one hardware processor, the ciphertext using the tag, the length information, and a private key to produce a message; and

storing the message.

10. The method of claim 9 , wherein decrypting the ciphertext comprises:

breaking the ciphertext into two or more blocks; and decrypting each of the two or more blocks using a different count value generated in a pre-determined manner.

11. The method of claim 9 , further comprising:

obtaining another ciphertext and another information, wherein the another ciphertext is to be decrypted using at least a portion of the another information;

determining another tag using the another information;

retrieving another length information, based on the determined another tag, from the tag information; and

decrypting the another ciphertext using the another tag and the another length information to produce another message, wherein the another message cannot be produced by decrypting the another ciphertext using the tag.

12. The method of claim 9 , further comprising:

obtaining an authentication string associated with the ciphertext;

producing another authentication string based on the ciphertext and the length information; and

verifying that the authentication string is the same as the another authentication string.

13. A non-transitory computer readable medium having stored therein computer executable instructions for:

obtaining a message to be encrypted by a cipher engine configured to perform encryption;

identifying a tag corresponding to the message;

retrieving length information, based on the identified tag, from tag information, wherein the tag information comprises a plurality of associations, wherein each of the plurality of associations comprises an association between the tag and length information, and wherein the length information comprises one or both of an encryption length and an integrity length;

encrypting, by the cipher engine, the message using the identified tag and the retrieved length information to produce a ciphertext; and

sending the ciphertext.

14. The computer readable medium of claim 13 , wherein encrypting the message comprises:

breaking the message into two or more blocks; and

encrypting each of the two or more blocks using a different count value.

15. The computer readable medium of claim 13 , further stored therein computer executable instructions for:

obtaining another ciphertext and information, wherein the another ciphertext is to be decrypted using at least a portion of the information;

identifying another tag corresponding to the another ciphertext;

retrieving another length information, based on the identified another tag, from the tag information;

decrypting the another ciphertext using the another tag, the another length information, and a private key to produce another message; and

storing the another message.

16. At least one computing device comprising storage and at least one processor configured to perform:

obtaining a message to be encrypted by a cipher engine configured to perform encryption;

identifying a tag corresponding to the message;

retrieving length information, based on the identified tag, from tag information, wherein the tag information comprise a plurality of associations, wherein each of the plurality of associations comprises an association between the tag and length information, and wherein the length information comprises one or both of an encryption length and an integrity length;

encrypting, by the cipher engine, the message using the identified tag and the retrieved length information to produce a ciphertext; and

sending the ciphertext.

17. The at least one computing device of claim 16 , wherein encrypting the message comprises:

breaking the message into two or more blocks; and

encrypting each of the two or more blocks using a different count value.

18. The at least one computing device of claim 16 , wherein the at least one processor is further configured to perform:

obtaining another ciphertext and information, wherein the another ciphertext is to be decrypted using at least a portion of the information;

determining another tag using the information;

retrieving another length information, based on the determined another tag, from the tag information;

decrypting the another ciphertext using the another tag, the another length information, and a private key to produce another message; and

storing the another message.

19. The at least one computing device of claim 18 , wherein decrypting the another ciphertext comprises:

breaking the another ciphertext into two or more blocks; and

decrypting each of the two or more blocks using a different count value generated in a pre-determined manner.

20. The at least one computing device of claim 16 , wherein the at least one processor is further configured to perform:

producing, using a hash function, an authentication string based on one or both of the message and the ciphertext; and

sending the authentication string.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2013
From: YUNG, MARCEL M.M.; THRON, NUNZIO; WANG, GANG
To: GOOGLE INC.
Reel/Frame 031104/0139 →