US9270461B2ActiveUtilityA1

System and method for efficient support for short cryptoperiods in template mode

88
Assignee: FUTUREWEI TECHNOLOGIES INCPriority: Apr 27, 2012Filed: Apr 26, 2013Granted: Feb 23, 2016
Est. expiryApr 27, 2032(~5.8 yrs left)· nominal 20-yr term from priority
H04N 21/26258H04L 9/065H04N 21/6125H04N 21/835H04N 21/8456H04N 21/4627H04L 9/088H04N 21/6373G06F 16/9566H04L 63/00H04N 21/8586H04N 21/4408H04L 67/02H04L 2209/60H04L 9/18H04L 65/70H04L 65/762
88
PatentIndex Score
7
Cited by
34
References
19
Claims

Abstract

System and method embodiments are provided herein for efficient representation and use of initialization vectors (IVs) for encrypted segments using template mode representation in Dynamic Adaptive Streaming over Hypertext Transfer Protocol (DASH). An embodiment method includes sending in a media presentation description (MPD), from a network server to a client, a template for generating a universal resource locator (URL) to obtain an IV that is used for encrypting a segment, in absence of an IV value in the MPD, receiving from the client a URL configured according to the template, and upon receiving the URL, returning an IV corresponding to the URL to the client. Another embodiment method includes receiving in a MPD, at a client from a network server, a template for generating a URL to obtain an IV that is used for encrypting a segment, upon detecting an absence of an IV value or IV base value in the MPD, configuring a URL for the IV using the template, sending the URL for the IV, and receiving an IV.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method for communicating encryption information in template mode in dynamic adaptive streaming over hypertext transfer protocol (DASH), the method comprising:
 sending in a media presentation description (MPD), from a network server to a client, a template for generating a universal resource locator (URL) to obtain an initialization vector (IV) that is used for encrypting a segment, wherein the segment is associated with a cryptoperiod where a plurality of segments are encrypted with the same encryption parameters; 
 including, in the MPD, a CryptoTimeline element for deriving one or more cryptoperiods at the client using run-length coding, the CryptoTimeline element indicating a sequence of cryptoperiods of constant duration each including the same number of segments, wherein the CryptoTimeline element includes a first optional attribute for indicating a number of constant-duration cryptoperiods within a timeline, a second mandatory attribute for indicating, by a number of segments, a cryptoperiod duration of every period in the timeline, and a third optional attribute for indicating a number of segments between the end of a previous CryptoTimeline element and the timeline; 
 in absence of an IV value in the MPD, receiving from the client a URL for the IV configured according to the IV URL template associated with at least one of the one or more cryptoperiods within the timeline; and 
 upon receiving the IV URL, returning an IV value corresponding to the IV URL to the client for decrypting each of the plurality of segments associated with the at least one cryptoperiod. 
 
     
     
       2. The method of  claim 1  further comprising indicating in the MPD an IV attribute that indicates an IV value that causes the client to use the IV value for decrypting the segment regardless of the presence of the template for the URL of the IV. 
     
     
       3. The method of  claim 1 , wherein the MPD includes a CryptoPeriod element including an IV URL template attribute for indicating the template for generating the URL for the IV and a key URL template attribute for indicating another template for generating a URL for a key, and wherein the encryption parameters for the plurality of segments associated with the cryptoperiod include the IV and the key;
 the method further comprising:
 receiving from the client a URL for the key configured according to the key URL template associated with the at least one cryptoperiod; and 
 upon receiving the key URL, returning a key value corresponding to the key URL to the client for decrypting each of the plurality of segments associated with the at least one cryptoperiod. 
 
 
     
     
       4. The method of  claim 3  further comprising providing the client with corresponding key and IV values per each of the one or more cryptoperiods within the timeline at the beginning of each cryptoperiod. 
     
     
       5. The method of  claim 4  wherein the IV URL and the key URL are configured at the client once per associated cryptoperiod using an earliest segment for a number or time variable derivation from a template associated with the segment in the MPD. 
     
     
       6. The method of  claim 1 , wherein the returned IV value to the client is in a textual or binary representation in the body of an HTTP response. 
     
     
       7. A method for communicating encryption information in template mode in dynamic adaptive streaming over hypertext transfer protocol (DASH), the method comprising:
 receiving in a media presentation description (MPD), at a client from a network server, a template for generating a universal resource locator (URL) to obtain an initialization vector (IV) that is used for encrypting a segment, wherein the segment is associated with a cryptoperiod where a plurality of segments are encrypted with the same encryption parameters, wherein the MPD includes a CryptoTimeline element indicating a sequence of cryptoperiods of constant duration each including the same number of segments, and wherein the CryptoTimeline element includes a first optional attribute for indicating a number of constant-duration cryptoperiods within a timeline, a second mandatory attribute for indicating, by a number of segments, a cryptoperiod duration of every period in the timeline, and a third optional attribute for indicating a number of segments between the end of a previous CryptoTimeline element and the timeline; 
 deriving one or more cryptoperiods from the CryptoTimeline element using run-length coding; 
 upon detecting an absence of an IV value or IV base value in the MPD, configuring a URL for the IV using the IV URL template associated with at least one of the one or more cryptoperiods within the timeline; 
 sending the URL for the IV to the network server; 
 receiving an IV value corresponding to the IV URL for the at least one cryptoperiod from the network server; and 
 using the IV value to decrypt each of the plurality of segments associated with the at least one cryptoperiod. 
 
     
     
       8. The method of  claim 7  further comprising:
 receiving in the MPD, an IV attribute that indicates an IV value; and 
 upon detecting the IV value, using the IV value for decrypting the segment regardless of the presence of the template for the URL of the IV. 
 
     
     
       9. The method of  claim 7  further comprising:
 receiving in the MPD, an IV base attribute that indicates an IV base value; and 
 upon detecting the IV base value, obtaining an IV value for decrypting the segment as a sum of the IV base value and a segment number for the segment. 
 
     
     
       10. The method of  claim 7  further comprising:
 detecting whether there is an IV value, an IV base value, or a template for a URL of the IV in the MPD; and 
 upon determining the absence of IV value, IV base value, and template for a URL of the IV, using a number of the segment as an IV to decrypt the segment. 
 
     
     
       11. The method of  claim 7  wherein the MPD includes a CryptoPeriod element including an IV URL template attribute for indicating the template for generating the URL for the IV and a key URL template attribute for indicating another template for generating a URL for a key, and wherein the encryption parameters for the plurality of segments associated with the cryptoperiod include the IV and the key;
 the method further comprising:
 configuring a URL for the key using the key URL template associated with the at least one cryptoperiod; 
 sending the URL for the key to the network server; 
 receiving a key value corresponding to the key URL for the at least one cryptoperiod from the network server; and 
 using the key value to decrypt each of the plurality of segments associated with the at least one cryptoperiod. 
 
 
     
     
       12. The method of  claim 11  further comprising fetching corresponding IV and key values from the network server per each of the one or more cryptoperiods within the timeline at the beginning of each cryptoperiod. 
     
     
       13. The method of  claim 12 , wherein the IV URL and the key URL are configured once per associated cryptoperiod using an earliest segment for a number or time variable derivation from a template associated with the segment in the MPD. 
     
     
       14. A network component for communicating encryption information in template mode in dynamic adaptive streaming over hypertext transfer protocol (DASH), the network component comprising:
 a processor; and 
 a non-transitory computer readable storage medium storing programming for execution by the processor, the programming including instructions when executed causing the processor to:
 send in a media presentation description (MPD) to a client a template for generating a universal resource locator (URL) to obtain an initialization vector (IV) that is used for encrypting a segment, wherein the segment is associated with a cryptoperiod where a plurality of segments are encrypted with the same encryption parameters; 
 include, in the MPD, a CryptoTimeline element for deriving one or more cryptoperiods at the client using run-length coding, the CryptoTimeline element indicating a sequence of cryptoperiods of constant duration each including the same number of segments, wherein the CryptoTimeline element includes a first optional attribute for indicating a number of constant-duration cryptoperiods within a timeline, a second mandatory attribute for indicating, by a number of segments, a cryptoperiod duration of every period in the timeline, and a third optional attribute for indicating a number of segments between the end of a previous CryptoTimeline element and the timeline; 
 in absence of an IV value in the MPD, receive from the client a URL for the IV configured according to the IV URL template associated with at least one of the one or more cryptoperiods within the timeline; and 
 upon receiving the IV URL, return an IV value corresponding to the IV URL to the client for decrypting each of the plurality of segments associated with the at least one cryptoperiod. 
 
 
     
     
       15. The network component of  claim 14 , wherein the MPD includes a CryptoPeriod element including an IV URL template attribute for indicating the template for generating the URL for the IV and a key URL template attribute for indicating another template for generating a URL for a key, and wherein the IV and the key are encryption parameters for the plurality of segments associated with the cryptoperiod;
 the programming instructions when executed further causing the processor to:
 receive from the client a URL for the key configured according to the key URL template associated with the at least one cryptoperiod; 
 upon receiving the key URL, return a key value corresponding to the key URL to the client for decrypting each of the plurality of segments associated with the at least one cryptoperiod. 
 
 
     
     
       16. The network component of  claim 15 , the programming instructions when executed further causing the processor to provide the client with corresponding key and IV values per each of the one or more cryptoperiods within the timeline at the beginning of each cryptoperiod, wherein the IV URL and the key URL are configured at the client once per associated cryptoperiod using an earliest segment for a number or time variable derivation from a template associated with the segment in the MPD. 
     
     
       17. A user device for communicating encryption information in template mode in dynamic adaptive streaming over hypertext transfer protocol (DASH), the user device comprising:
 a processor; and 
 a non-transitory computer readable storage medium storing programming for execution by the processor, the programming including instructions when executed causing the processor to:
 receive in a media presentation description (MPD) from a network server a universal resource location (URL) initialization vector (IV) attribute indicating a template for generating a URL to obtain an IV that is used for encrypting a segment, wherein the segment is associated with a cryptoperiod where a plurality of segments are encrypted with the same encryption parameters, wherein the MPD includes a CryptoTimeline element indicating a sequence of cryptoperiods of constant duration each including the same number of segments, and wherein the CryptoTimeline element comprises a first optional attribute for indicating a number of constant-duration cryptoperiods within a timeline, a second mandatory attribute for indicating, by a number of segments, a cryptoperiod duration of every period in the timeline, and a third optional attribute for indicating a number of segments between the end of a previous CryptoTimeline element and the timeline; 
 derive one or more cryptoperiods from the CryptoTimeline element using run-length coding; 
 upon detecting an absence of an IV value in the MPD, configure a URL for the IV using the IV URL template associated with at least one of the one or more cryptoperiods within the timeline; 
 send the URL for the IV to the network server; 
 receive an IV value corresponding to the IV URL for the at least one cryptoperiod from the network server; and 
 use the IV value to decrypt each of the plurality of segments associated with the at least one cryptoperiod. 
 
 
     
     
       18. The user device of  claim 17  wherein the MPD includes a CryptoPeriod element including an IV URL template attribute for indicating the template for generating the URL for the IV and a key URL template attribute for indicating another template for generating a URL for a key, and wherein the encryption parameters for the plurality of segments associated with the cryptoperiod include the IV and the key;
 the programming instructions when executed further causing the processor to:
 configure a URL for the key using the key URL template associated with the at least one cryptoperiod; 
 send the URL for the key to the network server; and 
 receive a key value corresponding to the key URL for the at least one cryptoperiod from the network server; and 
 use the key value to decrypt each of the plurality of segments associated with the at least one cryptoperiod. 
 
 
     
     
       19. The user device of  claim 18 , the programming instructions when executed further causing the processor to fetch corresponding IV and key values from the network server per each of the one or more cryptoperiods within the timeline at the beginning of each cryptoperiod, wherein the IV URL and the key URL are configured once per associated cryptoperiod using an earliest segment for a number or time variable derivation from a template associated with the segment in the MPD.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.