IP Library Granted Patent US 7,039,814
Granted Patent B2
US 7,039,814 · App. 09/802,003 · Granted May 2, 2006

Method for securing software via late stage processor instruction decryption

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 7,039,814
App. No.
09/802,003
Granted
May 2, 2006
Kind
B2
Abstract

Embodiments of the present invention disclose a method and system for protecting the security of encrypted software. Specifically, the present invention pertains to a method of decrypting only those steps or portions of the software that are written to a processor's internal instruction cache. While in storage in non-volatile memory and in RAM, encrypted software remains in an encrypted state. The invention includes a decryption unit that may be located internal to the processor and performs decryption of the software as it enters the instruction cache. By use of this method, encrypted software is resistant to copying from RAM in a decrypted state for subsequent reverse engineering. Software that is protected by this method could be any intellectual property meant to processed by computer that is delivered to the user by internet, cable, direct satellite, packaged media, or any other means.

Claims (28)

1. A method for improving the security of software, comprising the steps of:

reading encrypted software from a non-volatile storage medium;

storing said encrypted software in a temporary storage medium; and,

contemporaneously decrypting a portion of said encrypted software as said portion is read into an instruction cache in a processor, and wherein any portion of said encrypted software not read into said instruction cache is left in an encrypted state.

2. A method as described in claim 1 , wherein said encrypted software comprises the steps of a computer program.

3. A method as described in claim 1 , wherein said temporary storage medium is computer RAM.

4. A method as described in claim 1 , wherein said step of decrypting said portion of said encrypted software is accomplished by a decryption unit located within said processor.

5. A method as described in claim 1 , wherein said step of decrypting said portion of said encrypted software is accomplished by a dedicated decryption device.

6. An apparatus for protecting the security of encrypted software, comprising:

a computer software non-volatile storage device for storing encrypted software;

a computer software temporary storage device for storing encrypted software, coupled with said computer software non-volatile storage device; and,

a processing device, coupled with said computer software temporary storage device, comprising an internal instruction cache and a decryption unit;

wherein said decryption unit is adapted to contemporaneously decrypt a portion of said encrypted software as said portion is written to said instruction cache of said processing device, and wherein any portion of said encrypted software not read into said instruction cache is left in an encrypted state.

7. An apparatus as described in claim 6 , wherein said non-volatile storage device is an optical storage device.

8. An apparatus as described in claim 6 , wherein said non-volatile storage device is a magnetic storage device.

9. An apparatus as described in claim 6 , wherein said non-volatile storage device is located remotely from said processor.

10. An apparatus as described in claim 6 , wherein said temporary storage device is computer RAM.

11. A system for protecting the security of encrypted software, comprising:

a computing device capable of receiving and storing software, said computing device further comprising:

a computer software non-volatile storage device;

a computer software temporary storage device, coupled with said computer software non-volatile storage device; and,

a processing device, coupled with said computer software temporary storage device, and comprising an instruction cache and a decryption unit;

encrypted software, operable to be stored in said temporary software storage device;

wherein said decryption unit is adapted to contemporaneously decrypt a portion of said encrypted software as said portion is called to be written to said instruction cache of said processing device, and wherein any portion of said encrypted software not to be written to said instruction cache is left in an encrypted state.

12. A system as described in claim 11 , wherein said decryption unit is implemented in a hardware device.

13. A system as described in claim 11 , wherein said decryption unit is implemented in software.

14. A system as described in claim 11 , wherein said encrypted software comprises the steps of a computer program.

15. A system as described in claim 11 , wherein said encrypted software comprises intellectual property intended to be processed by another computer program.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2018
From: SONY CORPORATION OF JAPAN
To: SONY CORPORATION
Reel/Frame 045208/0908 →