IP Library Granted Patent US 12,360,919
Granted Patent B1
US 12,360,919 · App. 18/633,206 · Granted Jul 15, 2025

Computer system for transparent key roll

Inventors: Andrew James Weiler (Nampa, ID); Nathan Charles Chrisman (Nampa, ID); Claude Harmon Garrett, V (Meridian, ID); Dale Weston Reese (Boise, ID)
Assignee: Idaho Scientific LLC
G06F12/1441G06F12/1408
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,360,919
App. No.
18/633,206
Granted
Jul 15, 2025
Kind
B1
Abstract

Rolling encryption within a memory region. A method includes storing data in a first encrypted memory portion in the memory region. The data in the first encrypted memory portion is encrypted to a first runtime encryption key. Data is stored in a second encrypted memory portion in the memory region. The data in the second encrypted memory portion is encrypted to a second runtime encryption key. A pointer is stored. The pointer defines a boundary between the first encrypted memory portion and the second encrypted memory portion. The first encrypted memory portion and second encrypted memory portion are both configured to be accessible together to entities external to the memory to provide data stored in the first encrypted memory portion and second encrypted memory portion.

Claims (48)

1. A method of rolling a key within a memory region, the method comprising:

storing data in a first encrypted memory portion in the memory region, the data in the first encrypted memory portion being encrypted to a first runtime encryption key;

storing data in a second encrypted memory portion in the memory region, the data in the second encrypted memory portion being encrypted to a second runtime encryption key;

storing a pointer, the pointer defining a boundary between the first encrypted memory portion and the second encrypted memory portion;

wherein the first encrypted memory portion and second encrypted memory portion are both configured to be accessible together to entities external to the memory to provide data stored in the first encrypted memory portion and second encrypted memory portion; and

rolling the first encrypted memory portion into the second encrypted memory portion by iteratively:

reading data in one or more slots in the first encrypted memory portion using the first runtime encryption key;

writing the data to the one or more slots using the second runtime encryption key; and

moving the pointer such that the one or more slots are in the second encrypted memory portion; and

wherein rolling the first encrypted memory portion into the second encrypted memory portion is performed by performing each iteration based on a memory regions size and number of operations to wear out a key such that all slots in the first encrypted memory portion have been rolled to the second encrypted memory portion such that a quantity of memory operations performed on the first encrypted memory portion is no more than ½ of the number of memory operations to wear out the first key.

2. The method of claim 1 , further comprising implementing collision mitigation functionality whereby all transactions related to a given slot are allowed to complete and then all applications or other external entities are blocked from accessing the given slot until a key is rolled at the given slot.

3. The method of claim 1 , further comprising implementing collision mitigation functionality whereby external entities are blocked from accessing the first encrypted memory portion when a key roll at any slot in the first encrypted memory portion is occurring.

4. The method of claim 1 , further comprising implementing collision mitigation functionality whereby key rolling is prevented for a particular slot while applications are attempting to write to the slot.

5. The method of claim 1 , further comprising implementing collision mitigation functionality whereby key rolling is prevented for a particular slot while transactions are open for the slot.

6. The method of claim 1 , further comprising broadcasting a location of a slot for which a key roll is to occur.

7. A system for rolling encryption within a memory, the system comprising:

a first encrypted memory portion in the memory, the first encrypted memory portion encrypted with a first runtime encryption key;

a second encrypted memory portion in the memory, the second encrypted memory portion encrypted with a second runtime encryption key;

a pointer stored within a hardware device, the pointer defining a boundary between the first encrypted memory portion and the second encrypted memory portion

a key roll manager configured to roll the first encrypted memory portion into the second encrypted memory portion by iteratively:

reading data in one or more slots in the first encrypted memory portion using the first runtime encryption key;

writing the data to the one or more slots using the second runtime encryption key; and

moving the pointer such that the one or more slots are in the second encrypted memory portion; and

wherein rolling the first encrypted memory portion into the second encrypted memory portion is performed by performing each iteration based on a memory regions size and number of operations to wear out a key such that all slots in the first encrypted memory portion have been rolled to the second encrypted memory portion such that a quantity of memory operations performed on the first encrypted memory portion is no more than ½ of the number of memory operations to wear out the first key.

8. The system of claim 7 , further comprising a key roll manager and an app manager configured to implement collision mitigation functionality whereby all transactions related to a given slot are allowed to complete and then all applications or other external entities are blocked from accessing the given slot until a key is rolled at the given slot.

9. The system of claim 7 , further comprising a key roll manager and an app manager configured to implement collision mitigation functionality whereby external entities are blocked from accessing the first encrypted memory portion when a key roll at any slot in the first encrypted memory portion is occurring.

10. The system of claim 7 , further comprising a key roll manager and an app manager configured to implement collision mitigation functionality whereby key rolling is prevented for a particular slot while applications are attempting to write to the slot.

11. The system of claim 7 , further comprising a key roll manager and an app manager configured to implement collision mitigation functionality whereby key rolling is prevented for a particular slot while transactions are open for the slot.

12. The system of claim 7 , further comprising a key roll manager configured to broadcast a location of a slot for which a key roll is to occur.

13. The system of claim 7 , wherein the system is configured to use a same nonce value so long as a write occurs to a higher address value than a current write location and to increment the nonce when writes occur to a same or lower address value than a current write location.

14. The system of claim 7 , wherein the system is configured to use a same nonce value so long as a write occurs to a lower address value than a current write location and to increment the nonce when writes occur to a same or higher address value than a current write location.

15. A computing system comprising:

one or more processors; and

one or more computer-readable media devices having stored thereon instructions that are executable by the one or more processors to configure the computer system to roll a key within a memory region, including instructions that are executable to configure the computer system to perform at least the following:

store data in a first encrypted memory portion in the memory region, the data in the first encrypted memory portion being encrypted to a first runtime encryption key;

store data in a second encrypted memory portion in the memory region, the data in the second encrypted memory portion being encrypted to a second runtime encryption key;

store a pointer, the pointer defining a boundary between the first encrypted memory portion and the second encrypted memory portion; and

wherein the first encrypted memory portion and second encrypted memory portion are both configured to be accessible together to entities external to the memory to provide data stored in the first encrypted memory portion and second encrypted memory portion; and

roll the first encrypted memory portion into the second encrypted memory portion by iteratively:

reading data in one or more slots in the first encrypted memory portion using the first runtime encryption key;

writing the data to the one or more slots using the second runtime encryption key; and

moving the pointer such that the one or more slots are in the second encrypted memory portion; and

wherein rolling the first encrypted memory portion into the second encrypted memory portion is performed performing each iteration based on a memory regions size and number of operations to wear out a key such that all slots in the first encrypted memory portion have been rolled to the second encrypted memory portion such that a quantity of memory operations performed on the first encrypted memory portion is no more than ½ of the number of memory operations to wear out the first key.

16. The computing system of claim 15 , wherein the one or more computer-readable media devices further have stored thereon instructions that are executable by the one or more processors to configure the computer system to implement collision mitigation functionality whereby all transactions related to a given slot are allowed to complete and then all applications or other external entities are blocked from accessing the given slot until a key is rolled at the given slot.

17. The computing system of claim 15 , wherein the one or more computer-readable media devices further have stored thereon instructions that are executable by the one or more processors to configure the computer system to implement collision mitigation functionality whereby external entities are blocked from accessing the first encrypted memory portion when a key roll at any slot in the first encrypted memory portion is occurring.

18. The computing system of claim 15 , wherein the one or more computer-readable media devices further have stored thereon instructions that are executable by the one or more processors to configure the computer system to implement collision mitigation functionality whereby key rolling is prevented for a particular slot while applications are attempting to write to the slot.

19. The computing system of claim 15 , wherein the one or more computer-readable media devices further have stored thereon instructions that are executable by the one or more processors to configure the computer system to implement collision mitigation functionality whereby key rolling is prevented for a particular slot while transactions are open for the slot.

20. The computing system of claim 15 , wherein the one or more computer-readable media devices further have stored thereon instructions that are executable by the one or more processors to configure the computer system to broadcast a location of a slot for which a key roll is to occur.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2026
From: IDAHO SCIENTIFIC LLC
To: GENERAL DYNAMICS MISSION SYSTEMS,
Reel/Frame 073779/0359 →
CONFIRMATORY LICENSE Recorded Jul 23, 2024
From: IDAHO SCIENTIFIC
To: GOVERNMENT OF THE UNITED STATES AS REPRESENTED BY THE SECRETARY OF THE AIR FORCE
Reel/Frame 068490/0440 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2024
From: WEILER, ANDREW JAMES; CHRISMAN, NATHAN CHARLES; GARRETT, CLAUDE HARMON, V; REESE, DALE WESTON
To: IDAHO SCIENTIFIC LLC
Reel/Frame 067081/0913 →
References Cited (3)
US 20190319781A1 · Chhabra · 2019 [cited by examiner]
US 20240291635A1 · Morshed · 2024 [cited by examiner]
Congwu Li, Le Guan; Mimosa: Protecting Private Keys Against Memory Disclosure Attacks Using Hardware Transactional Memory; IEEE: year:2015; pp. 1196-1213. [cited by examiner]
Cited By (1)
US 12,537,677