Code protection using online authentication and encrypted code execution
AssigneeNVIDIA Corporation
InventorsAndrew Edelsten, Fedor Fomichev, Jay Huang, Timothy Paul Lottes
Life of this patent
Estimating the term…
Abstract
Methods for code protection are disclosed. A method includes using a security processing component to access an encrypted portion of an application program that is encrypted by an on-line server, after a license for use of the application program is authenticated by the on-line server. The security processing component is used to decrypt the encrypted portion of the application program using an encryption key that is stored in the security processing component. The decrypted portion of the application program is executed based on stored state data. Results are provided to the application program that is executing on a second processing component.
Claims20
A method for code protection, comprising:
- using a processing component, accessing an encrypted portion of an application program that is encrypted by an on-line server, after a license for use of said application program is verified by said on-line server;
- using said processing component, decrypting said encrypted portion of said application program using an encryption key stored in said processing component wherein a corresponding decrypted portion of said application program is generated;
- executing said decrypted portion of said application program using stored state data and generating execution results;
- and
- using said processing component, providing said results to a non-encrypted portion of said application program that is executing on a second processing component, wherein said decrypted portion of said application program associated with said encrypted portion of said application program from said on-line server is executed in conjunction with said non-encrypted portion of said application program.
A security processing component, comprising:
- an accessing component that accesses an encrypted portion of an application program that is encrypted by an on-line server, after a license for use of said application program is verified by said on-line server;
- a decrypting component that decrypts said encrypted portion of said application program using an encryption key stored in said security processing component, wherein a corresponding decrypted portion of said application program is generated;
- an access providing component that provides access to execution results generated from an execution of said decrypted portion to a non-encrypted portion of said application program, wherein said decrypted portion of said application program associated with said encrypted portion of said application program from said on-line server is executed in conjunction with said non-encrypted portion of said application program.
A system on chip, comprising:
- a processor;
- a graphics processor;
- and
- a security processing component, comprising:
- an accessing component that accesses an encrypted portion of an application program that is encrypted by an on-line server, after a license for use of said application program is verified by said on-line server;
- a decrypting component that decrypts said encrypted portion of said application program using an encryption key stored in said processing component wherein a corresponding decrypted portion of said application program is generated;
- an access providing component that provides access to execution results generated from an execution of said decrypted portion to a non-encrypted portion of said application program, wherein said decrypted portion of said application program associated with said encrypted portion of said application program from said on-line server is executed in conjunction with said non-encrypted portion of said application program.
Dependencies are inferred from the claim text.