IP Library Granted Patent US 9,054,857
Granted Patent B2
US 9,054,857 · App. 13/931,085 · Granted Jun 9, 2015

Parallelizeable integrity-aware encryption technique

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,054,857
App. No.
13/931,085
Granted
Jun 9, 2015
Kind
B2
Abstract

A parallelizable integrity-aware encryption technique is provided. In at least one embodiment of the present disclosure, a parallelizable integrity-aware encryption method comprises whitening at least one message block with a first mask value, encrypting the whitened at least one message block using a block cipher and a first key, and whitening the encrypted at least one message block with a second mask value to generate at least one corresponding output ciphertext block. In another embodiment of the present disclosure, a parallelizable integrity-aware encryption method comprises applying a XOR function to all blocks of a message to compute a XOR-sum, applying a first mask value to the XOR-sum; encrypting the masked XOR-sum using a block cipher and a first key, and applying a second mask value to the encrypted XOR-sum to generate an integrity tag.

Claims (58)

1. A parallelizable method of encrypting n blocks of plaintext into n blocks of ciphertext and providing an integrity tag, the method comprising:

using a parallelizable mask generation technique, generating a series of n+2 masks, using the parallelizable mask generation technique to generate the series of n+2 masks including, for each respective mask

applying an XOR function to a respective pair of selected values to provide a respective XOR result; and

applying a non-linear substitution function to the respective XOR result to provide the respective mask;

using a respective mask of the n+2 masks, encrypting each plaintext block with a first key to provide a respective ciphertext block;

applying an XOR function to the n plaintext blocks to provide an XOR-sum; and

using two other masks, encrypting the XOR-sum with the first key to provide the integrity tag.

2. The method of claim 1 , wherein using the respective mask of the n+2 masks, encrypting each plaintext block with the first key to produce the respective ciphertext block comprises:

whitening each of the n plaintext blocks with its respective mask to provide a respective whitened block;

encrypting each respective whitened block with the first key to provide a respective encrypted block; and

whitening each respective encrypted block with its respective mask to provide a respective ciphertext block.

3. The method of claim 1 , wherein encrypting the XOR-sum using two other masks comprises:

whitening the XOR-sum with a first mask to provide a whitened XOR-sum;

encrypting the whitened XOR-sum with the first key to provide an encrypted XOR-sum; and

whitening the encrypted XOR-sum with a second mask to provide the integrity tag.

4. The method of claim 3 , wherein the first mask and the second mask are the n+1st and the n+2nd masks of the series of n+2 masks.

5. The method of claim 1 , wherein using the parallelizable mask generation technique to generate the series of n+2 masks further comprises encrypting a series of counter values with a second key to provide a series of values, each for use as a respective first value of the respective pair of selected values used to provide each respective XOR result.

6. The method of claim 1 , wherein using the parallelizable mask generation technique to generate the series of n+2 masks further comprises:

encrypting a NONCE value using the first key to provide an encrypted NONCE; and

generating a series of values from the encrypted NONCE, each value of the series of values to be used as a respective second value of the respective pair of selected values to be used to provide each respective XOR result.

7. The method of claim 6 , wherein the encrypted NONCE is a set of bits, and generating the series of values from the encrypted NONCE comprises rotating the set of bits by a respective selected number of bits to provide each value in the series of values.

8. The method of claim 6 , wherein the NONCE is a sequence number generated by a counter.

9. The method of claim 6 , wherein the NONCE is a monotonically increasing sequence number.

10. The method of claim 6 , wherein the NONCE is a pseudo-random number.

11. The method of claim 6 , wherein the NONCE is unique within a communication session.

12. A parallelizable method of decrypting n blocks of ciphertext into n blocks of plaintext and testing integrity of the plaintext using an integrity tag associated with the cipher text, the method comprising:

using a parallelizable mask generation technique, generating a series of n+2 masks, using the parallelizable mask generation technique to generate the series of n+2 masks including, for each respective mask:

applying an XOR function to a respective pair of selected values to provide a respective XOR result; and

applying a non-linear substitution function to the respective XOR result to provide the respective mask;

using a respective mask of the n+2 masks, decrypting each ciphertext block with a first key to provide a respective plaintext block; and

using the n plaintext blocks and the associated integrity tag to test whether the n blocks of plaintext have integrity.

13. The method of claim 12 , wherein using the n blocks of plaintext and the associated integrity tag to test whether the n blocks of plaintext have integrity comprises:

applying an XOR function to the n plaintext blocks to provide an XOR-sum;

using two other masks, encrypting the XOR-sum with the first key to provide a check tag; and

comparing the associated integrity tag to the check tag to determine whether the blocks of plaintext have integrity.

14. The method of claim 13 , wherein using the parallelizable mask generation technique to generate the series of n+2 masks further comprises:

encrypting a NONCE value using the first key to provide an encrypted NONCE; and

generating a series of values from the encrypted NONCE, each value of the series of values to be used as a respective second value of the respective pair of selected values to be used to provide each respective XOR result.

15. The method of claim 12 , wherein using the n blocks of plaintext and the associated integrity tag to test whether the n blocks of plaintext have integrity comprises:

applying an XOR function to the n plaintext blocks to provide an XOR-sum;

using two other masks, decrypting the associated integrity tag with the first key to produce a check value; and

comparing the check value with the XOR-sum to determine whether the blocks of plaintext have integrity.

16. The method of claim 15 , wherein using the parallelizable mask generation technique to generate the series of n+2 masks comprises, for each respective mask:

applying an XOR function to a respective pair of selected values to provide a respective XOR result; and

applying a non-linear substitution function to the respective XOR result to provide the respective mask.

17. The method of claim 16 , wherein using the parallelizable mask generation technique to generate the series of n+2 masks further comprises:

encrypting a NONCE value using the first key to provide an encrypted NONCE; and

generating a series of values from the encrypted NONCE, each value of the series of values to be used as a respective second value of the respective pair of selected values to be used to provide each respective XOR result.

18. The method of claim 12 , wherein using the n blocks of plaintext and the associated integrity tag to test whether the n blocks of plaintext have integrity comprises:

applying an XOR function to the integrity tag and the second mask to provide a first intermediate result;

decrypting the first intermediate result with the first key to provide a first result;

applying an XOR function to an XOR-sum of the n blocks of plaintext and the first mask to provide a second result; and

determining whether the first result matches the second result.

19. The method of claim 12 , wherein using the n blocks of plaintext and the associated integrity tag to test whether the n blocks of plaintext have integrity comprises:

applying an XOR function to an XOR sum of the n blocks of plaintext and the first mask to provide a first intermediate result;

encrypting the first intermediate result with the first key to provide a first result;

applying an XOR function to the integrity tag and the second mask to provide a second result; and

determining whether the first result matches the second result.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Oct 26, 2020
From: JEFFERIES FINANCE LLC
To: RPX CLEARINGHOUSE LLC
Reel/Frame 054305/0505 →
SECURITY INTEREST Recorded Jun 29, 2018
From: RPX CLEARINGHOUSE LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 046485/0644 →
RELEASE (REEL 038041 / FRAME 0001) Recorded Jan 2, 2018
From: JPMORGAN CHASE BANK, N.A.
To: RPX CORPORATION; RPX CLEARINGHOUSE LLC
Reel/Frame 044970/0030 →
SECURITY AGREEMENT Recorded Mar 9, 2016
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038041/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2015
From: ROCKSTAR CONSORTIUM US LP; ROCKSTAR CONSORTIUM LLC; BOCKSTAR TECHNOLOGIES LLC; CONSTELLATION TECHNOLOGIES LLC; MOBILESTAR TECHNOLOGIES LLC; NETSTAR TECHNOLOGIES LLC
To: RPX CLEARINGHOUSE LLC
Reel/Frame 034924/0779 →