IP Library Granted Patent US 12,603,773
Granted Patent B2
US 12,603,773 · App. 18/065,048 · Granted Apr 14, 2026

Handling of database encryption key revocation

Inventors: Beomsoo Kim (Seoul, KR); Yong Sik Kwon (Seoul, KR); Ji Hoon Jang (Seoul, KR); Hyeong Seog Kim (Seoul, KR)
Assignee: SAP SE
H04L9/0891G06F21/602G06F21/6218
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 12,603,773
App. No.
18/065,048
Granted
Apr 14, 2026
Kind
B2
Abstract

Systems and methods include storage of a plurality of encrypted data pages of a row store database table in a persistent storage system, determination of a first encryption key associated with one of the plurality of encrypted data pages based on a header of the one of the plurality of encrypted data pages, determination of whether the first encryption key has been revoked, and, if it is determined that the first encryption key has been revoked, adding of a portion of volatile memory allocated to the one of the plurality of data pages to a free list.

Claims (59)

1 . A database system comprising:

a persistent storage system;

a volatile memory; and

a processing unit to execute program code of a database instance to cause the database system to:

store a plurality of encrypted data pages of a row store database table at a database savepoint;

detect a database restart and, in response to detection of the database restart:

determine, based on a header of one of the plurality of encrypted data pages, a first encryption key used to encrypt a body of the one of the plurality of data pages;

determine that the first encryption key has been revoked;

in response to the determination that the first encryption key has been revoked, add a portion of the volatile memory allocated to the one of the plurality of data pages to a free list of the volatile memory;

determine a plurality of encrypted undo data pages of uncommitted transactions of the database savepoint in the persistent storage system;

determine, based on a header of one of the plurality of encrypted undo data pages, a third encryption key used to encrypt a body of the one of the plurality of encrypted undo data pages;

determine that the third encryption key has been revoked; and

in response to the determination that the third encryption key has been revoked, clear a body of the one of the plurality of encrypted undo data pages and provide the one of the plurality of undo data pages with the cleared body to a rollback mechanism of a database instance.

2 . A system according to claim 1 , wherein the processing unit is to execute program code of the database instance to cause the database system to:

determine, based on a second header of a second one of the plurality of encrypted data pages, a second encryption key used to encrypt a second body of the second one of the plurality of data pages;

determine that the second encryption key has not been revoked;

in response to the determination that the second encryption key has not been revoked, decrypt the second body of the second one of the plurality of data pages using the second encryption key; and

load a second data page comprising the second header and the second decrypted body in the volatile memory.

3 . A system according to claim 2 , wherein determination that the first encryption key has been revoked comprises determination that a key encryption key used to encrypt the first encryption key has been revoked.

4 . A system according to claim 3 , wherein determination that the key encryption key used to encrypt the first encryption key has been revoked comprises polling of a key management system storing the key encryption key.

5 . A system according to claim 1 , wherein determination that the first encryption key has been revoked comprises determination that a key encryption key used to encrypt the first encryption key has been revoked.

6 . A system according to claim 5 , wherein determination that the key encryption key used to encrypt the first encryption key has been revoked comprises polling of a key management system storing the key encryption key.

7 . A method comprising:

storing a plurality of encrypted data pages of a row store database table in a persistent storage system at a database savepoint;

detecting a database restart and, in response to detecting the database restart:

determining, based on a header of one of the plurality of encrypted data pages, a first encryption key used to encrypt a body of one of the plurality of encrypted data pages;

determining that the first encryption key has been revoked;

in response to determining that the first encryption key has been revoked, adding a portion of volatile memory allocated to the one of the plurality of data pages to a free list;

determining a plurality of encrypted undo data pages of uncommitted transactions of the database savepoint in the persistent storage system;

determining, based on a header of one of the plurality of encrypted undo data pages, a third encryption key used to encrypt the one of the plurality of encrypted undo data pages;

determining that the third encryption key has been revoked; and

in response to determining that the third encryption key has been revoked, clearing a body of the one of the plurality of encrypted undo data pages and providing the one of the plurality of undo data pages with the cleared body to a rollback mechanism of a database instance.

8 . A method according to claim 7 , further comprising:

determining, based on a second header of a second one of the plurality of encrypted data pages, a second encryption key used to encrypt a second body of the second one of the plurality of data pages;

determining that the second encryption key has not been revoked;

in response to determining that the second encryption key has not been revoked, decrypting the encrypted second body of the second one of the plurality of encrypted data pages using the second encryption key; and

loading a second data page comprising the second header and the decrypted second body into the volatile memory.

9 . A method according to claim 8 , wherein determining that the first encryption key has been revoked comprises determining that a key encryption key used to encrypt the first encryption key has been revoked.

10 . A method according to claim 9 , wherein determining that the key encryption key used to encrypt the first encryption key has been revoked comprises polling a key management system storing the key encryption key.

11 . A method according to claim 7 , wherein determining that the first encryption key has been revoked comprises determining that a key encryption key used to encrypt the first encryption key has been revoked.

12 . A method according to claim 11 , wherein determining that the key encryption key used to encrypt the first encryption key has been revoked comprises polling a key management system storing the key encryption key.

13 . A non-transitory computer-readable medium storing program code executable by one or more processing units to cause a computing system to:

store a plurality of encrypted data pages of a row store database table in a persistent storage system at a database savepoint;

detect a database restart and, in response to detection of the database restart:

determine, based on a header of one of the plurality of encrypted data pages, a first encryption key used to encrypt a body of one of the plurality of encrypted data pages;

determine that the first encryption key has been revoked;

in response to the determination that the first encryption key has been revoked, add a portion of volatile memory allocated to the one of the plurality of data pages to a free list;

determine a plurality of encrypted undo data pages of uncommitted transactions of the database savepoint in the persistent storage system;

determine, based on a header of one of the plurality of encrypted undo data pages, a third encryption key used to encrypt the one of the plurality of encrypted undo data pages;

determine that the third encryption key has been revoked; and

in response to the determination that the third encryption key has been revoked, clear a body of the one of the plurality of encrypted undo data pages and provide the one of the plurality of undo data pages with the cleared body to a rollback mechanism of a database instance.

14 . A medium according to claim 13 , the program code executable by one or more processing units to cause a computing system to:

determine, based on a second header of a second one of the plurality of encrypted data pages, a second encryption key used to encrypt a second body of the second one of the plurality of data pages;

determine that the second encryption key has not been revoked;

in response to the determination that the second encryption key has not been revoked, decrypt a second body of the second one of the plurality of encrypted data pages using the second encryption key; and

load a second data page comprising the second header and the decrypted second body into the volatile memory.

15 . A medium according to claim 14 , wherein determination that the first encryption key has been revoked comprises determination that a key encryption key used to encrypt the first encryption key has been revoked.

16 . A medium according to claim 15 , wherein determination that the key encryption key used to encrypt the first encryption key has been revoked comprises polling of a key management system storing the key encryption key.

17 . A medium according to claim 13 , wherein determination that the first encryption key has been revoked comprises determination of whether a key encryption key used to encrypt the first encryption key has been revoked.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2022
From: KIM, BEOMSOO; KWON, YONG SIK; JANG, JI HOON; KIM, HYEONG SEOG
To: SAP SE
Reel/Frame 062067/0058 →
Continuity (1)
Related Publication 20240195617A1 · Jun 13, 2024
References Cited (9)
US 8639625B1 · Ginter · 2014 [cited by examiner]
US 11736482B2 · Hall · 2023 [cited by examiner]
US 20200259896A1 · Sachs · 2020 [cited by examiner]
US 20200301787A1 · Cabral · 2020 [cited by examiner]
US 20220266446A1 · Cristache · 2022 [cited by examiner]
US 20220382915A1 · Thomsen · 2022 [cited by applicant]
US 20240160582A1 · Gonabal · 2024 [cited by examiner]
Communication: “Extended European Search Report”, Apr. 3, 2024 (Apr. 3, 2024), European Patent Office, for European Application No. 23180668.8-1203, 11 pages. [cited by applicant]
Wu, Yuming et al., “Comprehensive VM Protection against Untrusted Hypervisor through Retrofitted AMD Memory Encryption”, 2018 IEEE International Symposium on High Performance Computer Architecture, Feb. 24, 2018 (Feb. 2… [cited by applicant]