Claims
- 1. A method performed in combination with a host computer and a device having a device key (DK) with a pre-selected index value, the device for receiving a storage medium or having the storage medium, the storage medium having stored thereon digital content protected according to a secret and a table with a plurality of entries therein, each entry including the secret encrypted according to a key decryptable by the device key (DK) of one of a plurality of devices and an index value, the method for the device to render the content on the medium and comprising:
receiving a request to render the content on the medium; obtaining the table from the medium; obtaining the device key (DK) of the device and the index value of such (DK); indexing into an entry of the table based on the obtained index value; selecting the encrypted secret from the indexed-into entry; applying the obtained device key (DK) to the selected encrypted secret to expose the secret; and applying the exposed secret to render the corresponding content.
- 2. The method of claim 1 wherein the secret comprises one of a symmetric key, a content key for the content, and a password.
- 3. The method of claim 1 wherein the device has a plurality of device keys (DK), each with a pre-selected index value, the method comprising:
obtaining the device keys (DK) of the device and the index values of such device keys (DK); for each obtained device key (DK): indexing into an entry of the table based on the corresponding obtained index value; selecting the encrypted secret from the indexed-into entry; and applying the obtained device key (DK) to the selected encrypted secret to expose the secret, until the secret is in fact exposed.
- 4. The method of claim 1 wherein the medium includes an ID thereof thereon and has stored thereon the digital content protected according to a final secret derived from a combination of the secret and the ID, wherein the content is tied to the medium by the ID, the method comprising:
applying the obtained device key (DK) to the selected encrypted secret to expose the secret; obtaining the ID of the medium therefrom; applying the exposed secret and the obtained ID to a pre-determined function to produce the final secret; and applying the produced final secret to render the corresponding content.
- 5. The method of claim 4 comprising applying the exposed secret and the obtained ID to a one-way hash function to produce the final secret.
- 6. The method of claim 1 wherein the medium includes an ID thereof thereon and the table includes the ID of the medium stored therein, wherein the table is tied to the medium by the ID, the method further comprising:
obtaining the ID of the medium therefrom; obtaining the ID of the medium as stored in the table; comparing the obtained IDs and proceeding only if the IDs match.
- 7. The method of claim 6 wherein the table includes a signature based at least in part on the ID of the medium as stored therein, the method further comprising verifying the signature to verify the ID.
- 8. The method of claim 6 wherein the table includes the ID of the medium encrypted according to the secret as exposed, the method comprising obtaining the ID by applying the secret to the encrypted ID to reveal same.
- 9. The method of claim 1 wherein the table on the medium is updated periodically to have a new secret and has a daisy chain of prior secrets, each prior secret in the daisy chain being encrypted according to an immediately following secret to form a series of links, and where each entry of the table includes the new secret or one of the prior secrets encrypted according to the device key (DK) of one of a plurality of devices, an index value, and a version number for the encrypted secret of the entry, and wherein the content to be rendered has a version number corresponding to the secret in the daisy chain protecting such content, the method comprising:
determining the version number of the content; selecting the encrypted secret from the indexed-into entry; determining the version number of the selected encrypted secret; applying the obtained device key (DK) to the selected encrypted secret to expose the selected encrypted secret; determining based on the version number of the selected encrypted secret an entry point into the daisy chain; traversing back from the entry point of the daisy chain to expose the secret protecting the content; and applying the exposed secret to render the corresponding content, wherein a device may traverse the daisy chain from the entry point to obtain earlier secrets but not later secrets.
- 10. The method of claim 9 further comprising:
determining based on the version number of the selected encrypted secret and the version number of the content whether the secret can be employed to render the content, and proceeding only if the version number of the selected encrypted secret is not lower than the version number of the content and therefore can be employed to render the content.
- 11. The method of claim 1 wherein the device key (DK) is a symmetric key.
- 12. A method performed in combination with a host computer and a plurality of devices each having a device key (DK) with a pre-selected index value, each device for receiving a storage medium or having the storage medium, the storage medium including an ID thereof thereon and having stored thereon digital content protected according to a secret and a table with a plurality of entries therein, each entry including the secret encrypted according to a key decryptable by the device key (DK) of one of a plurality of devices and an index value, the method for the host computer to provide the medium with the table and comprising:
obtaining the table from a cache; obtaining the ID of the medium therefrom; appending the obtained ID of the medium to the obtained table; employing a device key (DK) and the index value thereof to find the corresponding entry in the obtained table and expose the secret of such table; tying the table to the medium by the ID of the medium and the exposed secret; and copying the tied table to the medium.
- 13. The method of claim 12 wherein tying the table to the medium comprises appending to the table a signature based at least in part on the ID of the medium and the exposed secret.
- 14. The method of claim 12 wherein tying the table to the medium by the ID of the medium comprises encrypting the ID according to the exposed secret and appending the encrypted ID to the table.
- 15. The method of claim 12 comprising obtaining the table from a cache having a plurality of tables, each being based on a different secret.
- 16. The method of claim 12 further comprising assigning a version number to the table.
- 17. The method of claim 12 wherein the provided table is an (N)th table, the method further comprising the host computer providing the medium with an (N+1)th, updated table to replace the provided (N)th table on the medium and comprising:
obtaining the (N+1)th table 64 with an (N+1)th secret from the cache; obtaining the ID of the medium therefrom; appending the obtained ID of the medium to the (N+1)th table; obtaining the (N+1)th secret from the (N+1)th table; obtaining the (N)th secret from the (N)th table on the medium and if present a daisy chain of previous secrets in the (N)th table, each previous secret in the daisy chain being encrypted according to an immediately following secret to form a series of links; extending the obtained daisy chain and adding the (N)th secret thereto encrypted according to the (N+1)th secret as another link in the daisy chain; adding the extended daisy chain to the (N+1)th table; adjusting the (N+1)th table to include old secrets for invalidated device keys (DK) and assigning a version number to each entry; tying the (N+1)th table to the medium by the ID of the medium and the obtained (N+1)th secret; and copying the adjusted (N+1)th table to the medium to replace the (N)th table thereon.
- 18. The method of claim 17 wherein tying the (N+1)th table to the medium comprises appending to the (N+1)th table a signature based at least in part on the ID of the medium and the exposed secret.
- 19. The method of claim 17 wherein tying the (N+1)th table to the medium by the ID of the medium comprises encrypting the ID according to the obtained (N+1)th secret and appending the encrypted ID to the (N+1)th table.
- 20. The method of claim 17 wherein each entry in the (N)th table further includes a version number of the corresponding encrypted secret, and wherein adjusting the (N+1)th table to include old secrets for invalidated device keys (DK) and assigning a version number to each entry comprises:
determining from the (N+1)th table which device keys (DK) therein are invalidated; populating the entry in such (N+1)th table for each invalidated (DK) with the corresponding entry in the (N)th table, along with the version number of such corresponding entry; assigning the version number of the (N+1)th table to all entries therein not populated from the (N)th table and therefore still valid, whereby a valid device with a valid device key (DK) can access the latest ((N+1)th) secret of the (N+1)th table, and an invalidated device with an invalidated device key (DK) can access a corresponding secret in the (N+1)th table that is earlier to the (N+1)th secret, and whereby with the accessed secret, the device can by extension access all earlier secrets in the daisy chain, but not any later secrets.
- 21. The method of claim 12 wherein the device key (DK) is a symmetric key.
- 22. A method performed in combination with a host computer and a storage medium including an ID thereof thereon and having stored thereon a table with a plurality of entries therein, each entry including a secret encrypted according to key decryptable by a device key (DK) of one of a plurality of devices and an index value, at least one of the secrets being a current secret of the table, the method for storing digital content on the medium according to the current secret of the table and comprising:
obtaining the ID from the medium; obtaining the current secret from the table; applying the obtained current secret and the obtained ID to a pre-determined function to produce a final secret; protecting the content to be stored on the medium according to the final secret, thereby tying the content to the medium by the ID thereof; and copying the protected content to the medium.
- 23. The method of claim 22 comprising applying the obtained current secret and the obtained ID to a one-way hash function to produce the final secret.
- 24. The method of claim 22 wherein the table includes the ID of the medium therein and a signature therein based on the ID of the medium, the method further comprising checking the signature to verify that the ID of the medium in the table matches the ID obtained from the medium.
- 25. The method of claim 22 wherein the device key (DK) is a symmetric key.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to U.S. patent application Ser. No. 09/290,363, filed Apr. 12, 1999 and entitled “ENFORCEMENT ARCHITECTURE AND METHOD FOR DIGITAL RIGHTS MANAGEMENT”, and U.S. Provisional Application No. 60/126,614, filed Mar. 27, 1999 and entitled “ENFORCEMENT ARCHITECTURE AND METHOD FOR DIGITAL RIGHTS MANAGEMENT”, each of which is hereby incorporated by reference in its entirety.