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.