IP Library › Granted Patent US 10,404,468
Granted Patent B2
US 10,404,468 · App. 15/351,606 · Granted Sep 3, 2019

Technologies for CCM encryption with 64-bit block ciphers

Inventors: Santosh Ghosh (Hillsboro, OR); Manoj R. Sastry (Portland, OR); Jesse Walker (Hillsboro, OR); Li Zhao (Beaverton, OR); Rafael Misoczki (Hillsboro, OR)
Assignee: Intel Corporation
H04L9/3242H04L9/0637H04L9/0643
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,404,468
App. No.
15/351,606
Granted
Sep 3, 2019
Kind
B2
Abstract

Technologies for counter with CBC-MAC (CCM) mode encryption include a computing device that performs a CBC-MAC authentication operation on a message with an encryption key, using a 64-bit block cipher to generate a message authentication code. The computing device generates a first 64-bit authentication block including an 8-bit flag field and a length field of between 11 and 32 bits. The flag field indicates the length of the length field. Performing the CBC-MAC authentication operation includes formatting the message into one or more 64-bit authentication blocks. The computing device performs a counter mode encryption operation on the message with the encryption key using the 64-bit block cipher to generate a cipher text. Performing the counter mode encryption includes generating multiple 64-bit keystream blocks. The computing device generates an authentication tag based on the message authentication code and a first keystream block of keystream blocks. Other embodiments are described and claimed.

Claims (51)

1. A computing device for message encryption, the computing device comprising:

an authentication module to perform a cipher block chaining message authentication code (CBC-MAC) authentication operation on a message with an encryption key using a 64-bit block cipher to generate a message authentication code, wherein to perform the CBC-MAC authentication operation comprises to format the message into one or more 64-bit authentication blocks; and

an encryption module to (i) perform a counter mode encryption operation on the message with the encryption key using the 64-bit block cipher to generate a cipher text, wherein to perform the counter mode encryption operation comprises to generate a plurality of 64-bit keystream blocks, and (ii) generate an authentication tag based on the message authentication code and a first keystream block of the plurality of 64-bit keystream blocks;

wherein to perform the CBC-MAC authentication operation comprises to generate a first 64-bit authentication block, wherein the first 64-bit authentication block includes a flag field F, a nonce field N, and a message length field l(m), wherein the message length field l(m) is indicative of a length of the message in bytes, and wherein the flag field F has a length of 8 bits, the message length field l(m) has a length L of between 11 and 32 bits, inclusive, and the nonce field N has a length of 56 minus the length L bits.

2. The computing device of claim 1 , wherein the flag field F of the first 64-bit authentication block includes an authentication tag length M field and a length L field.

3. The computing device of claim 2 , wherein the authentication tag length M field comprises a two-bit field, wherein valid values for the authentication tag length M include 64 bits, 48 bits, and 32 bits, and wherein the authentication tag length M field is encoded as the value of an expression:

M

8

-

2

2

.

4. The computing device of claim 2 , wherein to generate the authentication tag comprises to perform a bitwise XOR operation with a first M bits of the first keystream block and a first M bits of the message authentication code to generate the authentication tag.

5. The computing device of claim 2 , wherein the length L field comprises a five-bit field encoded as the value of an expression L−1.

6. The computing device of claim 1 , wherein to perform the counter mode encryption operation comprises to:

generate a plurality of 64-bit counter blocks; and

encrypt each of the plurality of 64-bit counter blocks to generate a corresponding 64-bit keystream block.

7. The computing device of claim 6 , wherein the each of the plurality of 64-bit counter blocks includes a flag field F, a nonce field N, and a zero-initialized counter field, wherein the flag field F of the each of the plurality of 64-bit counter blocks has a length of 8 bits, the counter field of the each of the plurality of 64-bit counter blocks has a length L of between 11 and 32 bits, inclusive, and the nonce field N of the each of the plurality of 64-bit counter blocks has a length of 56 minus the length L bits.

8. The computing device of claim 7 , wherein the flag field F of the each of the plurality of 64-bit counter blocks includes three most-significant bits that must be zero and a five-bit length L field, wherein the five-bit length L field is encoded as the value of an expression L−1.

9. The computing device of claim 1 , wherein to generate the authentication tag comprises to perform a bitwise XOR operation with the first keystream block and the message authentication code to generate the authentication tag.

10. A method for message encryption, the method comprising:

performing, by a computing device, a cipher block chaining message authentication code (CBC-MAC) authentication operation on a message with an encryption key using a 64-bit block cipher to generate a message authentication code, wherein performing the CBC-MAC authentication operation comprises formatting the message into one or more 64-bit authentication blocks;

performing, by the computing device, a counter mode encryption operation on the message with the encryption key using the 64-bit block cipher to generate a cipher text, wherein performing the counter mode encryption operation comprises generating a plurality of 64-bit keystream blocks; and

generating, by the computing device, an authentication tag based on the message authentication code and a first keystream block of the plurality of 64-bit keystream blocks;

wherein performing the CBC-MAC authentication operation comprises generating a first 64-bit authentication block, wherein the first 64-bit authentication block includes a flag field F, a nonce field N, and a message length field l(m), wherein the message length field l(m) is indicative of a length of the message in bytes, and wherein the flag field F has a length of 8 bits, the message length field l(m) has a length L of between 11 and 32 bits, inclusive, and the nonce field N has a length of 56 minus the length L bits.

11. The method of claim 10 , wherein the flag field F of the first 64-bit authentication block includes an authentication tag length M field and a length L field.

12. The method of claim 11 , wherein the length L field comprises a five-bit field encoded as the value of an expression L−1.

13. The method of claim 10 , wherein performing the counter mode encryption operation comprises:

generating a plurality of 64-bit counter blocks; and

encrypting each of the plurality of 64-bit counter blocks to generate a corresponding 64-bit keystream block.

14. The method of claim 13 , wherein the each of the plurality of 64-bit counter blocks includes a flag field F, a nonce field N, and a zero-initialized counter field, wherein the flag field F of the each of the plurality of 64-bit counter blocks has a length of 8 bits, the counter field of the each of the plurality of 64-bit counter blocks has a length L of between 11 and 32 bits, inclusive, and the nonce field N of the each of the plurality of 64-bit counter blocks has a length of 56 minus the length L bits.

15. The method of claim 14 , wherein the flag field F of the each of the plurality of 64-bit counter blocks includes three most-significant bits that must be zero and a five-bit length L field, wherein the five-bit length L field is encoded as the value of an expression L−1.

16. One or more non-transitory, computer-readable storage media comprising a plurality of instructions that in response to being executed cause a computing device to:

perform a cipher block chaining message authentication code (CBC-MAC) authentication operation on a message with an encryption key using a 64-bit block cipher to generate a message authentication code, wherein performing the CBC-MAC authentication operation comprises formatting the message into one or more 64-bit authentication blocks;

perform a counter mode encryption operation on the message with the encryption key using the 64-bit block cipher to generate a cipher text, wherein performing the counter mode encryption operation comprises generating a plurality of 64-bit keystream blocks; and

generate an authentication tag based on the message authentication code and a first keystream block of the plurality of 64-bit keystream blocks;

wherein to perform the CBC-MAC authentication operation comprises to generate a first 64-bit authentication block, wherein the first 64-bit authentication block includes a flag field F, a nonce field N, and a message length field l(m), wherein the message length field l(m) is indicative of a length of the message in bytes, and wherein the flag field F has a length of 8 bits, the message length field l(m) has a length L of between 11 and 32 bits, inclusive, and the nonce field N has a length of 56 minus the length L bits.

17. The one or more non-transitory, computer-readable storage media of claim 16 , wherein the flag field F of the first 64-bit authentication block includes an authentication tag length M field and a length L field.

18. The one or more non-transitory, computer-readable storage media of claim 17 , wherein the authentication tag length M field comprises a two-bit field, wherein valid values for the authentication tag length M include 64 bits, 48 bits, and 32 bits, and wherein the authentication tag length M field is encoded as the value of an expression:

M

8

-

2

2

.

19. The one or more non-transitory, computer-readable storage media of claim 17 , wherein the length L field comprises a five-bit field encoded as the value of an expression L−1.

20. The one or more non-transitory, computer-readable storage media of claim 16 , wherein to perform the counter mode encryption operation comprises to:

generate a plurality of 64-bit counter blocks; and

encrypt each of the plurality of 64-bit counter blocks to generate a corresponding 64-bit keystream block.

21. The one or more non-transitory, computer-readable storage media of claim 20 , wherein the each of the plurality of 64-bit counter blocks includes a flag field F, a nonce field N, and a zero-initialized counter field, wherein the flag field F of the each of the plurality of 64-bit counter blocks has a length of 8 bits, the counter field of the each of the plurality of 64-bit counter blocks has a length L of between 11 and 32 bits, inclusive, and the nonce field N of the each of the plurality of 64-bit counter blocks has a length of 56 minus the length L bits.

22. The one or more non-transitory, computer-readable storage media of claim 21 , wherein the flag field F of the each of the plurality of 64-bit counter blocks includes three most-significant bits that must be zero and a five-bit length L field, wherein the five-bit length L field is encoded as the value of an expression L −1.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2016
From: GHOSH, SANTOSH; SASTRY, MANOJ R.; WALKER, JESSE; ZHAO, LI; MISOCZKI, RAFAEL
To: INTEL CORPORATION
Reel/Frame 040701/0281 →
Continuity (1)
Related Publication 20180139051A1 · May 17, 2018