IP Library Granted Patent US 8,335,930
Granted Patent B2
US 8,335,930 · App. 12/567,519 · Granted Dec 18, 2012

Architecture, system, and method for operating on encrypted and/or hidden information

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 8,335,930
App. No.
12/567,519
Granted
Dec 18, 2012
Kind
B2
Abstract

An architecture, system and method for operating on encrypted and/or hidden information (e.g., code and/or data). The invention enables creators, owners and/or distributors of proprietary code to keep such code inaccessible to users and user-controlled software programs. A memory architecture includes first and second protected memory spaces, respectively storing operating system instructions and a decrypted version of the encrypted information. The first protected memory space may further store a table linking the locations of the encrypted and/or hidden, decrypted information with a decryption and/or authorization key. The system includes the memory architecture and a processor for executing instructions, and the method loads, stores and operates on the encrypted and/or hidden information according to the memory architecture functionality and/or constraints.

Claims (34)

1. A memory comprising:

an unprotected memory portion operable to store encrypted information; and

a protected memory portion operable to store an unencrypted form of said encrypted information, wherein said unencrypted form of said encrypted information is usable by an instruction if said instruction is at least one of predetermined instruction types stored in an encrypted form in said unprotected memory portion and if said instruction successfully passes an authorization procedure that uses a memory location of said encrypted form of said instruction in said unprotected memory portion.

2. The memory of claim 1 , wherein said instruction is stored in said protected memory portion.

3. The memory of claim 1 , further comprising an authorization key associated with said encrypted information, wherein said authorization key associated with said encrypted information is used by said authorization procedure.

4. The memory of claim 1 , wherein said protected memory portion is further operable to store an authorization key associated with said encrypted information, and wherein said protected memory portion is further operable to store a pointer that points to a location of said unencrypted form of said encrypted information in said protected memory portion if said instruction successfully passes said authorization procedure.

5. The memory of claim 1 , wherein said instruction is an operating system instruction.

6. The memory of claim 1 , wherein said unencrypted form of said encrypted information is invisible to said unprotected memory portion, and wherein said unencrypted form of said encrypted information is further invisible to un-translated controlled processes.

7. The memory of claim 1 , further comprising a page that is associated with said instruction in said unprotected memory portion, wherein said authorization procedure includes a comparison of a hash result with an expected hash result, and wherein said hash result represents a result of hashing at least a portion of said page.

8. A system comprising:

a processor; and

a memory comprising:

an unprotected memory portion configured to store encrypted information; and

a protected memory portion configured to store an unencrypted version of said encrypted information, wherein said processor is configured to execute an instruction to use said unencrypted version of said encrypted information if said instruction is at least one of predetermined instruction types stored in an encrypted form in said unprotected memory portion and if said instruction successfully passes an authorization procedure that uses a memory location of said encrypted form of said instruction in said unprotected memory portion.

9. The system of claim 8 , wherein said instruction is stored in said protected memory portion.

10. The system of claim 8 further comprising an authorization key associated with said encrypted information, wherein said authorization key associated with said encrypted information is used by said authorization procedure.

11. The system of claim 8 , wherein said protected memory portion is further operable to store an authorization key associated with said encrypted information, and wherein said protected memory portion is further operable to store a pointer that points to a location of said unencrypted version of said encrypted information in said protected memory portion if said instruction successfully passes said authorization procedure.

12. The system of claim 8 , wherein said instruction is an operating system instruction.

13. The system of claim 8 , wherein said unencrypted version of said encrypted information is invisible to said unprotected memory portion, and wherein said unencrypted version of said encrypted information is further invisible to un-translated controlled processes.

14. The system of claim 8 , further comprising a page that is associated with said instruction in said unprotected memory portion, wherein said authorization procedure includes a comparison of a hash result with an expected hash result, and wherein said hash result represents a result of hashing at least a portion of said page.

15. A method comprising:

storing encrypted information in an unprotected memory portion; and

storing an unencrypted version of said encrypted information in a protected memory portion, wherein said unencrypted version of said encrypted information is usable by an instruction if said instruction is at least one of predetermined instruction types stored in an encrypted form in said unprotected memory portion and if said instruction successfully passes an authorization procedure that uses a memory location of said encrypted form of said instruction in said unprotected memory portion.

16. The method of claim 15 further comprising:

performing said authorization procedure on said instruction.

17. The method of claim 16 , wherein said performing comprises:

hashing at least a portion of a page that is associated with said instruction in said unprotected memory portion; and

comparing a result of said hashing with an expected result, wherein said instruction successfully passes said authorization procedure if said result matches said expected result.

18. The method of claim 15 further comprising:

decrypting said encrypted information to form said unencrypted version of said encrypted information.

19. The method of claim 15 , further comprising:

using an authorization key associated with said encrypted information in said authorization procedure.

20. The method of claim 15 further comprising:

pointing to a location of said unencrypted version of said encrypted information in said protected memory portion if said instruction successfully passes said authorization procedure.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR'S NAME PREVIOUSLY RECORDED AT REEL: 036711 FRAME: 0160. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 6, 2015
From: INTELLECTUAL VENTURES FUNDING LLC
To: INTELLECTUAL VENTURES HOLDING 81 LLC
Reel/Frame 036797/0356 →
MERGER Recorded Sep 29, 2015
From: INTELLECTUAL VENTURE FUNDING LLC
To: INTELLECTUAL VENTURES HOLDING 81 LLC
Reel/Frame 036711/0160 →