ENCRYPTION OF EXECUTABLES IN COMPUTATIONAL MEMORY
First Claim
Patent Images
1. A method, comprising:
- traversing, by computational memory, an operating system page table in the computational memory for a page marked as executable;
in response to finding a page marked as executable, determining whether the page marked as executable has been encrypted;
in response to determining that the page marked as executable is not encrypted, generating a key for the page marked as executable; and
encrypting the page marked as executable using the key.
8 Assignments
0 Petitions
Accused Products
Abstract
The present disclosure is related to encryption of executables in computational memory. Computational memory can traverse an operating system page table in the computational memory for a page marked as executable. In response to finding a page marked as executable, the computational memory can determine whether the page marked as executable has been encrypted. In response to determining that the page marked as executable is not encrypted, the computational memory can generate a key for the page marked as executable. The computational memory can encrypt the page marked as executable using the key.
-
Citations
29 Claims
-
1. A method, comprising:
-
traversing, by computational memory, an operating system page table in the computational memory for a page marked as executable; in response to finding a page marked as executable, determining whether the page marked as executable has been encrypted; in response to determining that the page marked as executable is not encrypted, generating a key for the page marked as executable; and encrypting the page marked as executable using the key. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method, comprising:
-
traversing, by computational memory, an operating system page table in the computational memory for any page marked as executable; in response to finding a first page marked as executable, determining whether the first page marked as executable has been encrypted; in response to determining that the first page marked as executable is not encrypted, generating a first key for the first page marked as executable; encrypting the first page marked as executable using the first key; in response to finding a second page marked as executable, determining whether the second page marked as executable has been encrypted; in response to determining that the second page marked as executable is not encrypted, generating a second key for the second page marked as executable; and encrypting the second page marked as executable using the second key. - View Dependent Claims (10, 11)
-
-
12. A non-transitory computer readable medium storing instructions executable by computational memory to:
-
determine whether a requested page in the computational memory marked as executable has been encrypted; in response to determining that the requested page is not encrypted; store the requested page in cache of the computational memory; generate a key; encrypt the requested page using the key; and store the encrypted page in place of the requested page in the computational memory; and in response to determining that the requested page is encrypted; generate a new key; re-encrypt the requested page using the new key; store the re-encrypted page in place of the requested page in the computational memory; and decrypt the requested page and store the decrypted page in the cache of the computational memory. - View Dependent Claims (13, 14, 15, 16)
-
-
17. An apparatus, comprising:
-
a computational memory; and an operating system page table stored in the computational memory, wherein the operating system page table includes; an indication of whether a respective page is encrypted; a respective key for each page that is encrypted; a virtual address corresponding to the respective page; a physical address corresponding to the respective page; and a marking of a type of the respective page; and wherein the computational memory is configured to maintain the operating system page table. - View Dependent Claims (18, 19, 20, 21, 22)
-
-
23. An apparatus, comprising:
a computational memory configured to; encrypt a first page in response to the first page not being encrypted and in response to the first page being marked as executable according to a traversal of an operating system page table in the computational memory by the computational memory; encrypt a second page marked as executable in response to the second page not being encrypted and in response to the second page being requested; and re-encrypt a third page marked as executable in response to the third page being encrypted and in response to the third page being requested. - View Dependent Claims (24, 25, 26, 27, 28)
-
29. A method, comprising:
-
receiving a request for a page stored in a computational memory; determining whether the requested page has been marked as executable in an operating system page table in the computational memory; determining whether the requested page has been indicated as encrypted in the operating system page table in the computational memory; and in response to determining that the requested page is executable and encrypted; generating a new key; re-encrypting the requested page using the new key; storing the re-encrypted page in place of the requested page in the computational memory; decrypting the requested page and storing the decrypted page in the cache of the computational memory; and transferring the decrypted requested page from the cache to satisfy the request.
-
Specification