# US 2014/0157423 A1 · Code protection using online authentication and encrypted code execution

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0157423 A1
- Document ID: US20140157423A1
- Status: Published application
- Kind: A1
- Application number: 13/691,613
- Filed: 2012-11-30
- Published: 2014-06-05
- Earliest claimed: 2012-11-30
- Assignees: NVIDIA Corporation
- Applicants: Nvidia Corporation
- Inventors: Andrew Edelsten; Fedor Fomichev; Jay Huang; Timothy Paul Lottes
- Web page: https://patentgrep.com/patent/US20140157423A1

## CPC

- G06F 21/10: Protecting distributed programs or content, e.g. vending or licensing of copyrighted material (protection in video systems or pay television H04N7/16) {; Digital rights management [DRM]}
- G06F 21/121: {Restricting unauthorised execution of programs}
- G06F 21/53: by executing in a restricted environment, e.g. sandbox or secure virtual machine
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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.

## Claims

### Claim 1

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.

### Claim 2 (depends on 1)

The method of claim 1 wherein access to said encryption key is restricted to said processing component.

### Claim 3 (depends on 1)

The method of claim 1 wherein said executing said decrypted portion of said application program is performed by said processing component.

### Claim 4 (depends on 1)

The method of claim 1 wherein said executing said decrypted portion of said application program is performed by a graphics processing component.

### Claim 5 (depends on 4)

The method of claim 4 wherein said decrypted portion of said application program is stored in a designated video protected region of a memory and wherein a capacity to read from said video protected region is restricted to said processing component.

### Claim 6 (depends on 5)

The method of claim 5 wherein a capacity to read and write from said video protected region is restricted to said processing component.

### Claim 7 (depends on 1)

The method of claim 1 wherein said processing component is one of embedded in said second processing component, wherein said second processing component is a main processor of a system on chip, and in a graphics processing component.

### Claim 8 (depends on 1)

The method of claim 1 wherein a section of memory that provides input to, and receives output from, said processing component is one of encrypted and non-encrypted.

### Claim 9 (depends on 1)

The method of claim 1 wherein said state data comprises short term state data and long term state data that is one of maintained on chip and maintained off chip.

### Claim 10

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.

### Claim 11 (depends on 10)

The security processing component of claim 10 wherein access to said encryption key is restricted to said security processing component.

### Claim 12 (depends on 10)

The security processing component of claim 10 further comprising an executing component that executes said decrypted portion of said application program.

### Claim 13 (depends on 10)

The security processing component of claim 10 wherein a graphics processing component executes said decrypted portion of said application program.

### Claim 14 (depends on 13)

The processing component of claim 13 wherein a designated video protected region of a memory stores said decrypted portion of said application and wherein a capacity to read from said video protected region of said memory is restricted to said security processing component.

### Claim 15

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.

### Claim 16 (depends on 15)

The system on chip of claim 15 wherein said encryption key is restricted to said processing component.

### Claim 17 (depends on 15)

The system on chip of claim 15 further comprising an executing component that executes said decrypted portion of said application program.

### Claim 18 (depends on 15)

The system on chip of claim 15 wherein said graphics processor executes said decrypted portion of said application program.

### Claim 19 (depends on 15)

The system on chip of claim 15 wherein said security processing component is embedded in said CPU and wherein said CPU is a main processor of said system on chip.

### Claim 20 (depends on 15)

The system on chip of claim 15 wherein said security processing component is embedded in said GPU.
