Claims
- 1. A method performed in combination with a host computer and a device that couples to and downloads an object from the host computer, the device having a symmetric device key (DK) and a copy of (DK) encrypted according to a public key (PU) of an entity (PU(DK)), whereby the device receives an object from the host computer at least a portion of which is encrypted according to (DK), the method for communicating (DK) from the device to the host computer and comprising:
sending (PU(DK)) from the device to the host computer; sending (PU(DK)) from the host computer to the entity, the entity having a private key (PR) corresponding to (PU), applying (PR) to (PU(DK)) to obtain (DK), and sending (DK) back to the host computer; and receiving (DK) from the entity at the host computer, whereby the host computer may then encrypt the object according to (DK) and download the encrypted object to the device, and the device may then decrypt the encrypted object based on (DK).
- 2. The method of claim 1 wherein the device includes a read-only memory having (DK) and (PU(DK)) permanently stored therein, the method further comprising retrieving (PU(DK)) from the read-only memory of the device.
- 3. The method of claim 1 wherein the entity comprises a third-party service distinct from the device and the host computer and the public key is (PU-SERV).
- 4. The method of claim 1 wherein the host computer has a public key and a private key, the method comprising:
sending (PU(DK)) and the public key of the host computer from the host computer to the entity, the entity having a private key (PR) corresponding to (PU), applying (PR) to (PU(DK)) to obtain (DK), and sending (DK) back to the host computer encrypted according to the public key of the host computer; receiving (DK) encrypted according to the public key of the host computer from the entity at the host computer; and applying by the host computer the private key thereof to (DK) encrypted according to the public key of the host computer to obtain (DK).
- 5. The method of claim 1 further comprising the host computer caching (DK) for later use.
- 6. The method of claim 6 comprising:
storing (DK) according to (PU(DK)) in a cache of the host computer; again sending (PU(DK)) from the device to the host computer; recognizing by the host computer based on (PU(DK)) that (DK) is stored in the cache; and retrieving by the host computer (DK) from the cache based on such (PU(DK)), whereby the host computer may then again encrypt an object according to (DK) and download the encrypted object to the device, and the device may then decrypt the encrypted object based on (DK).
- 7. A method of manufacturing a device that couples to and downloads objects from a host computer, comprising:
receiving a public key of an entity (PU); selecting a symmetric device key (DK) for the device; encrypting (DK) according to (PU) to produce (PU(DK)); and permanently storing (PU(DK)) and (DK) on the device, whereby the device transmits (PU(DK)) to the host computer, the host computer obtains (DK) from the entity based on (PU(DK)), encrypts at least a portion of an object according to (DK), and transmits the encrypted object to the device, and the device retrieves (DK) therefrom and decrypts the encrypted object therewith.
- 8. The method of claim 7 wherein the device includes a read-only memory, the method comprising permanently storing (PU(DK)) and (DK) in the read-only memory of the device.
- 9. The method of claim 7 comprising receiving a public key of an entity comprising a third-party service (PU-SERV) distinct from the device and the host computer.
- 10. A method performed in combination with a host computer and a device that couples to and downloads an object from the host computer, the device having a symmetric device key (DK), a copy of (DK) encrypted according to a public key (PU) of an entity (PU(DK)), and a symmetric binding key (BK) encrypted according to (DK) ((DK(BK))) initially set to an initializing value, the initializing (DK(BK)) signaling to the host computer that (BK) needs to be initialized to a randomized value and thus be individualized to such device, whereby the device is to receive an object from the host computer at least a portion of which is encrypted according to (BK), the method for initializing (BK) and comprising:
sending both (PU(DK)) and (DK(BK)) from the device to the host computer; realizing by the host computer that the sent (DK(BK)) is the initializing (DK(BK)); sending (PU(DK)) from the host computer to the entity, the entity having a private key (PR) corresponding to (PU), applying (PR) to (PU(DK)) to obtain (DK), selecting an initialized (BK) for the device, employing the obtained (DK) to encrypt the initialized (BK) to produce an initialized (DK(BK)), and sending the initialized (DK(BK)) back to the host computer; receiving the initialized (DK(BK)) from the entity at the host computer; forwarding the initialized (DK(BK)) to the device; and storing the initialized (DK(BK)) at the device in place of the initializing (DK(BK)), whereby the device may then decrypt an object encrypted by the host computer based on (BK).
- 11. The method of claim 10 wherein the entity sends the initialized (BK) and the initialized (DK(BK)) back to the host computer, the method comprising receiving the initialized (BK) and the initialized (DK(BK)) from the entity at the host computer, whereby the host computer may then encrypt the object according to (BK) and download the encrypted object to the device, and the device may then decrypt the encrypted object based on (DK).
- 12. The method of claim 11 wherein the host computer has a public key and a private key, the method comprising:
receiving the initialized (BK) encrypted according to the public key of the host computer from the entity at the host computer; and applying by the host computer the private key thereof to the initialized (BK) encrypted according to the public key of the host computer to obtain the initialized (BK).
- 13. The method of claim 12 further comprising the host computer caching the initialized (BK) for later use.
- 14. The method of claim 13 comprising:
storing the initialized (BK) according to (PU(DK)) in a cache of the host computer; again sending (PU(DK)) from the device to the host computer; recognizing by the host computer based on (PU(DK)) that the initialized (BK) is stored in the cache; and retrieving by the host computer the initialized (BK) from the cache based on such (PU(DK)), whereby the host computer may then again encrypt an object according to the initialized (BK) and download the encrypted object to the device, and the device may then decrypt the encrypted object based on the initialized (BK).
- 15. The method of claim 10 comprising sending (PU(DK)) without (DK(BK)) from the host computer to the entity.
- 16. The method of claim 10 wherein the device includes a read-only memory having (DK) and (PU(DK)) permanently stored therein, the method further comprising retrieving (PU(DK)) from the read-only memory of the device.
- 17. The method of claim 10 wherein the device includes a re-writable memory having (DK(BK)) re-writably stored therein, the method further comprising retrieving the initializing (DK(BK)) from the re-writable memory of the device.
- 18. The method of claim 10 wherein the entity comprises a third-party service distinct from the device and the host computer and the public key is (PU-SERV).
- 19. A method of manufacturing a device that couples to and downloads objects from a host computer, comprising:
receiving a public key of an entity (PU); selecting a symmetric device key (DK) for the device; encrypting (DK) according to (PU) to produce (PU(DK)); permanently storing (PU(DK)) and (DK) on the device; and storing in a re-writable memory an initializing value for a symmetric binding key (BK) encrypted according to (DK) ((DK(BK))) that signals to the host computer that (BK) needs to be initialized to a randomized value and thus be individualized to such device, whereby the device transmits (PU(DK)) and the initializing (DK(BK)) to the host computer, the host computer realizes that the transmitted (DK(BK)) is the initializing (DK(BK)), obtains an initialized (DK(BK)) from the entity based on (PU(DK)), and transmits the initialized (DK(BK)) to the device, and the device stores the initialized (DK(BK)) in the re-writable memory in place of the initializing (DK(BK)), and whereby thereafter the device transmits (PU(DK)) and (DK(BK)) to the host computer, the host computer obtains (BK) from the entity based on (PU(DK)) and (DK(BK)), encrypts at least a portion of an object according to (BK), and transmits the encrypted object to the device, and the device retrieves (BK) therefrom and decrypts the encrypted object therewith.
- 20. The method of claim 19 comprising receiving a public key of an entity comprising a third-party service (PU-SERV) distinct from the device and the host computer.
- 21. The method of claim 19 comprising storing in the re-writable memory an initializing (DK(BK)) set to zero.
- 22. A method performed in combination with a host computer and a device that couples to and downloads an object from the host computer, the device having a symmetric device key (DK), a copy of (DK) encrypted according to a public key (PU) of an entity (PU(DK)), and a symmetric binding key (BK) encrypted according to (DK) ((DK(BK))), whereby the device is to receive an object from the host computer at least a portion of which is encrypted according to (BK), the method for communicating (BK) from the device to the host computer and comprising:
sending both (PU(DK)) and (DK(BK)) from the device to the host computer; sending (PU(DK)) and (DK(BK)) from the host computer to the entity, the entity having a private key (PR) corresponding to (PU), applying (PR) to (PU(DK)) to obtain (DK), applying (DK) to (DK(BK)) to obtain (BK), and sending (BK) back to the host computer; and receiving (BK) from the entity at the host computer, whereby the host computer may then encrypt the object according to (BK) and download the encrypted object to the device, and the device may then decrypt the encrypted object based on (BK).
- 23. The method of claim 22 wherein the host computer has a public key and a private key, the method comprising:
receiving (BK) encrypted according to the public key of the host computer from the entity at the host computer; and applying by the host computer the private key thereof to (BK) encrypted according to the public key of the host computer to obtain (BK).
- 24. The method of claim 22 further comprising the host computer caching (BK) for later use.
- 25. The method of claim 24 comprising:
storing (BK) according to (PU(DK)) in a cache of the host computer; again sending (PU(DK)) from the device to the host computer; recognizing by the host computer based on (PU(DK)) that (BK) is stored in the cache; and retrieving by the host computer (BK) from the cache based on such (PU(DK)), whereby the host computer may then again encrypt an object according to (BK) and download the encrypted object to the device, and the device may then decrypt the encrypted object based on (BK).
- 26. The method of claim 22 wherein the device includes a read-only memory having (DK) and (PU(DK)) permanently stored therein, the method further comprising retrieving (PU(DK)) from the read-only memory of the device.
- 27. The method of claim 22 wherein the device includes a re-writable memory having (DK(BK)) re-writably stored therein, the method further comprising retrieving (DK(BK)) from the re-writable memory of the device.
- 28. The method of claim 22 wherein the entity comprises a third-party service distinct from the device and the host computer and the public key is (PU-SERV).
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.