Techniques for ensuring that media playback proceeds sequentially through media content of a digital media asset are disclosed. In one embodiment, distinct portions (e.g., segments) of a digital media asset can be separately encrypted such that on playback decoded data being output from at least one prior portion can be used to derive a cryptographic key that is used in decrypting a subsequent portion of the digital media asset.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for requiring a sequential playback of a media asset, the method comprising: initializing a key cache for storing decryption keys; receiving the media asset, wherein the media asset is divided into a plurality of segments and includes decryption instructions; in accordance with the decryption instructions: identifying a first segment of the plurality of segments; obtaining a decryption key for decrypting the first segment of the plurality of segments; for each segment of the plurality of segments: decrypting the segment using the decryption key to produce a decrypted segment, decoding the decrypted segment to produce a decoded segment, outputting the decoded segment to an output device, generating an updated decryption key based on at least a portion of the decoded segment, storing the updated decryption key into the key cache, and replacing the decryption key with the updated decryption key; receiving a request to playback a particular segment of the plurality of segments; determining whether the decryption key that corresponds to the particular segment is included in the key cache; when the decryption key is included in the key cache: playback the particular segment that corresponds to the key; and when the decryption key is not included in the key cache: ignore the request.
2. The method of claim 1 , wherein the key cache enables a user to playback any segment of the plurality segments that has already been decrypted and decoded.
3. The method of claim 1 , wherein the decryption instructions set forth a sequential order in which each segment of the plurality of segments is processed.
4. The method of claim 1 , wherein, subsequent to outputting at least one segment of the plurality of segments, a user is enabled to access resources via a network.
5. The method of claim 1 , further comprising, for each segment of the plurality of segments that is not the first segment: determining that the decryption key that corresponds to a previous segment is stored in the key cache.
6. The method of claim 1 , further comprising, in accordance with the decryption instructions and prior to decrypting the first segment of the plurality of segments: identifying that the media asset is encrypted; obtaining a master key for decrypting the media asset; and decrypting the media asset using the master key.
7. A media playback device configured to ensure sequential playback of a media asset, the media playback device comprising: a processor; and a memory configured to store instructions that, when executed by the processor, cause the media playback device to carry out steps that include: initializing a key cache for storing decryption keys; receiving the media asset, wherein the media asset is divided into a plurality of segments and includes decryption instructions; in accordance with the decryption instructions: identifying a first segment of the plurality of segments; obtaining a decryption key for decrypting the first segment of the plurality of segments; for each segment of the plurality of segments: decrypting the segment using the decryption key to produce a decrypted segment, decoding the decrypted segment to produce a decoded segment, outputting the decoded segment to an output device, generating an updated decryption key based on at least a portion of the decoded segment, storing the updated decryption key into the key cache, and replacing the decryption key with the updated decryption key; receiving a request to playback a particular segment of the plurality of segments; determining whether the decryption key that corresponds to the particular segment is included in the key cache; when the decryption key is included in the key cache: playback the particular segment that corresponds to the key; and when the decryption key is not included in the key cache: ignore the request.
8. The media playback device of claim 7 , wherein the key cache enables a user to playback any segment of the plurality of segments that has already been decrypted and decoded.
9. The media playback device of claim 7 , wherein, subsequent to outputting at least one segment of the plurality of segments, a user is enabled to access resources via a network.
10. A non-transitory computer readable storage medium configured to store instructions that, when executed by a processor included in a computing device, cause the computing device to carry out steps that include: initializing a key cache for storing decryption keys; receiving the media asset, wherein the media asset is divided into a plurality of segments and includes decryption instructions; in accordance with the decryption instructions: identifying a first segment of the plurality of segments; obtaining a decryption key for decrypting the first segment of the plurality of segments; for each segment of the plurality of segments: decrypting the segment using the decryption key to produce a decrypted segment, decoding the decrypted segment to produce a decoded segment, outputting the decoded segment to an output device, generating an updated decryption key based on at least a portion of the decoded segment, storing the updated decryption key into the key cache, and replacing the decryption key with the updated decryption key; receiving a request to playback a particular segment of the plurality of segments; determining whether the decryption key that corresponds to the particular segment is included in the key cache; when the decryption key is included in the key cache: playback the particular segment that corresponds to the key; and when the decryption key is not included in the key cache: ignore the request.
11. The non-transitory computer readable medium of claim 10 , wherein the key cache enables a user to playback any segment of the plurality of segments that has already been decrypted and decoded.
12. The non-transitory computer readable medium of claim 10 , wherein the decryption instructions set forth a sequential order in which each segment of the plurality of segments is processed.
13. The non-transitory computer readable medium of claim 10 , wherein, subsequent to outputting at least one segment of the plurality of segments, a user is enabled to access resources via a network.
14. The non-transitory computer readable medium of claim 10 , wherein steps further include, for each segment of the plurality of segments that is not the first segment: determining that the decryption key that corresponds to a previous segment is stored in the key cache.
15. The non-transitory computer readable medium of claim 10 , wherein steps further include, in accordance with the decryption instructions and prior to decrypting the first segment of the plurality of segments: identifying that the media asset is encrypted; obtaining a master key for decrypting the media asset; and decrypting the media asset using the master key.
16. The media playback device of claim 7 , wherein the decryption instructions set forth a sequential order in which each segment of the plurality of segments is processed.
17. The media playback device of claim 7 , wherein steps further include, for each segment of the plurality of segments that is not the first segment: determining that the decryption key that corresponds to a previous segment is stored in the key cache.
18. The media playback device of claim 7 , wherein steps further include, in accordance with the decryption instructions and prior to decrypting the first segment of the plurality of segments: identifying that the media asset is encrypted; obtaining a master key for decrypting the media asset; and decrypting the media asset using the master key.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
September 30, 2008
July 7, 2015
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.