IP Library Granted Patent US 11,917,072
Granted Patent B2
US 11,917,072 · App. 17/111,312 · Granted Feb 27, 2024

Implementing opportunistic authentication of encrypted data

Inventors: Glen Alan Jaquette (Tucson, AZ); William J. Scales (Fareham, GB); Danny Harnik (Tel Mond, IL)
Assignee: International Business Machines Corporation
H04L9/3242G06F21/602G06F21/64H04L9/0643G06F21/6218H04L9/0618H04L63/123H04L2209/20H04L2209/30
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 11,917,072
App. No.
17/111,312
Granted
Feb 27, 2024
Kind
B2
Abstract

A computer-implemented method according to one embodiment includes compressing an uncompressed instance of data to create a compressed instance of data; encrypting the compressed instance of data in response to determining that a size of the compressed instance of data is less than a predetermined threshold; creating a message authentication code (MAC) for the encrypted compressed instance of data; and adding a variable-length zero pad and the MAC to the encrypted compressed instance of data to create a formatted string.

Claims (44)

1. A computer-implemented method, comprising:

compressing an uncompressed instance of data to create a compressed instance of data;

in response to determining that a size of the compressed instance of data is less than a predetermined threshold, encrypting the compressed instance of data, wherein the compressed instance of data is encrypted utilizing an encryption technique selected from the group consisting of: wide-block encryption and an expanding encryption mode which includes an initialization vector;

creating a message authentication code (MAC) for the encrypted compressed instance of data, wherein the MAC includes a keyed-hash message authentication code or a hash-based message authentication code;

adding at least a zero pad, a length field, and the MAC to the encrypted compressed instance of data to create a formatted string having a length equal to a length of the uncompressed instance of data, wherein the predetermined threshold includes a size of a sum of the length field, a predetermined minimum zero pad amount, and the MAC;

comparing the formatted string to other formatted strings stored in a data storage to determine whether any duplicates exist in the data storage;

in response to determining that a duplicate exists in the data storage, removing the duplicate;

and

in response to determining that the size of the compressed instance of data is greater than the predetermined threshold:

abandoning the compressed instance of data, and

encrypting the uncompressed instance of data to create the formatted string, wherein the encrypted uncompressed instance of data has the same length as the uncompressed instance of data.

2. The computer-implemented method of claim 1 , wherein the length field includes a field that indicates a length of the encrypted compressed instance of data.

3. The computer-implemented method of claim 1 , wherein the zero pad includes a variable number of bytes of a highly compressible and readily detectable data pattern.

4. The computer-implemented method of claim 1 , further comprising storing or transmitting the formatted string, wherein the encrypted uncompressed instance of data includes at least one instance of ciphertext.

5. The computer-implemented method of claim 1 , wherein the MAC includes a Galois message authentication code (GMAC) that is created as part of a Galois counter mode (GCM) encryption mode.

6. The computer-implemented method of claim 1 , wherein the MAC is used to verify data integrity and authenticity of the formatted string.

7. The computer-implemented method of claim 5 , wherein the uncompressed instance of data includes an instance of plaintext.

8. A computer program product comprising one or more non-transitory computer readable storage media, and program instructions collectively stored on the one or more non-transitory computer readable storage media, the program instructions comprising instructions configured to cause one or more processors to perform a method comprising:

compressing, by the one or more processors, an uncompressed instance of data to create a compressed instance of data;

determining, by the one or more processors, whether a size of the compressed instance of data is less than a predetermined threshold;

encrypting, by the one or more processors, the compressed instance of data in response to determining that the size of the compressed instance of data is less than the predetermined threshold, wherein the compressed instance of data is encrypted utilizing an encryption technique selected from the group consisting of: wide-block encryption and an expanding encryption mode which includes an initialization vector;

creating, by the one or more processors, a message authentication code (MAC) for the encrypted compressed instance of data, wherein the MAC includes a Galois message authentication code (GMAC) that is created as part of a Galois counter mode (GCM) encryption mode;

adding, by the one or more processors, at least a zero pad, a length field, and the MAC to the encrypted compressed instance of data to create a formatted string having a length equal to a length of the uncompressed instance of data, wherein the predetermined threshold includes a size of a sum of the length field, a predetermined minimum zero pad amount, and the MAC;

comparing, by the one or more processors, the formatted string to other formatted strings stored in a data storage to determine whether any duplicates exist in the data storage;

in response to determining that a duplicate exists in the data storage, removing, by the one or more processors, the duplicate; and

determining, by the one or more processors, whether the size of the compressed instance of data is greater than the predetermined threshold;

abandoning the compressed instance of data, and encrypting the uncompressed instance of data to create the formatted string, in response to determining that the size of the compressed instance of data is greater than the predetermined threshold, wherein the encrypted uncompressed instance of data has the same length as the uncompressed instance of data.

9. The computer program product of claim 8 , wherein the uncompressed instance of data includes an instance of plaintext.

10. The computer program product of claim 8 , comprising:

compressing, by the one or more processors, a second uncompressed instance of data to create a second compressed instance of data;

abandoning, by the one or more processors, the second compressed instance of data in response to determining that a size of the second compressed instance of data is greater than the predetermined threshold; and

encrypting, by the one or more processors, the second uncompressed instance of data in response to the determination that the size of the second compressed instance of data is greater than the predetermined threshold, wherein the encrypted second uncompressed instance of data has the same length as the second uncompressed instance of data.

11. A computer-implemented method, comprising:

compressing an uncompressed instance of data to create a compressed instance of data, wherein the compressed instance of data is encrypted utilizing an encryption technique selected from the group consisting of: wide-block encryption and an expanding encryption mode which includes an initialization vector;

in response to determining that a size of the compressed instance of data is less than a predetermined threshold:

encrypting the compressed instance of data,

creating a message authentication code (MAC) for the encrypted compressed instance of data, wherein the MAC includes a Galois message authentication code (GMAC) that is created as part of a Galois counter mode (GCM) encryption mode, and

adding at least a zero pad, a length field, and the MAC to the encrypted compressed instance of data to create a formatted string having a length equal to a length of the uncompressed instance of data, wherein the predetermined threshold includes a size of a sum of the length field, a predetermined minimum zero pad amount, and the MAC; and

in response to determining that the size of the compressed instance of data is greater than the predetermined threshold:

abandoning the compressed instance of data, and

encrypting the uncompressed instance of data to create the formatted string, wherein the encrypted uncompressed instance of data has the same length as the uncompressed instance of data;

comparing the formatted string to other formatted strings stored in a data storage to determine whether any duplicates exist in the data storage; and

in response to determining that a duplicate exists in the data storage, removing the duplicate.

12. The computer-implemented method of claim 11 , wherein the encrypted uncompressed instance of data includes at least one instance of ciphertext.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2020
From: JAQUETTE, GLEN ALAN; SCALES, WILLIAM J.; HARNIK, DANNY
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 054768/0405 →
Continuity (1)
Related Publication 20220182242A1 · Jun 9, 2022