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.