Digital rights management system
AssigneeMicrosoft Corporation
InventorsBin Zhu, Guofei Gu, Shipeng Li
Life of this patent
Estimating the term…
Abstract
A public licensing infrastructure (PLI) for a digital rights management (DRM) system is described. In an implementation, a method includes generating a formal license for content. The formal license includes a decryption key for decrypting the content and access rules for accessing the content. A plurality of license authorities is configured to provide a plurality of partial licenses. The plurality of partial licenses is combinable to form the formal license. Each license authority provides a respective partial license.
Claims17
A method comprising:
- generating, at a content publisher configured to provide digital rights management, a formal license for content that includes:
- a decryption key for decrypting the content;
- and
- access rules for accessing the content;
- and
- configuring a plurality of license authorities to provide a plurality of partial licenses, wherein:
- each said license authority provides a respective said partial license;
- and
- the plurality of partial licenses are combinable to form the formal license;
- wherein the configuring includes:
- generating, at the content publisher, a pre-license from the formal license by encrypting the formal license utilizing an asymmetric encryption algorithm having a public key and a private key, wherein the formal license, the pre-license and the public key are denoted, respectively, as “license”, “prel” and “PK” as follows:
- prel=(license)pk;
- dividing the private key SK into m partial secret shares according to a (k, m) threshold secret sharing scheme by
- generating a sharing polynomial f(x) being represented as follows:
- f(x)=ao+a1x+ . . . +ak−1xk−1, where ao=SK,
- and
- transmitting the pre-license and a respective said partial secret share from the content publisher to a respective said license authority, wherein each said license authority is configured to generate the respective said partial license from the respective said partial secret share and the pre-license, and wherein each said license authority is configured to verify the pre-license and the respective said partial secret share by utilizing a verifiable secret sharing (VSS) scheme in which k public witnesses of the sharing polynomial's f(x) coefficients (denoted as {ga0, . . . , gak−1}, where g∈ZN) are communicated to each said license authority idi to verify validity of a respective said partial secret share Si by determining if the following equation holds:
- gSi=ga0·(ga1)idi· . . . ·(gak−1)idik−1 mod N.
A method comprising:
- obtaining a plurality of partial licenses over a network at a client device executing a content player from a plurality of license authorities, wherein each said partial license is provided, respectively, by a different said license authority;
- and
- forming a formal license from the plurality of partial licenses at the client device, wherein the formal license includes access rules and a decryption key for accessing content,
- wherein:
- the plurality of partial licenses are obtained from the plurality of license authorities at the client device by:
- calculating the partial license preli by each said license authority idi from a partial secret share Si and a pre-license prel according to the following equation:
- preli=(prel)Si mod N;
- generating a random number u to calculate A1=gu, A2=prelu, r=u−c*Si, and
- c=hash(gSi, preli, A1, A2);
- and
- communicating the partial license preli, A1, A2, and r by each said license authority;
- and
- the formal license is formed from the plurality of partial licenses at the client device by:
- determining if k correct partial licenses have been received by validating each said partial license preli by:
- calculating
- gSi=ga0·(gal)idi· . . . ·(gak−1)idik−1 mod N
- from public witnesses of a sharing polynomial's coefficients, which are denoted as {ga0, . . . , gak−1}, that was utilized to generate the partial secret share Si, where g∈ZN,
- applying c=hash(gSi, preli, A1, A2) to calculate c;
- and
- checking if gr·(gSi)c=A1 and Prelr·(preli)c=A2 hold for each said partial license preli, and if so, each said partial license preli is valid;
- and
- combining the plurality of partial licenses to form the formal license at the client device, denoted as license, when k valid said partial licenses are obtained, in which:
- license
- =
- ∏
- i
-
-
- (
- prel
- i
- )
- l
- id
- i
-
- (
- 0
- )
- =
- (
- prel
- )
- ∑
- i
-
-
- S
- i
- ·
- l
- id
- i
-
- (
- 0
- )
-
-
-
- =
- (
- prel
- )
- SK
- =
- (
- (
- license
- )
- PK
- )
- SK
-
-
- mod
-
-
- N
- _
- ,
-
- where
-
-
- l
- id
- i
-
- (
- x
- )
- =
- ∏
- j
- =
- 1
- ,
- j
- ≠
- i
- k
-
-
- x
- -
- id
- j
- id
- i
- -
- id
- j
- .
A method comprising:
- configuring, at a content publisher configured to provide digital rights management, a plurality of license authorities in a first arrangement to provide a plurality of partial licenses, wherein:
- each said license authority provides at least one said partial license;
- and
- the plurality of partial licenses are combinable to form a formal license that includes access rules and a decryption key for content;
- and
- updating, at the content publisher, the first arrangement to form a second arrangement such that:
- each said license authority in the second arrangement provides at least one of a plurality of updated partial licenses that are combinable to form the formal license;
- and
- the partial licenses provided in the first arrangement are not combinable with the updated partial licenses to form the formal license;
- wherein the updating is performed by:
- generating a random (k, m) sharing by each license authority i using a random update polynomial fi, update(x), wherein:
- fi,update(x)=bi,1x+ . . . +bi,k−1xk−1;
- and
- distributing a subshare Si,j by each said license authority i such that each said license authority i has a respective said subshare Si,j from another said license authority wherein:
- the subshare Si,j=fi,update(j), j=1, . . . , m is calculated by each said license authority i;
- the subshare Si,j is added to the original share Si of each said license authority to form a new updated share
- S
- i
- ′
- =
- S
- i
- +
- ∑
- j
- =
- 1
- m
-
-
- S
- j
- ,
- i
- ;
- and
- a new secret sharing polynomial fnew(x) is formed which is a summation of an original polynomial f(x) utilized to generate the plurality of partial licenses in the first arrangement and each of the randomly generated polynomials fi,update(x).
A client device comprising:
- a processor;
- and
- memory configured to maintain:
- packaged content that includes one or more network addresses that are suitable for locating a plurality of license authorities, wherein each said license authority stores one or more partial licenses;
- a content player that is executable on the processor to output content;
- and
- a digital rights management module that is executable on the processor to:
- obtain the partial licenses from the plurality of license authorities utilizing the one or more network addresses;
- and
- form a formal license from the obtained partial licenses, wherein the formal license provides access to the packaged content for output by the content player;
- obtain the partial licenses from the plurality of license authorities, wherein each said license authority provide a respective said partial license by:
- calculating the partial license preli by each said license authority idi from a partial secret share Si and a pre-license prel according to the following equation:
- preli=(prel)Simod N;
- generating a random number u to calculate A1=gu, A2=prelu, r=u−c*Si, and
- c=hash (gSi,preli,A1,A2);
- and
- communicating the partial license preli, A1, A2, and r by each said license authority;
- and
- the formal license is formed from the plurality of partial licenses by:
- determining if k correct partial licenses have been received by validating each said partial license preli by:
- calculating
- gSi=ga0·(gal)idi· . . . ·(gak−1)idik−1 mod N
- from public witnesses of a sharing polynomial's coefficients, which are denoted as {ga0, . . . , gak−1}, that was utilized to generate the partial secret share Si, where g∈ZN,
- applying c=hash(gSi,prei,A1,A2) to calculate c;
- and
- checking if gr·(gSi)c=A1 and prelr·(preli)c=A2 hold for each said partial license preli, and if so, each said partial license preli is valid;
- and
- combining the plurality of partial licenses to form the formal license, denoted as license, when k valid said partial licenses are obtained, in which:
- license
- =
- ∏
- i
-
-
- (
- prel
- i
- )
- l
- id
- i
-
- (
- 0
- )
- =
- (
- prel
- )
- ∑
- i
-
-
- S
- i
- ·
- l
- id
- i
-
- (
- 0
- )
-
-
-
- =
- (
- prel
- )
- SK
- =
- (
- (
- license
- )
- PK
- )
- SK
-
- mod
-
-
- N
- ,
-
- where
-
-
- l
- id
- i
-
- (
- x
- )
- =
- ∏
- j
- =
- 1
- ,
- j
- ≠
- i
- k
-
-
- x
- -
- id
- j
- id
- i
- -
- id
- j
- .
A method comprising:
- receiving, at a license authority executing a license module, a formal license from a content publisher, the formal license including a decryption key and access rules relating to particular content, wherein the access rules specify a plurality of time durations to access particular content based on respective payment amounts;
- receiving a request at the license authority from a client device for a number of partial licenses related to the particular content;
- sending a request from the license authority to the client device for additional information specifying an output duration to access the particular content;
- generating the number of partial licenses at the license authority based on the formal license and a response received from the client device specifying the output duration, wherein the number of partial licenses generated at the license authority is based on security safeguards of the license authority relative to security safeguards of a plurality of additional license authorities;
- and
- sending the number of partial licenses to the client device.
A method comprising:
- receiving content at a client device from a content publisher, wherein the client device is configured to execute a digital rights management module;
- receiving a request to output the content at the client device;
- determining, at the client device, if a valid formal license is available for the content at the client device, wherein the valid formal license is read to output the content, and wherein the valid formal license is comprised of a plurality of partial licenses, each partial license received from a plurality of license authorities;
- obtaining, at the client device, a plurality of partial licenses from a plurality of license authorities when the valid formal license is not available at the client device, wherein the client device receives one partial license from a first number of the plurality of license authorities and the client device receives more than one license from second number of the plurality of license authorities;
- and
- combining the plurality of partial licenses at the client device to form the valid formal license.
Dependencies are inferred from the claim text.