Claims
- 1. In a hierarchical digital data structure comprising a plurality of memory cells, a method of preventing recovery of deleted data comprising the steps of:
obtaining a first address of a first memory cell in the data structure; providing a first cryptographic key; associating the first address and the first cryptographic key with one another so as to form a first logical entity defining a first crypto-pointer to the first memory cell; encrypting first data using the first cryptographic key to form first cipher-data; storing the first cipher-data data in the first memory cell; and when the first data is no longer needed, deleting the first crypto-pointer, thereby rendering the first data unrecoverable at the moment it becomes inaccessible.
- 2. The method of preventing recovery of deleted data according to claim 1 wherein said deleting the first crypto-pointer comprises physically overwriting both the first address and the first cryptographic key.
- 3. The method of preventing recovery of deleted data according to claim 1 wherein said deleting the first crypto-pointer comprises physically overwriting both the first address and the first cryptographic key by zeroing both fields.
- 4. The method of preventing recovery of deleted data of claim 1 further comprising:
obtaining a second address of a second memory cell in the data structure; providing a second cryptographic key different from the first cryptographic key; associating the second address and the second cryptographic key with one another so as to form a second logical entity defining a second crypto-pointer to the second memory cell; encrypting second data using the second cryptographic key to form second cipher-data; storing the second cipher-data in the second memory cell; and when the second data is no longer needed, deleting the second crypto-pointer, thereby rendering the second data unrecoverable at the moment it becomes inaccessible.
- 5. The method of preventing recovery of deleted data of claim 1 further comprising creating an additional reference to the first memory cell by copying the first crypto-pointer.
- 6. The method of preventing recovery of deleted data of claim 1 wherein the data structure comprises a heap structure in a non-volatile storage device.
- 7. The method of preventing recovery of deleted data of claim 1 wherein the data structure comprises a file directory.
- 8. A crypto-pointer logical entity for use in secure digital data storage consisting of:
an address field that points to a corresponding cell in a digital data structure; and a cryptographic key associated with the address field for encrypting data to be stored in the corresponding cell.
- 9. The crypto-pointer entity of claim 8 wherein the data structure is a file directory stored on a non-volatile storage medium.
- 10. The crypto-pointer entity of claim 8 wherein the data structure is a heap structure stored on a computer readable storage medium.
- 11. A crypto-pointer logical entity for use in secure digital data storage comprising:
an address field that points to a corresponding physical location available for storing digital data; a cryptographic key associated with the address field for encrypting data to be stored at the corresponding physical location.
- 12. The crypto-pointer entity of claim 11 wherein the corresponding physical location is a memory cell in a computer readable storage medium and the address field is a pointer to the memory cell.
- 13. The crypto-pointer entity of claim 11 wherein the corresponding physical location is a resource attached to a network and the address field is a uniform resource locator.
- 14. A secure method of digital data storage comprising the steps of:
allocating a first cell in a digital memory system; recording a first address corresponding to the first cell; generating a first random key associated with the first address; encrypting first data for storage in the first cell using the first random key; allocating a second cell in the digital memory system; recording a second address corresponding to the second cell; generating a second random key associated with the second address; and encrypting second data for storage in the second cell using the second random key.
- 15. A secure method of digital data storage according to claim 14 and further comprising updating the first memory cell contents by:
obtaining new data for storage in the first cell; encrypting the new data using the first random key; and overwriting the first cell contents with the encrypted new data.
- 16. A secure method of digital data storage according to claim 14 further comprising:
reading the first cell contents by retrieving the encrypted first data and decrypting the retrieved encrypted first data first using the first random key; and reading the second cell contents by retrieving the encrypted second data and decrypting retrieved encrypted second data using the second random key.
- 17. A secure method of digital data storage according to claim 14 wherein said encrypting the first data for storage in the first cell using the first random key comprises a Boolean exclusive-OR (XOR) operation.
- 18. A secure method of digital data storage according to claim 14 wherein said encrypting the first data for storage in the first cell using the first random key comprises using the first random key in conjunction with a predetermined encryption algorithm to encrypt the first data, thereby producing a cipher-text version of the first data.
- 19. A secure method of digital data storage according to claim 14 wherein the encryption operation is implemented in software.
- 20. A secure method of digital data storage according to claim 14 wherein the encryption operation is implemented in hardware.
- 21. A secure memory structure comprising:
a root set of pointers that provide at least one entrance point into the memory structure, wherein the root set of pointers includes a first crypto-pointer a first crypt-pointer in the root set of pointers having a first encryption key and a first address, the first address corresponding to a first memory cell in the memory structure, wherein all data stored at the first address is encrypted with the first encryption key.
- 22. A secure memory structure according to claim 21 wherein the root set of pointers includes a second crypto-pointer, having a second crypto-pointer and a second address corresponding to a second memory cell in the memory structure, wherein all data stored at the second address is encrypted with the second encryption key.
- 23. A secure memory structure according to claim 22 wherein the root set of pointers are distributed according to a key authentication scheme.
- 24. A secure memory structure according to claim 23 wherein the memory structure comprises a memory heap.
- 25. A secure memory structure according to claim 23 wherein the memory structure comprises a graph data structure.
- 26. A secure memory structure according to claim 23 wherein the memory structure comprises a directory tree structure.
- 27. A secure heap logical entity for use in secure digital data storage comprising:
a plurality of memory cells within a memory storage device; a first crypto-pointer having a first address and a first cryptographic key and associated with one of the plurality of memory cells, such that information stored at the associated memory cell is encrypted with the first cryptographic key before it is stored at the memory cell.
- 28. A method of accessing encrypted data in a secure heap data structure comprising:
maintaining a root set of pointers in an unencrypted form outside of the secure heap; within the root set of pointers, providing a first crypto-pointer associated with a first memory cell in the secure heap data structure, the first crypto pointer having a first address and a first key; and accessing the encrypted data stored at the first memory cell by decrypting the data using the first key.
- 29. A method of accessing encrypted data in a secure heap data structure according to claim 28 wherein, the decrypted data includes a second crypto-pointer associated with a second memory cell in the secure heap data structure, the second crypto-pointer having a second address and a second key, further comprising accessing the encrypted data stored at the second memory cell by decrypting the data using the second key.
RELATED APPLICATIONS
[0001] This application is a continuation of U.S. Provisional Patent Application 60/278,823 filed Mar. 26, 2001 and incorporated by reference herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60278823 |
Mar 2001 |
US |