Secure video ouput path

US9501668B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9501668-B2
Application numberUS-201314036263-A
CountryUS
Kind codeB2
Filing dateSep 25, 2013
Priority dateSep 25, 2013
Publication dateNov 22, 2016
Grant dateNov 22, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Systems and methods for secure delivery of output surface bitmaps to a display engine. An example processing system comprises: an architecturally protected memory; and a processing core communicatively coupled to the architecturally protected memory, the processing core comprising a processing logic configured to implement an architecturally-protected execution environment by performing at least one of: executing instructions residing in the architecturally protected memory and preventing an unauthorized access to the architecturally protected memory; wherein the processing logic is further configured to provide a secure video output path by generating an output surface bitmap encrypted with a first encryption key and storing an encrypted first encryption key in an external memory, wherein the encrypted first encryption key is produced by encrypting the first encryption key with a second encryption key.

First claim

Opening claim text (preview).

The invention claimed is: 1. A processing system, comprising: an architecturally protected memory; and a hardware processing core, communicatively coupled to the architecturally protected memory, to implement an architecturally-protected execution environment by performing at least one of: executing instructions residing in the architecturally protected memory or preventing an unauthorized access to the architecturally protected memory; wherein the hardware processing core is further to: store, during a reset sequence of the processing system, a key wrapping key in a register of a graphic device; generate, using an application being executed within the architecturally protected execution environment, a surface encryption key; generate an output surface encrypted with the surface encryption key; produce an encrypted surface encryption key by encrypting the surface encryption key using the key wrapping key; bind the surface encryption key to a policy identifying a type of an output interface to be employed for rendering output surfaces encrypted with the surface encryption key; and store the encrypted surface encryption key in an external memory. 2. The processing system of claim 1 , wherein the architecturally protected memory is provided by an enclave page cache (EPC). 3. The processing system of claim 1 , wherein the hardware processing core is to implement a secure enclave. 4. The processing system of claim 1 , wherein the hardware processing core is further to store the output surface in the external memory. 5. The processing system of claim 1 , wherein the graphic device is to decrypt the encrypted surface encryption key, decrypt the output surface using the surface encryption key, and render the output surface. 6. The processing system of claim 1 , wherein the graphic device is provided by a display engine. 7. The processing system of claim 1 , wherein the hardware processing core is further to implement an instruction for encrypting the surface encryption key and binding the surface encryption key to a policy specifying one or more interfaces to be employed for rendering output surfaces encrypted with the surface encryption key. 8. A method, comprising: implementing, by a processing system comprising a hardware processing core communicatively coupled to an architecturally protected memory, an architecturally-protected execution environment by performing at least one of: executing instructions residing in the architecturally protected memory or preventing an unauthorized access to the architecturally protected memory; storing, by the hardware processing core, during a reset sequence of the processing system, a key wrapping key in a register of a graphic device; generating, by an application being executed by the hardware processing core within the architecturally protected execution environment, a surface encryption key; generating, by the hardware processing core, an output surface encrypted with the surface encryption key; producing, by the hardware processing core, an encrypted surface encryption key by encrypting the surface encryption key using the key wrapping key; binding, by the hardware processing core, the surface encryption key to a bit sequence comprising a plurality of bits, wherein each bit of the plurality of bits indicates whether a corresponding output interface type is allowed for rendering output surfaces encrypted with the surface encryption key; and storing, by the hardware processing core, the encrypted surface encryption key in a memory buffer accessible by a graphic device. 9. The method of claim 8 , further comprising: retrieving, by the graphic device, the key wrapping key; decrypting, using the key wrapping key, the encrypted surface encryption key; decrypting the output surface using the surface encryption key; and rendering the output surface. 10. The method of claim 8 , wherein the graphic device is provided by a display engine. 11. The method of claim 8 , wherein the architecturally protected execution environment is provided by a secure enclave. 12. The method of claim 8 , wherein the architecturally protected execution environment comprises a protected memory. 13. The method of claim 8 , wherein the surface encryption key is generated using a random number generator. 14. The method of claim 8 , further comprising implementing a replay protection by applying a key derivation function to a random number and a surface counter to generate the surface encryption key. 15. A computer-readable non-transitory storage medium comprising executable instructions that, when executed by a processing system comprising a hardware processing core communicatively coupled to an architecturally protected memory, cause the processing system to perform operations, comprising: implementing an architecturally-protected execution environment by performing at least one of: executing instructions residing in the architecturally protected memory or preventing an unauthorized access to the architecturally protected memory; storing, during a reset sequence of the processing system, a key wrapping key in a register of a graphic device; generating, by an application being executed within the architecturally protected execution environment, a surface encryption key; generating an output surface encrypted with the surface encryption key; producing an encrypted surface encryption key by encrypting the surface encryption key using the key wrapping key; binding the surface encryption key to a bit sequence comprising a plurality of bits, wherein each bit of the plurality of bits indicates whether a corresponding output interface type is allowed for rendering output surfaces encrypted with the surface encryption key; and storing the encrypted surface encryption key in a memory buffer accessible by a graphic device. 16. The computer-readable non-transitory storage medium of claim 15 , further comprising executable instructions causing the processing system to perform operations, comprising: retrieving, by the graphic device, the key wrapping key; decrypting, using the key wrapping key, the encrypted surface encryption key; decrypting the output surface using the surface encryption key; and rendering the output surface. 17. The computer-readable non-transitory storage medium of claim 15 , wherein the architecturally protected execution environment is provided by a secure enclave. 18. The computer-readable non-transitory storage medium of claim 15 , wherein producing the encrypted surface encryption key comprises binding the surface encryption key to a policy specifying one or more interfaces to be employed for rendering output surfaces encrypted with the surface encryption key. 19. The computer-readable non-transitory storage medium of claim 15 , further comprising executable instructions the processing system to implement a replay protection by applying a key derivation function to a random number and a surface counter to generate the surface encryption key. 20. The system of claim 1 , wherein the hardware processing core is further to: bind the surface encryption key to a policy identifying a target device to be employed for rendering output surfaces encrypted with the surface encryption key.

Assignees

Inventors

Classifications

  • Establishing a secure communication between the client and a peripheral device or smart card · CPC title

  • {embedded in a} Personal Computer [PC] · CPC title

  • output devices, e.g. displays or monitors · CPC title

  • G06F21/82Primary

    Protecting input, output or interconnection devices · CPC title

  • interconnection devices, e.g. bus-connected or in-line devices · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9501668B2 cover?
Systems and methods for secure delivery of output surface bitmaps to a display engine. An example processing system comprises: an architecturally protected memory; and a processing core communicatively coupled to the architecturally protected memory, the processing core comprising a processing logic configured to implement an architecturally-protected execution environment by performing at leas…
Who is the assignee on this patent?
Chhabra Siddhartha, Savagaonkar Uday R, Dewan Prashant, and 7 more
What technology area does this patent fall under?
Primary CPC classification G06F21/82. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 22 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).