Claims
- 1. A method for providing authentication in connection with the use of a trusted graphics platform having a graphics card, comprising:
requesting by one of an application and device of a graphics card to verify that the graphics card is a secure graphics card; in response to said requesting, generating a session key by a cryptographic processor communicatively and securely coupled to the graphics card; and transmitting said session key to the one of an application and device.
- 2. A method according to claim 1, further comprising:
revealing said session key to the graphics card in connection with a request for resources of the graphics card.
- 3. A method according to claim 1, wherein each cryptographic processor is individualized and certified during manufacture.
- 4. A method according to claim 1, wherein each cryptographic processor includes a unique private decryption key.
- 5. A method according to claim 1, wherein the cryptographic processor is permanently attached to the graphics card, by one of (1) adding the cryptographic processor to an existing chip and (2) adding the cryptographic processor as a separate chip to the graphics card,
whereby the physical connection between the cryptographic processor and the rest of the graphics card is not accessible and is not exposed.
- 6. A method according to claim 1, wherein the cryptographic processor includes (1) a multi-bit volatile register S for the session key and (2) an array of a plurality of index keys.
- 7. A method according to claim 6, wherein the lifetime of the session key is the running time of the one of an application and device and the lifetime of each key of the plurality of keys is governed by instructions from the one of an application and device.
- 8. A method according to claim 6, wherein each of said plurality of index keys (1) is associated with a particular window of a host system that includes said one of an application and device, and (2) is used by the graphics card to decrypt the contents of the window.
- 9. A method according to claim 1, wherein said requesting includes interfacing with the cryptographic processor via one of (1) an external interface to said one of an application and device and (2) an internal interface to a graphics processing unit (GPU) on the graphics card.
- 10. A method according to claim 9, wherein said interfacing with an external interface includes using a private key encryption protocol for authentication and key transport, whereby said authentication and key transport includes:
encrypting by said one of an application and device the session key with a public key of the cryptographic processor thereby creating a session key cryptoblob; receiving by the cryptographic processor the session key cryptoblob; and decrypting by the cryptographic processor the session key cryptoblob with a private key of the cryptographic processor, thus obtaining the session key, whereby said one of an application and device and the cryptographic processor share a secret enabling said one of an application and device to use said session key to send instructions to the cryptographic processor.
- 11. A method according to claim 10, wherein the external interface is exposed through a set of functions by the cryptographic processor, said set including:
a Set Session Key function that invokes said receiving, receiving and decrypting, whereby said session key is used to secure all further communication to and from the cryptographic processor from and to said one of an application and device, respectively; a Set function; and a Get function, wherein said one of an application and device and said cryptographic processor communicate by means of said Set and Get functions, whose parameters are cryptographically protected for confidentiality and integrity.
- 12. A method according to claim 11, wherein said Get function includes at least one of (1) an Index key property ID method that writes a new key and purpose tag into the key register identified by the index, (2) an Output lock property ID method that sets an output lock flag fixing the screen geometry as well as the graphics card output and (2) an L2KeyMgmt property ID method that sets a key renewal frequency for a layer of video memory encryption protection provided by a trusted graphics platform that includes said secure graphics card and cryptographic processor.
- 13. A method according to claim 11, wherein said Set function includes at least one of (1) an Output ports method that returns a setting of at least one output of the graphics card, (2) an Authentication code method that returns the hash of the contents of a window as per a first layer of protection of a trusted graphics platform that includes said secure graphics card and cryptographic processor, (2) a DX-SEC version method that returns the version of DX-SEC supported by the graphics card, (3) a Secure surface count method that returns the number of secure surfaces supported by the graphics card, (4) an Overlapping surface count method that returns the number of overlapping secure surfaces supported by the graphics card, (5) a Primary type method that provides flexibility for future methodology of the graphics card (6) a Geometry method that returns the width, height, refresh rate and color depth of a primary surface of video memory of the trusted graphics platform, (7) a method that sets at least one of the location and size of a region of protected overly and (8) a method that sets at least one of the location and size of a fraction of a primary surface to be decrypted.
- 14. A method according to claim 9, wherein said interfacing with an internal interface includes interfacing between the cryptographic processor and said graphics card, whereby, without destroying the graphics card, (1) the cryptographic processor is permanently secured to the graphics card and (2) the connection between the cryptographic processor and the rest of the graphics card is not exposed.
- 15. A method according to claim 14, wherein one of (1) the cryptographic processor is soldered onto the graphics card and (2) the cryptographic processor resides on the same chip as the GPU.
- 16. A method according to claim 6, wherein each index key of said plurality of index keys is used only once in accordance with a purpose parameter associated with said index key, wherein when an index key has been filled with a new value, the value of the former key is irretrievably discarded.
- 17. A method according to claim 16, wherein values of purpose parameters include:
an L1STREAM key used with a DX-SEC stream cipher utilized in connection with encryption of overlay surfaces; and an L2BLOCK key used with a block cipher used to decrypt texture blocks, which were written by said one of an application and device.
- 18. A modulated data signal carrying computer executable instructions for performing the method of claim 1.
- 19. A computing device comprising means for performing the method of claim 1.
- 20. A computing device, comprising:
one of an application and device; and a graphics card having at least one GPU and a cryptographic processor communicatively and securely coupled to said at least one GPU, wherein said one of an application and device requests that the graphics card verify that the graphics card is a secure graphics card and whereby in response to said requesting, the cryptographic processor generates a session key and transmits said session key to the one of an application and device.
- 21. A computing device according to claim 20, wherein said session key is revealed to the graphics card in connection with a request for resources of the graphics card.
- 22. A computing device according to claim 20, wherein each cryptographic processor is individualized and certified during manufacture.
- 23. A computing device according to claim 20, wherein each cryptographic processor includes a unique private decryption key.
- 24. A computing device according to claim 20, wherein the cryptographic processor is permanently attached to the graphics card, by one of (1) adding the cryptographic processor to an existing chip and (2) adding the cryptographic processor as a separate chip to the graphics card, whereby the physical connection between the cryptographic processor and the rest of the graphics card is not accessible and is not exposed.
- 25. A computing device according to claim 20, wherein the cryptographic processor includes (1) a multi-bit volatile register S for the session key and (2) an array of a plurality of index keys.
- 26. A computing device according to claim 25, wherein the lifetime of the session key is the running time of the one of an application and device and the lifetime of each key of the plurality of keys is governed by instructions from the one of an application and device.
- 27. A computing device according to claim 25, wherein each of said plurality of index keys (1) is associated with a particular window of a host system that includes said one of an application and device, and (2) is used by the graphics card to decrypt the contents of the window.
- 28. A computing device according to claim 20, wherein said one of an application and device interfaces with the cryptographic processor via one of (1) an external interface to said one of an application and device and (2) an internal interface to a graphics processing unit (GPU) on the graphics card.
- 29. A computing device according to claim 28, wherein said one of an application and device interfaces with an external interface using a private key encryption protocol for authentication and key transport, whereby said authentication and key transport includes:
encrypting by said one of an application and device the session key with a public key of the cryptographic processor thereby creating a session key cryptoblob; receiving by the cryptographic processor the session key cryptoblob; and decrypting by the cryptographic processor the session key cryptoblob with a private key of the cryptographic processor, thus obtaining the session key, whereby said one of an application and device and the cryptographic processor share a secret enabling said one of an application and device to use said session key to send instructions to the cryptographic processor.
- 30. A computing device according to claim 29, wherein the external interface is exposed through a set of functions by the cryptographic processor, said set including:
a Set Session Key function that invokes said receiving, receiving and decrypting, whereby said session key is used to secure all further communication to and from the cryptographic processor from and to said one of an application and device, respectively; a Set function; and a Get function, wherein said one of an application and device and said cryptographic processor communicate by means of said Set and Get functions, whose parameters are cryptographically protected for confidentiality and integrity.
- 31. A computing device according to claim 30, wherein said Get function includes at least one of (1) an Index key property ID method that writes a new key and purpose tag into the key register identified by the index, (2) an Output lock property ID method that sets an output lock flag fixing the screen geometry as well as the graphics card output and (2) an L2KeyMgmt property ID method that sets a key renewal frequency for a layer of video memory encryption protection provided by a trusted graphics platform that includes said secure graphics card and cryptographic processor.
- 32. A computing device according to claim 30, wherein said Set function includes at least one of (1) an Output ports method that returns a setting of at least one output of the graphics card, (2) an Authentication code method that returns the hash of the contents of a window as per a first layer of protection of a trusted graphics platform that includes said secure graphics card and cryptographic processor, (2) a DX-SEC version method that returns the version of DX-SEC supported by the graphics card, (3) a Secure surface count method that returns the number of secure surfaces supported by the graphics card, (4) an Overlapping surface count method that returns the number of overlapping secure surfaces supported by the graphics card, (5) a Primary type method that provides flexibility for future methodology of the graphics card (6) a Geometry method that returns the width, height, refresh rate and color depth of a primary surface of video memory of the trusted graphics platform, (7) a method that sets at least one of the location and size of a region of protected overlay and (8) a method that sets at least one of the location and size of a fraction of a primary surface to be decrypted.
- 33. A computing device according to claim 28, wherein said internal interface interfaces between the cryptographic processor and said graphics card, whereby, without destroying the graphics card, (1) the cryptographic processor is permanently secured to the graphics card and (2) the connection between the cryptographic processor and the rest of the graphics card is not exposed.
- 34. A computing device according to claim 33, wherein one of (1) the cryptographic processor is soldered onto the graphics card and (2) the cryptographic processor resides on the same chip as the GPU.
- 35. A computing device according to claim 25, wherein each index key of said plurality of index keys is used only once in accordance with a purpose parameter associated with said index key, wherein when an index key has been filled with a new value, the value of the former key is irretrievably discarded.
- 36. A computing device according to claim 35, wherein values of purpose parameters include:
an L1 STREAM key used with a DX-SEC stream cipher utilized in connection with encryption of overlay surfaces; and an L2BLOCK key used with a block cipher used to decrypt texture blocks, which were written by said one of an application and device.
- 37. A method for providing authentication in connection with the use of a trusted graphics platform having a graphics card, comprising:
requesting by one of an application and device of a graphics card to verify that the graphics card is a secure graphics card; and in response to said requesting, sending a session key to the one of an application and device via a secure communication mechanism built into the trusted graphics platform for key transport, whereby the one of an application and device knows in advance that writes to the same address space by a secure graphics card are mapped to the graphics card key store.
- 38. A method according to claim 37, wherein the secure communication mechanism is a low bandwidth connection.
- 39. A method for providing authentication in connection with the use of a trusted graphics platform having a graphics card, comprising:
requesting by one of an application and device of a graphics card to verify that the graphics card is a secure graphics card by sending bulk encrypted data to the trusted graphics platform via a protected path; and in response to said requesting, utilizing a cryptographic processing device to decrypt the bulk encrypted data, thereby verifying that the graphics card is a secure graphics card; and notifying said one of an application and device that the graphics card is a secure graphics card.
- 40. At least one computer readable medium having stored thereon a plurality of computer-executable instructions, said plurality of computer-executable instructions including:
means for requesting by one of an application and device of a graphics card to verify that the graphics card is a secure graphics card; means for generating a session key by a cryptographic processor communicatively and securely coupled to the graphics card in response to requesting by said means for requesting; and means for transmitting said session key to the one of an application and device.
- 41. At least one computer readable medium according to claim 40, further comprising:
means for revealing said session key to the graphics card in connection with a request for resources of the graphics card.
- 42. At least one computer readable medium according to claim 40, wherein each cryptographic processor includes a unique private decryption key and is individualized and certified during manufacture.
- 43. At least one computer readable medium according to claim 40, wherein the cryptographic processor is permanently attached to the graphics card, by one of (1) adding the cryptographic processor to an existing chip and (2) adding the cryptographic processor as a separate chip to the graphics card,
whereby the physical connection between the cryptographic processor and the rest of the graphics card is not accessible and is not exposed.
- 44. At least one computer readable medium according to claim 40, wherein the cryptographic processor includes (1) a multi-bit volatile register S for the session key and (2) an array of a plurality of index keys.
- 45. At least one computer readable medium according to claim 44, wherein the lifetime of the session key is the running time of the one of an application and device and the lifetime of each key of the plurality of keys is governed by instructions from the one of an application and device.
- 46. At least one computer readable medium according to claim 44, wherein each of said plurality of index keys (1) is associated with a particular window of a host system that includes said one of an application and device, and (2) is used by the graphics card to decrypt the contents of the window.
- 47. At least one computer readable medium according to claim 40, wherein said means for requesting includes means for interfacing with the cryptographic processor via one of (1) an external interface to said one of an application and device and (2) an internal interface to a graphics processing unit (GPU) on the graphics card.
- 48. At least one computer readable medium according to claim 47, wherein said means for interfacing with an external interface includes using a private key encryption protocol for authentication and key transport, whereby said authentication and key transport includes:
means for encrypting by said one of an application and device the session key with a public key of the cryptographic processor thereby creating a session key cryptoblob; means for receiving by the cryptographic processor the session key cryptoblob; and means for decrypting by the cryptographic processor the session key cryptoblob with a private key of the cryptographic processor, thus obtaining the session key, whereby said one of an application and device and the cryptographic processor share a secret enabling said one of an application and device to use said session key to send instructions to the cryptographic processor.
- 49. At least one computer readable medium according to claim 48, wherein the external interface is exposed through a set of functions by the cryptographic processor, said set including:
a Set Session Key function that invokes said means for receiving, means for receiving and means for decrypting, whereby said session key is used to secure all further communication to and from the cryptographic processor from and to said one of an application and device, respectively; a Set function; and a Get function, wherein said one of an application and device and said cryptographic processor communicate by means of said Set and Get functions, whose parameters are cryptographically protected for confidentiality and integrity.
- 50. At least one computer readable medium according to claim 49, wherein said Get function includes at least one of (1) an Index key property ID method that writes a new key and purpose tag into the key register identified by the index, (2) an Output lock property ID method that sets an output lock flag fixing the screen geometry as well as the graphics card output and (2) an L2KeyMgmt property ID method that sets a key renewal frequency for a layer of video memory encryption protection provided by a trusted graphics platform that includes said secure graphics card and cryptographic processor.
- 51. At least one computer readable medium according to claim 49, wherein said Set function includes at least one of (1) an Output ports method that returns a setting of at least one output of the graphics card, (2) an Authentication code method that returns the hash of the contents of a window as per a first layer of protection of a trusted graphics platform that includes said secure graphics card and cryptographic processor, (2) a DX-SEC version method that returns the version of DX-SEC supported by the graphics card, (3) a Secure surface count method that returns the number of secure surfaces supported by the graphics card, (4) an Overlapping surface count method that returns the number of overlapping secure surfaces supported by the graphics card, (5) a Primary type method that provides flexibility for future methodology of the graphics card (6) a Geometry method that returns the width, height, refresh rate and color depth of a primary surface of video memory of the trusted graphics platform, (7) a method that sets at least one of the location and size of a region of protected overly and (8) a method that sets at least one of the location and size of a fraction of a primary surface to be decrypted.
- 52. At least one computer readable medium according to claim 47, wherein said interfacing with an internal interface includes interfacing between the cryptographic processor and said graphics card, whereby, without destroying the graphics card, (1) the cryptographic processor is permanently secured to the graphics card and (2) the connection between the cryptographic processor and the rest of the graphics card is not exposed.
- 53. At least one computer readable medium according to claim 52, wherein one of (1) the cryptographic processor is soldered onto the graphics card and (2) the cryptographic processor resides on the same chip as the GPU.
- 54. At least one computer readable medium according to claim 44, wherein each index key of said plurality of index keys is used only once in accordance with a purpose parameter associated with said index key, wherein when an index key has been filled with a new value, the value of the former key is irretrievably discarded.
- 55. At least one computer readable medium according to claim 54, wherein values of purpose parameters include:
an L1STREAM key used with a DX-SEC stream cipher utilized in connection with encryption of overlay surfaces; and an L2BLOCK key used with a block cipher used to decrypt texture blocks, which were written by said one of an application and device.
- 56. An operating system of a computing device, comprising:
means for requesting by one of an application and device of a graphics card to verify that the graphics card is a secure graphics card; means for generating a session key by a cryptographic processor communicatively and securely coupled to the graphics card in response to requesting by said means for requesting; and means for transmitting said session key to the one of an application and device.
- 57. An operating system according to claim 56, further comprising:
means for revealing said session key to the graphics card in connection with a request for resources of the graphics card.
- 58. An operating system according to claim 56, wherein each cryptographic processor includes a unique private decryption key and is individualized and certified during manufacture.
- 59. An operating system according to claim 56, wherein the cryptographic processor is permanently attached to the graphics card, by one of (1) adding the cryptographic processor to an existing chip and (2) adding the cryptographic processor as a separate chip to the graphics card,
whereby the physical connection between the cryptographic processor and the rest of the graphics card is not accessible and is not exposed.
- 60. An operating system according to claim 56, wherein the cryptographic processor includes (1) a multi-bit volatile register S for the session key and (2) an array of a plurality of index keys.
- 61. An operating system according to claim 60, wherein the lifetime of the session key is the running time of the one of an application and device and the lifetime of each key of the plurality of keys is governed by instructions from the one of an application and device.
- 62. An operating system according to claim 60, wherein each of said plurality of index keys (1) is associated with a particular window of a host system that includes said one of an application and device, and (2) is used by the graphics card to decrypt the contents of the window.
- 63. An operating system according to claim 56, wherein said means for requesting includes means for interfacing with the cryptographic processor via one of (1) an external interface to said one of an application and device and (2) an internal interface to a graphics processing unit (GPU) on the graphics card.
- 64. An operating system according to claim 63, wherein said means for interfacing with an external interface includes using a private key encryption protocol for authentication and key transport, whereby said authentication and key transport includes:
means for encrypting by said one of an application and device the session key with a public key of the cryptographic processor thereby creating a session key cryptoblob; means for receiving by the cryptographic processor the session key cryptoblob; and means for decrypting by the cryptographic processor the session key cryptoblob with a private key of the cryptographic processor, thus obtaining the session key, whereby said one of an application and device and the cryptographic processor share a secret enabling said one of an application and device to use said session key to send instructions to the cryptographic processor.
- 65. An operating system according to claim 64, wherein the external interface is exposed through a set of functions by the cryptographic processor, said set including:
a Set Session Key function that invokes said means for receiving, means for receiving and means for decrypting, whereby said session key is used to secure all further communication to and from the cryptographic processor from and to said one of an application and device, respectively; a Set function; and a Get function, wherein said one of an application and device and said cryptographic processor communicate by means of said Set and Get functions, whose parameters are cryptographically protected for confidentiality and integrity.
- 66. An operating system according to claim 65, wherein said Get function includes at least one of (1) an Index key property ID method that writes a new key and purpose tag into the key register identified by the index, (2) an Output lock property ID method that sets an output lock flag fixing the screen geometry as well as the graphics card output and (2) an L2KeyMgmt property ID method that sets a key renewal frequency for a layer of video memory encryption protection provided by a trusted graphics platform that includes said secure graphics card and cryptographic processor.
- 67. An operating system according to claim 65, wherein said Set function includes at least one of (1) an Output ports method that returns a setting of at least one output of the graphics card, (2) an Authentication code method that returns the hash of the contents of a window as per a first layer of protection of a trusted graphics platform that includes said secure graphics card and cryptographic processor, (2) a DX-SEC version method that returns the version of DX-SEC supported by the graphics card, (3) a Secure surface count method that returns the number of secure surfaces supported by the graphics card, (4) an Overlapping surface count method that returns the number of overlapping secure surfaces supported by the graphics card, (5) a Primary type method that provides flexibility for future methodology of the graphics card (6) a Geometry method that returns the width, height, refresh rate and color depth of a primary surface of video memory of the trusted graphics platform, (7) a method that sets at least one of the location and size of a region of protected overly and (8) a method that sets at least one of the location and size of a fraction of a primary surface to be decrypted.
- 68. An operating system according to claim 63, wherein said interfacing with an internal interface includes interfacing between the cryptographic processor and said graphics card, whereby, without destroying the graphics card, (1) the cryptographic processor is permanently secured to the graphics card and (2) the connection between the cryptographic processor and the rest of the graphics card is not exposed.
- 69. An operating system according to claim 68, wherein one of (1) the cryptographic processor is soldered onto the graphics card and (2) the cryptographic processor resides on the same chip as the GPU.
- 70. An operating system according to claim 60, wherein each index key of said plurality of index keys is used only once in accordance with a purpose parameter associated with said index key, wherein when an index key has been filled with a new value, the value of the former key is irretrievably discarded.
- 71. An operating system according to claim 70, wherein values of purpose parameters include:
an L1STREAM key used with a DX-SEC stream cipher utilized in connection with encryption of overlay surfaces; and an L2BLOCK key used with a block cipher used to decrypt texture blocks, which were written by said one of an application and device.
FIELD OF THE INVENTION
[0001] This patent application relates to commonly assigned copending U.S. patent application Ser. No. XX/YYY,ZZZ, filed Month DD, YYYY, entitled “Methods and Systems for Cryptographically Protecting Secure Content.”