IP Library Granted Patent US 11,520,905
Granted Patent B2
US 11,520,905 · App. 16/689,122 · Granted Dec 6, 2022

Smart data protection

Inventors: Vinod A. Valecha (Pune, IN); Krzysztof Rudek (Nowy Wisnicz, PL); Grzegorz Piotr Szczepanik (Cracow, PL); Lukasz Jakub Palus (Cracow, PL)
Assignee: KYNDRYL, INC.
G06F21/602H04L9/0838H04L9/0894H04L9/3297
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,520,905
App. No.
16/689,122
Granted
Dec 6, 2022
Kind
B2
Abstract

When a system receives sensitive data, it can request an encryption key from an encryption/decryption unit. A central processing unit (CPU) of the system can encrypt the sensitive data using the encryption key before writing the sensitive data to memory. Thus, the sensitive data is encrypted when written to memory.

Claims (82)

1. A method, comprising:

receiving by a processor unencrypted sensitive data, specified as a particular data type in application source code, with instructions compiled from the application source code for the particular data type to encrypt the sensitive data for writing to a live memory, the live memory including unencrypted nonsensitive data;

determining that the data comprises the sensitive data based on one or more tags included with the sensitive data comprising sensitive data type information;

requesting a different encryption key from a key manager for each instance of the sensitive data;

receiving the encryption key, the encryption key associated with the sensitive data; and

preventing an unencrypted form of the sensitive data from being stored in the live memory, wherein the preventing includes:

encrypting the sensitive data using the encryption key;

writing the encrypted sensitive data to the live memory;

storing the different encryption key in an encryption key database for each instance of sensitive data; and

storing a sensitive data type identifier associated with the different encryption key in the encryption key database.

2. The method of claim 1 , further comprising:

retrieving the encrypted sensitive data from the live memory;

requesting a decryption key from the key manager, the decryption key associated with an instance of the sensitive data of the particular type;

receiving the decryption key;

decrypting the encrypted sensitive data using the decryption key; and

executing an operation using the decrypted sensitive data.

3. The method of claim 1 , further comprising:

determining, based on the one or more tags, a sensitive data type of the sensitive data; and

wherein:

the requesting comprises sending a request to the key manager, the request including the sensitive data type; and

the encryption key is associated with the sensitive data type.

4. The method of claim 3 , wherein the sensitive data type is one of a financial data type, personal information data type, and a medical data type.

5. The method of claim 1 , further comprising:

storing a timestamp in the encryption key database, the timestamp associated with a first use of the encryption key;

determining an age of the encryption key based on comparing a current time and current date to a time and to a date identified in the timestamp;

determining whether the age of the encryption key is greater than a threshold age; and

responsive to a determination that the age of the encryption key is greater than the threshold age:

generating a new encryption key;

generating a new timestamp based on a current date and time;

overwriting the encryption key with the new encryption key; and

overwriting the timestamp with the new timestamp.

6. A system, comprising:

a live memory, the live memory including unencrypted nonsensitive data;

a central processing unit (CPU), the CPU configured to:

receive unencrypted sensitive data, specified as a particular data type in application source code, with instructions compiled from the application source code for the particular data type to encrypt the sensitive data for writing to the live memory;

determine that the data comprises the sensitive data based on one or more tags included with the sensitive data comprising sensitive data type information;

determine a different encryption key for each instance of the sensitive data, the encryption key associated with the sensitive data; and

prevent an unencrypted form of the sensitive data from being stored in the live memory, wherein the preventing includes:

encrypting the sensitive data based on the encryption key;

writing the encrypted sensitive data to the live memory;

store the different encryption key in an encryption key database for each instance of sensitive data; and

store a sensitive data type identifier associated with the different encryption key in the encryption key database.

7. The system of claim 6 , wherein the CPU is further configured to:

retrieve the encrypted sensitive data from the live memory;

determine a decryption key, the decryption key associated with the sensitive data; and

decrypt the encrypted sensitive based on the decryption key.

8. The system of claim 6 , wherein the CPU is further configured to determine, based on the one or more tags, a sensitive data type of the sensitive data, wherein the encryption key is associated with the sensitive data type.

9. The system of claim 8 , wherein the sensitive data type is one of a financial data type, personal information data type, and a medical data type.

10. The system of claim 6 , wherein the CPU is further configured to:

store a timestamp in the encryption key database, the timestamp associated with a first use of the encryption key;

store a threshold age in the encryption key database;

determine an age of the encryption key based on comparing a current time and current date to a time and to a date identified in the timestamp;

determine whether the age of the encryption key is greater than the threshold age; and

responsive to a determination that the age of the encryption key is greater than the threshold age:

generate a new encryption key;

generate a new timestamp based on a current date and time;

overwrite the encryption key with the new encryption key; and

overwrite the timestamp with the new timestamp.

11. A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to:

receive unencrypted sensitive data, specified as a particular object type in application source code, with instructions compiled from the application source code for the particular object type to encrypt the sensitive data for writing to a live memory, the live memory including unencrypted nonsensitive data;

determine that the data comprises the sensitive data based on one or more tags included with the sensitive data comprising sensitive data type information;

determine a different encryption key for each instance of the sensitive data, the encryption key associated with the sensitive data; and

prevent an unencrypted form of the sensitive data from being stored in the live memory, wherein the preventing includes:

encrypting the sensitive data based on the encryption key;

writing the encrypted sensitive data to the live memory;

store the different encryption key in an encryption key database for each instance of sensitive data; and

store a sensitive data type identifier associated with the different encryption key in the encryption key database.

12. The computer program product of claim 11 , wherein the instructions further cause the computer to:

retrieve the encrypted sensitive data from the live memory;

determine a decryption key, the decryption key associated with the sensitive data; and

decrypt the encrypted sensitive based on the decryption key.

13. The computer program product of claim 11 , wherein the instructions further cause the computer to determine, based on the one or more tags, a sensitive data type of the sensitive data, wherein the encryption key is associated with the sensitive data type.

14. The computer program product of claim 11 , wherein the instructions further cause the computer to:

store a timestamp in the encryption key database, the timestamp associated with a first use of the encryption key;

store a threshold age in the encryption key database;

determine an age of the encryption key based on comparing a current time and current date to a time and to a date identified in the timestamp;

determine whether the age of the encryption key is greater than the threshold age; and

responsive to a determination that the age of the encryption key is greater than the threshold age:

generate a new encryption key;

generate a new timestamp based on a current date and time;

overwrite the encryption key with the new encryption key; and

overwrite the timestamp with the new timestamp.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 058213/0912 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2019
From: VALECHA, VINOD A.; RUDEK, KRZYSZTOF; SZCZEPANIK, GRZEGORZ PIOTR; PALUS, LUKASZ JAKUB
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 051057/0991 →
Continuity (1)
Related Publication 20210150038A1 · May 20, 2021
Cited By (2)
US 12,561,075 US 12,563,020