説明

制御語を生成する方法および装置

【課題】コンテンツ項目の暗号化のためのn個の制御語を生成する。
【解決手段】装置が第一の鍵Kstartおよび第二の鍵Kendを取得し、n個の制御語を生成する。生成された制御語を使って暗号化されたコンテンツ項目のためのライセンスが生成される。ライセンスは第一の鍵Kstart、第二の鍵Kendおよび整数nを含み、ライセンスは受信者に送信される。第一の鍵と第二の鍵の間にある第三の鍵および第四の鍵を受信者に送ることができるが、受信者は第三の鍵と第四の鍵の「外側」にある制御語を生成することはできない。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は概括的にはデジタル著作権管理(DRM: Digital Rights Management)に、より詳細にはDRM保護されたデジタル・コンテンツについての制御語の生成に関する。
【背景技術】
【0002】
この節は、読者に技術の諸側面を紹介するために意図されている。それらの側面は、下記に記載および/または特許請求される本発明のさまざまな側面に関係することがありうる。この議論は、読者に、本発明のさまざまな側面のよりよい理解を容易にする背景情報を与える助けになると思われる。よって、これらの陳述はこの観点で読まれるべきであって、従来技術の自認として読まれるべきではないことを理解しておくべきである。
【0003】
DRMソリューションはしばしばユーザー・フレンドリーでないと考えられる。よくある不満は、DRMが1998年のデジタル・ミレニアム著作権法(非特許文献1)によって規定されるフェアユースを禁止するというものである。フェアユースの一部であると考えられる多くのことのうちには、エンドユーザーが作品、すなわちコンテンツ項目の抜粋を、批評、学究などのために引用または使用する権利がある。しかしながら、従来技術のDRMソリューションではこれは可能ではない。
【0004】
よって、次のことができるDRMソリューションが必要とされている:
・不法または無許諾の使用がされないようコンテンツ項目を保護する;
・エンドユーザーがコンテンツ項目の一部を抽出し、その部分を他のエンドユーザーに再頒布することを許容し、該他のエンドユーザーがその部分にアクセスしうるようにする。これは、これらのエンドユーザーがコンテンツ項目全体に対するアクセス権を有するか否かによらない。
・エンドユーザーどうしが結託して、作品の一組の抜粋を連結することによって作品全体を自由に頒布することを困難にする。
【0005】
これはコンテンツを複数のブロックに分割し、各ブロックをそのコンテンツについてのマスター制御語から生成される制御語を使ってスクランブルすることによって有利に達成されうる。次いで、一つまたは複数のブロックが第一のエンドユーザーによって第二のエンドユーザーに送られることができ、それらのブロックには、マスター制御語ではなく、生成された制御語を含むライセンスが伴う。制御語生成のための好適なアルゴリズムを使えば、第二のエンドユーザーが当該コンテンツの他のブロックにアクセスできないことを確実にできる。
【0006】
従来技術は、制御語(暗号化鍵)生成のためのいくつかの解決策を提供している。
【0007】
たとえば特許文献1は、ブロックがハッシュ値を使って暗号化され、その後、暗号化されたブロックとハッシュ値がハッシュされて、後続ブロックを暗号化するために使われるハッシュ値を生成するシステムを記載している。さらに、特許文献2は、ブロックを、直前ブロックについて使われた鍵と組み合わせることによって鍵が得られる鍵生成システムを記載している。これらのシステムの問題は、復号を一つの「方向」に限定することが可能でないということである。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】US2006/0034453
【特許文献2】EP2197145
【非特許文献】
【0009】
【非特許文献1】http://www.copyright.gov/legislation/dmca.pdf
【非特許文献2】Marc Joye and Sung-Ming Yen, One-Way Cross-Trees and Their Applications, D. Naccache and P. Pallier, Eds. Public Key Cryptography, vol.2274, Lecture Notes in Computer Science, pp.346-356, Springer Verlag, 2002
【非特許文献3】ISO/IEC13818-1、Information technology - Generic coding of moving pictures and associated audio information -- Part1: Systems, 2007
【非特許文献4】NIST, FIPS PUB 197, "Advanced Encryption Standard (AES)," November 2001 http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
【非特許文献5】S. Frankel, R. Glenn and S. Kelly, "The AES-CBC Cipher Algorithm and Its Use with IPsec," RFC 3602, Internet Soc., Sept. 2003; http://rfc.sunsite.dk/rfc/rfc3602.html
【非特許文献6】R. Houseley, Use of the RSAES-OAEP Key Transport Algorithm in the Cryptographic Message Syntax (CMS), RFC 3560, July 2003
【非特許文献7】M. Bellare and P. Rogaway: Optimal Asymmetric Encryption - How to Encrypt with RSA. In: A. De Santis (ed.) EUROCRYPT 1994. LNCS, vol. 950, pp.92-111. Springer, Heidelberg (1995)
【非特許文献8】RSA Laboratories, PCKS #1 v.2.1: RSA Cryptography Standard, June 2002
【発明の概要】
【発明が解決しようとする課題】
【0010】
上記の問題は、非特許文献2によってある程度は克服される。そのソリューションは、ある秘密から出発して、その左半分または右半分のいずれかがハッシュされて新しい秘密を生成し、それにより秘密の二分木を生成する。次いで各秘密は、たとえば、ハッシュされた鍵を生成してもよい。このソリューションは、いくつかの受け取った鍵からさらなる鍵を生成することを不可能にできる。木は鍵導出のための異なる経路を提供するが、プロセスは常に、木のあるノードから出発して低レベル・ノードへ降りていくというように、上から下の方向をたどる。
【課題を解決するための手段】
【0011】
本発明は、二つ以上の秘密を使い、それらについて導出プロセスが反対の方向になされる代替的なソリューションを提供する。これは、復号鍵の導出をいくつかの反対の「方向(direction)」に限定することを可能にする。
【0012】
第一の側面では、本発明は、コンテンツ項目のn個の連続するユニットの暗号化または復号のためのn個の制御語を生成する装置に向けられる。ここで、nは整数である。本装置は:第一の鍵Kstartおよび第二の鍵Kendを取得し;前記第一の鍵Kstartに第一の一方向性関数を逐次反復的に適用することによってn個のサブ鍵の第一の順序付き集合を生成するとともに、前記第二の鍵Kendに第二の一方向性関数を逐次反復的に適用することによってn個のサブ鍵の第二の順序付き集合を生成し;n個のサブ鍵の前記第一の順序付き集合からのサブ鍵iおよびn個のサブ鍵の前記第二の順序付き集合からのサブ鍵n−i−1から制御語iを生成する組み合わせ演算を逐次反復的に使うことによりn個の制御語を生成し(iは両端を含めて0からn−1までの間);n個の生成された制御語を出力するよう適応されたプロセッサを有する。
【0013】
第一の好ましい実施形態では、前記第一の一方向性関数および前記第二の一方向性関数の少なくとも一方はハッシュ関数である。
【0014】
第二の好ましい実施形態では、前記第一の一方向性関数および前記第二の一方向性関数の少なくとも一方は公開鍵暗号化である。
【0015】
第三の好ましい実施形態では、前記組み合わせ演算はXORである。
【0016】
第四の好ましい実施形態では、前記組み合わせ演算は連結または公開鍵暗号化または対称鍵暗号化である。
【0017】
第五の好ましい実施形態では、前記プロセッサはさらに、コンテンツ項目をそれぞれ複数のユニットを含む複数の部分に分離し、各部分について独立に制御語を生成するよう適応される。
【0018】
第六の好ましい実施形態では、前記プロセッサはさらに、生成された制御語iを使ってユニットiが暗号化されているコンテンツ項目についてのライセンスを生成し、前記ライセンスは前記第一の鍵Kstart、前記第二の鍵Kendおよび前記整数nを含み;前記ライセンスを受信機に送信するよう適応されている。前記コンテンツ項目がより長いコンテンツ項目の抜粋であり、前記より長いコンテンツ項目が第三の鍵および第四の鍵から生成された制御語を使って暗号化され、前記プロセッサがさらに、前記第一の鍵Kstartを前記第一の一方向性関数の前記第三の鍵への逐次反復的適用によって生成し、前記第二の鍵Kendを前記第二の一方向性関数の前記第四の鍵への逐次反復的適用によって生成するようさらに適応されていることが有利である。
【0019】
第七の好ましい実施形態では、前記コンテンツ項目は暗号化され、前記プロセッサはさらに、生成された制御語を使って暗号化されたコンテンツ項目を復号するよう適応されている。
【0020】
第二の側面では、本発明は、コンテンツ項目のn個の連続するユニットの暗号化または復号のためのn個の制御語を生成する方法に向けられる。ここで、nは整数である。ある装置が第一の鍵Kstartおよび第二の鍵Kendを取得し;前記第一の鍵Kstartに第一の一方向性関数を逐次反復的に適用することによってn個のサブ鍵の第一の順序付き集合を生成するとともに、前記第二の鍵Kendに第二の一方向性関数を逐次反復的に適用することによってn個のサブ鍵の第二の順序付き集合を生成し;n個のサブ鍵の前記第一の順序付き集合からのサブ鍵iおよびn個のサブ鍵の前記第二の順序付き集合からのサブ鍵n−i−1から制御語iを生成する組み合わせ演算を逐次反復的に使うことによりn個の制御語を生成し(iは0からn−1までの間);n個の生成された制御語を出力する。
【0021】
第一の好ましい実施形態では、前記第一の一方向性関数および前記第二の一方向性関数の少なくとも一方はハッシュ関数である。
【0022】
第二の好ましい実施形態では、前記組み合わせ演算はXORである。
【0023】
第三の好ましい実施形態では、本方法はさらに、コンテンツ項目をそれぞれ複数のユニットを含む複数の部分に分離する段階を含み、本第二の側面の方法の各段階は、各部分について独立に実行される。
【0024】
第三の側面では、本方法は、前記第二の側面の方法によって生成された制御語を使って暗号化されているコンテンツ項目についてのコンテンツ・ライセンスを生成する方法に向けられる。ある装置が、生成された制御語iを使ってユニットiが暗号化されているコンテンツ項目についてのライセンスを生成し、前記ライセンスは前記第一の鍵Kstart、前記第二の鍵Kendおよび前記整数nを含み;前記ライセンスを受信機に送信する。
【0025】
第一の好ましい実施形態では、前記コンテンツ項目はより長いコンテンツ項目の抜粋であり、前記より長いコンテンツ項目は第三の鍵および第四の鍵から生成された制御語を使って暗号化され、本方法がさらに、前記第一の鍵Kstartを前記第一の一方向性関数の前記第三の鍵への逐次反復的適用によって生成し、前記第二の鍵Kendを前記第二の一方向性関数の前記第四の鍵への逐次反復的適用によって生成する段階をさらに含む。
【図面の簡単な説明】
【0026】
本発明の好ましい特徴について、これから限定しない例として付属の図面を参照しつつ述べる。
【図1】本発明のある好ましい実施形態の例示的な使用分野を示す図である。
【図2】本発明のある好ましい実施形態に基づくスクランブル装置を示す図である。
【図3】本発明の第一の好ましい実施形態に基づくスクランブル鍵生成を示す図である。
【図4】本発明の前記第一の好ましい実施形態に基づく抜粋生成、送信および受信を示す図である。
【発明を実施するための形態】
【0027】
本発明の主要な発想は、受信者に送達されることのできる少なくとも一つのスクランブル鍵(すなわち、暗号化および復号鍵)を生成しつつ、受信者が前記少なくとも一つのスクランブル鍵をさらなるスクランブル鍵を生成するために使用できないことを確実にすることである。
【0028】
例示的な使用分野が図1に示されている。コンテンツ項目100が複数のブロック110に分割されている。各ブロック(Uj)110はブロック指数(j)によって同定される。ブロック指数は必須ではないが、有利には逐次的である。よってコンテンツ100はブロックの集合{U0,U1,U2,…,Un}を含む。
【0029】
コンテンツ100のスクランブル(暗号化とも呼ばれる)は図2を参照してさらに記述される。図2は、鍵生成器210およびスクランブラー220を含むスクランブル装置200を示している。スクランブル装置200は、一つまたは複数のプロセッサとして実装されてもよい。当業者は、対称暗号アルゴリズムについては暗号化および復号が本質的には同じであることを理解するであろう。同じ鍵および同じアルゴリズムを使って入力データを処理して出力データを生成するのである。
【0030】
コンテンツ100をスクランブルするために、そのブロック110は別個にスクランブルされる。鍵生成器210はスクランブルすべき各ブロック110についてブロックCWを生成する。鍵生成器210がそこから機能するブロック指数は、たとえばコンテンツ110から得られる最終ブロック指数まで、(指数が逐次的であれば)内部的に生成されてもよい。ブロック指数は、制御回路(図示せず)によってまたはスクランブラーによって、スクランブルすべきブロックの検査後に与えられてもよい。生成されたブロック制御語(control word)CWjはスクランブラー220に届けられる。これは可能性としては対応するブロック指数と一緒にであってもよいが、スクランブラー220はブロック指数を制御回路から受け取ってもよい。さらなる可能性は、鍵生成器およびスクランブラーが同期されるということである。その場合、ブロックCWは、スクランブラーによって必要とされるときに届けられることができる。スクランブラー220はブロックUjを受け取り、ブロックCWを使ってブロックUjをスクランブルし、保護されたブロック(protected block)PUjを出力する。
【0031】
このことは図1にも示されている。図1では、上の段のコンテンツ110のブロックUjは、下の段の保護されたコンテンツ120の保護されたブロックPUj130としてスクランブルされる。
【0032】
当業者は、スクランブル・アルゴリズムが対称的な場合にはスクランブラーとデスクランブラーの間には構造的な違いがないことを理解するであろう。実際、スクランブラーおよびデスクランブラーの両方は入力データを取り、本質的には同じアルゴリズムを同じ鍵とともに使って出力データを生成する。唯一の違いは、一方は平文を受けて暗号文を生成し、他方はその逆を行うということである。よって、図2は、適宜変更を施してスクランブル解除装置200をも示すことができる。
【実施例1】
【0033】
〈第一の好ましい実施形態〉
本発明の第一の好ましい実施形態に基づき、図3はスクランブル鍵生成を示し、図4は抜粋生成、送信および受信を示す。二つの、好ましくはランダムなマスター鍵KstartおよびKendがコンテンツについて生成される。スクランブルすべきブロックの数がnであれば、各マスター鍵は一方向性関数h(有利にはハッシュ関数だが、可能性としては公開鍵暗号法の公開鍵を使う暗号化など他の関数であってもよい)によって少なくともn−1回処理され、結果として各マスター鍵から生成されるn個のサブ鍵:Ks1−KsnおよびKe1−Kenを与える。例解のため、終端鍵(end key)はひっくり返されて、Ke1が自らを終端に見出し、Kenが自らを先頭に見出すと言ってもよい。
【0034】
次いで、各ブロックについて、鍵Ksiが鍵Ke(n-i)と組み合わされてブロックCWを生成する。サブ鍵の長さがスクランブル・アルゴリズムによって必要とされる鍵長に対応する限り、組み合わせ演算は、実際上、公開鍵または対称鍵暗号化のような任意の算術演算、任意の二値演算、連結演算であることができる。好ましい組み合わせは排他的OR(XOR)である。
【0035】
数学的記法では、最初のブロックは指数〔インデックス〕0をもち、最後のブロックは指数n−1をもつ。各サブ鍵CWは次の公式によって二つのマスター鍵から生成される。
【0036】
【数1】

ここで、hは一方向性関数、hmは該一方向性関数のm回の反復を表す。
【0037】
スクランブルされたコンテンツは次いでエンドユーザーに送信されてもよい。該エンドユーザーは、マスター鍵KStartおよびKEndを含み、好ましくはユーザーに固有なユーザー鍵Kuで暗号化された一般コンテンツ・ライセンスをも受け取ってもよい(必ずしもコンテンツと一緒にではなく)。非対称暗号システムでは、ユーザー鍵がユーザーの公開鍵であることが有利である。
【0038】
コンテンツをスクランブル解除するためには、ユーザーはまず、そのユーザー鍵Ku(またはその対応する秘密鍵)を使ってライセンスを復号し、次いでマスター鍵KStartおよびKEndを使ってコンテンツをスクランブル解除するために使われるサブ鍵を生成する。サブ鍵は式1の公式を使って生成される。
【0039】
第一のユーザーがコンテンツの抜粋、ブロックxからブロックx+mまでのm+1個の連続するブロック、を第二のユーザーと共有したいとき、第一のユーザーはこれらの連続するブロックを選択する(ステップS41)。第一のユーザー装置は次いで二つの派生鍵K'StartおよびK'Endを生成する(ステップS42):
K'Start=hx(KStart)
K'End=hn-x-m(KEnd)。
【0040】
K'Startは抜粋の最初のブロックについてのスクランブル鍵であり、K'Endは抜粋の最後のブロックについてのスクランブル鍵であることが理解されるであろう。二つの派生鍵は次いで抜粋ライセンス中に埋め込まれる。抜粋ライセンスは第二のユーザーについての(対称または好ましくは非対称)暗号化鍵を使って暗号化される(ステップS43)。第一のユーザー装置は次いで抜粋および抜粋ライセンスを第二のユーザーに送る(ステップS44)。
【0041】
抜粋および抜粋ライセンスの受信に際して(ステップS45)、第二のユーザー装置は(対応する鍵を使って)抜粋ライセンスを復号する(ステップS46)。これらの派生鍵は次いで、式1と同様の公式(KStartの代わりにK'Start、KEndの代わりにK'End、iの代わりにx、n−iの代わりにn−x−mとする)を使って、m回ハッシュされ、組み合わされて、抜粋の諸ブロックについてのサブ鍵を生成する(ステップ47)。
【0042】
別の言い方をすると、各サブ鍵は次のように計算される。
【0043】
【数2】

抜粋は次いで、サブ鍵を使ってスクランブル解除され(ステップS48)、レンダリングされてもよい。
【0044】
本発明の鍵生成の利点は、抜粋の長さに関わりなく、抜粋ライセンスが二つの鍵のみを含むということである。これらの二つの(派生)鍵から、抜粋内のブロックについてのすべてのサブ鍵が簡単に計算できる。
【0045】
さらに、共有される部分内のサブ鍵を知っていても、抜粋外のサブ鍵の計算はできない。これらの「外部の」サブ鍵を計算するためには、K'Startの知識をもって指数xに先行するブロックのサブ鍵を計算するとともに、K'Endの知識をもって指数x+mより後のブロックのサブ鍵を計算することが必要である。だが、これは一方向性関数hの逆を求めることを必要とし、計算量的に実現可能ではない。
【0046】
詳しくいうと、本第一の好ましい実施形態は、暗号化されていないコンテンツ・ストリームを入力として受け、該コンテンツ・ストリームは動画像専門家グループ2(MPEG2)コンテンツ・ストリームである。MPEG2はデジタル放送コンテンツ用のよく知られたエンコードおよび圧縮規格であり、非特許文献3に記載されている。
【0047】
MPEG2は、固定または可変サイズのフレームを含むパケット化されたエレメンタリー・ストリーム(PES: Packetized Elementary Streams)を含む。各PESパケットは、MPEG2トランスポート・ストリーム(TS: Transport Streams)として知られる、オーディオおよびビデオ・データの組み合わせを含む固定サイズの(188バイト)トランスポート・パケットに分解される。MPEG2コンテンツ・ストリームを保護するとき、各TSパケットは制御語(CW)で暗号化される。CWは10秒周期毎に変化する(つまり、暗号期間(crypto-period)が10s続く)。セットトップボックス・アーキテクチャでは、セットトップボックスのセキュリティ・モジュールが、暗号化されたCWを含む権限付与制御メッセージ(ECM: Entitlement Control Message)を受け取る。セキュリティ・モジュールは正しいCW(奇または偶)をデスクランブラー・モジュールに届け、該デスクランブラー・モジュールは次いで奇/偶CWを正しい時間にスクランブルされたTSに適用し、スクランブル解除されたTSパケットを出力する。
【0048】
各コンテンツ・プロバイダーは固有の秘密または公開情報Ipを有しており、各ユーザーはセンターから証明された(certified)1024ビットのRSA鍵対(Kpub,Kpriv)を受け取っている。コンテンツ・プロバイダー鍵Kpはセンターによって知られており、ユーザー秘密鍵KprivaおよびIpはユーザーのセットトップボックス内に安全に格納されている。
【0049】
さらに、本第一の好ましい実施形態では:
・一方向性関数hはSHA1ハッシュ・アルゴリズムである。
・TSスクランブル・アルゴリズムはCBCモードのAES-128である。非特許文献4および5参照。
・ライセンス暗号化アルゴリズムは1024ビットの鍵長をもつRSA最適非対称暗号化パディング(OAEP: Optimal Asymmetric Encryption Padding)である。さらなる詳細については、非特許文献6、7、8を参照。
【0050】
例解用の例として、コンテンツは2時間の映画である。これは、コンテンツは(2h)×(60min/h)×(60s/min)×(1CW/10s)=720個のCW CW0〜CW719を使ってスクランブルされることを意味する。
【0051】
さらに、CW'およびCW"は、センターによってランダムに生成された二つの128ビットマスター鍵である。各CWiはこれら二つのマスター鍵から次の公式(式1を適応させたもの)を使って生成される。
【0052】
【数3】

暗号期間i内のTSパケットがTS_ENC=AES-128-ENC'(CWi,TS)とスクランブルされる。SHA1の出力が160ビットであることを与えられると、CWiも160ビットである。AES鍵サイズ(128ビット)を適合させるためには、各CWiは、たとえば上位32ビットまたは下位32ビットを破棄することによって、128ビットに打ち切られる。
【0053】
マスター鍵CW'およびCW"は一つのECM={CW',CW"}内に埋め込まれる。このECMは128ビットのプロバイダー識別子(provider identifier)情報(PID)をも含む。PIDは、どのプロバイダー情報Ipをどのコンテンツと一緒に使うべきかを知る助けになる。ECMはまた、必要なCWの総数をも含む(この2バイト・フィールドはハッシュ指数〔インデックス〕を計算する助けになる)。コンテンツをユーザーに配送する前に、400ビットのECM={CW',CW",CW_count=720,PID}がユーザーの公開鍵Kpubaを用いて暗号化される。すなわち、ECM_ENC=RSA-1024-ENC(Kpuba,ECM)となる。
【0054】
コンテンツをスクランブル解除するためには、セキュリティ・モジュールは秘密ユーザー鍵Kprivaを使ってECMを解読する。次いで、PID情報を使って、セキュリティ・モジュールはどのプロバイダー情報Ipを使うべきかを知る。セキュリティ・モジュールは次いで、センターと同じCW生成アルゴリズムを使って、マスター鍵CW'およびCW"、プロバイダー情報IpおよびCW_countから、保護されるマルチメディア・コンテンツを構成するスクランブルされたTSパケットのための制御語CWiを生成する。
【0055】
CW計算を少なく保つために、すなわち同じ値を数回生成するのを避けるために、CWを次のようにして生成するのが有利である:
1.マスター制御語CW'およびCW"を受信すると、CW"からすべての制御語の「第二の部分」を生成する
CW"i=h619-i(Ip‖CW")
ここで、iはCW_count−1=619で始まり、0に達するまでデクリメントされる。
2.これら第二の部分をメモリ中のリストL内に、第一のCW、CW'=CW'0の「第一の部分」と一緒に保存する。
【0056】
L={CW',CW"0,CW"1,…,CW"619=CW"}
(これは2時間の映画については約12kb(721×16=11586バイト)のメモリを必要とする。)
3.第一のCWを計算するために、
【数4】

を計算する。ここで、CW'0およびCW"0はLから取り出された。
4.次の制御語の第一の部分によってリストL中のCW'0を更新する。すなわち、CW'0←h(Ip‖CW')=CW1となる。
5.スクランブルされた各TSパケットについて、ステップ3〜4を、最終的なCWが生成されるまで繰り返す。
【0057】
【数5】

当業者は、この方法が若干のメモリ・スペースを必要とするが、多くの計算ステップを節約することを理解するであろう。
【0058】
第一のユーザーが、コンテンツの、映画の開始から60分のところに位置する10分の抜粋を第二のユーザーと共有したいとする。10分の抜粋は6×10=60個のCWを使ってスクランブルされている。抜粋の始まりおよび終わりのCWはそれぞれCW360およびCW419である。
【0059】
この抜粋について、第一のユーザーのセキュリティ・モジュールはマスター鍵CW'およびCW"から二つの抜粋鍵CW_e'およびCW_e"を次のように生成する。
【0060】
CW_e'=h360(Ip‖CW')
CW_e"=h619-419(Ip‖CW")=h300(Ip‖CW")。
【0061】
鍵CW_e'およびCW_e"は抜粋ECM(excerpt ECM)に埋め込まれる。EECM={CW_e',CW_e",CW_count=60,PID}。スクランブルされた抜粋を第二のユーザーに頒布する前に、セキュリティ・モジュールはEECMを第二のユーザーの公開鍵Kpubbを用いて暗号化する。すなわち、EECM_ENC=RSA-1024-ENC(Kpubb,EECM)となる。
【0062】
スクランブルされた抜粋を受領すると、第二のユーザーのセキュリティ・モジュールは第二のユーザーの秘密鍵Kprivbを使って1024ビットのEECM_ENCを解読する。次いで、当該部分内の暗号期間j内のTSパケットについての各制御語CWjが次のように計算される。
【0063】
【数6】

これらの制御語を使って、スクランブルされた抜粋がスクランブル解除され、ユーザーに対してレンダリングされうる。
【0064】
当業者は、従来技術のシステムでは、スクランブル/デスクランブルのために使われるCWはランダムに生成されたものであり、互いに独立であったことを認識するであろう。セキュリティ・モジュールは各TSパケットについてECMを受け取り、解読しなければならなかった。これは、保護されたコンテンツについて処理すべき数百のECMとなる(2時間の映画については少なくとも720個のECM)。しかしながら、本発明の第一の実施形態によれば、セキュリティ・モジュールはコンテンツ当たり単一のECMまたはEECMを必要とするだけである。そのECM/EECMを使ってコンテンツのスクランブル解除に必要なCWを生成することが可能だからである。よって、本発明の第一の実施形態が伝送帯域幅を節約できることが理解されるであろう。・
【実施例2】
【0065】
〈第二の好ましい実施形態〉
前記第一の好ましい実施形態によって提供されるソリューションはコンパクトだが、結託攻撃に対する耐性はない。コンテンツの二つの連続しない抜粋へのアクセスをもつ攻撃者は、二つの抜粋の間にあるすべてのパケットについての制御語を生成できる。それらの抜粋がコンテンツの始まりと終わりに対応する場合には、そのコンテンツについてのすべての制御語が生成されうる。
【0066】
第二の好ましい実施形態は、コンテンツを複数の論理的な部分に分離することによって、結託攻撃に対する耐性を提供する。各部分は、コンテンツ全体より少なく、単一のブロックよりは多いものを含む。例解用の例として、各部分は10分(すなわち60ブロック)の長さであるが、これより短いまたは長いのでもよい。
【0067】
各部分についての制御語は、あたかも各部分がコンテンツ項目全体であるかのように、他の部分についての制御語とは独立に生成される。
【0068】
換言すれば(映画の例を続けると)、映画コンテンツの10分毎に、センターは二つの128ビットのマスター鍵CW'[k]およびCW"[k]を生成する、k=0…11(これは2時間の映画について24個のマスター鍵を表す)。各CWi[k]はこれらのマスター鍵から次の公式を使って生成される。
【0069】
【数7】

これは二つの型の周期を生じさせることが見て取れる:CWが変化する(kが固定されたままの間、公式中の指数iが変化する)10秒の下位暗号期間と、マスター鍵CW'およびCW"が変化する(公式中の指数kが変化する;この期間の先頭でiは0にリセットされる)10分の上位暗号期間である。
【0070】
暗号期間{i,k}内のTSパケットはTS_ENC=AES-128-ENC(CWi[k],TS)としてスクランブルされる。
【0071】
この場合、コンテンツ全体について一つの一意的なECMを有する代わりに、それぞれ異なるマスター鍵の対を含む12個のECMがある:ECMk={CW'[k],CW"[k],CW_count=60,PID}。CW_countがしかるべく調整される限り、これらの部分が異なる長さであることも可能であることを注意しておくべきである。
【0072】
ユーザーが10分より短い抜粋のみ共有できる場合、一つのEECMを送信することが必要なだけである。第一のユーザーがコンテンツの5分の部分を第二のユーザーと共有したいとする。その部分は、映画の始まりから60分のところに位置されている。5分の抜粋はマスター鍵{CW'[6],CW"[6]} (抜粋は「上位」暗号期間7に位置しているので)から導出される6×5=30個のCWによって保護される。この抜粋の始まりおよび終わりのCWはそれぞれCW0[6]およびCW29[6]である。
【0073】
セキュリティ・モジュールは、マスター鍵CW'[6]およびCW"[6]から二つの鍵CW_p'およびCW_p"を次のように生成する。
【0074】
CW_p'=h0(Ip‖CW'[6])=CW0[6]=CW'[6]
CW_p"=h59-29(Ip‖CW"[6])=h30(Ip‖CW"[6])。
【0075】
鍵CW_p'およびCW_p"は次いでEECM={CW_p',CW_p",CW_count=30,PID}に埋め込まれる。保護された抜粋を第二のユーザーに頒布する前に、EECMは第二のユーザーの公開鍵Kpubbを使って暗号化される。すなわち、EECM_ENC=RSA-204-ENC(Kpubb,EECM)となる。
【0076】
保護された抜粋を受領すると、第二のユーザーのセキュリティ・モジュールは第二のユーザーの秘密鍵Kprivbを使って1024ビットのEECM_ENCを解読し、次いで、諸暗号期間{j,6}内のTSパケットについての制御語CWj[6]を次のように生成する。
【0077】
【数8】

抜粋を本発明の第二の好ましい実施形態を使って保護すると、コンテンツの二つの連続しない抜粋へのアクセスをもつ攻撃者は、それらの抜粋が同じマスター鍵の暗号期間に属するのでない限り、それら二つの抜粋の間に位置されるTSパケットについての制御語を再構築することができない。
【0078】
本発明は、プロセッサによって実行されたときに該プロセッサに本発明の方法を実行させる命令を記憶するDVDまたはCD-ROMのようなコンピュータ・プログラム・プロダクトにも関係する。
【0079】
本発明が、受領者に対してコンテンツ全体を利用可能にすることなく、ユーザーが保護されたコンテンツの一部を共有することを可能にできることは理解されるであろう。本発明のソリューションは、計算コストの点で効率的であり、帯域幅効率がよく(より少ないデータが転送される)、第二の実施形態では結託攻撃に耐性があることができる。それでいて同時に、実際上任意の既存のコピー保護システムとともに実装できる。
【0080】
本稿および(該当する場合には)請求項および図面で開示される各特徴は、独立して、あるいは任意の適切な組み合わせにおいて提供されてもよい。請求項に現れる参照符号は単に例解のためであって、特許請求の範囲に対する限定する効果はもたない。
【符号の説明】
【0081】
100 コンテンツ
110 ブロック
120 保護されたコンテンツ
130 保護されたブロック
200 スクランブル装置
210 鍵発生器
220 スクランブラー
S41 送信すべき抜粋を選択
S42 抜粋鍵を生成
S43 抜粋ライセンスを生成
S44 抜粋および抜粋ライセンスを送信
S45 抜粋および抜粋ライセンスを受信
S46 抜粋ライセンスを解読
S47 制御語を生成
S48 抜粋をスクランブル解除


【特許請求の範囲】
【請求項1】
nを整数として、コンテンツ項目のn個の連続するユニットの暗号化または復号のためのn個の制御語を生成する装置であって:
第一の鍵Kstartおよび第二の鍵Kendを取得し;
前記第一の鍵Kstartに第一の一方向性関数を逐次反復的に適用することによってn個のサブ鍵K10〜K1n-1の第一の順序付き集合を生成するとともに、前記第二の鍵Kendに第二の一方向性関数を逐次反復的に適用することによってn個のサブ鍵K20〜K2n-1の第二の順序付き集合を生成し;
0≦i≦n−1として、n個のサブ鍵の前記第一の順序付き集合からのサブ鍵K1iおよびn個のサブ鍵の前記第二の順序付き集合からのサブ鍵K2n−i−1から制御語iを生成する組み合わせ演算を逐次反復的に使うことによりn個の制御語を生成し;
n個の生成された制御語を出力するよう構成されたプロセッサを有する、
装置。
【請求項2】
前記第一の一方向性関数および前記第二の一方向性関数の少なくとも一方はハッシュ関数である、請求項1記載の装置。
【請求項3】
前記第一の一方向性関数および前記第二の一方向性関数の少なくとも一方は公開鍵暗号化である、請求項1または2記載の装置。
【請求項4】
前記組み合わせ演算はXORである、請求項1記載の装置。
【請求項5】
前記組み合わせ演算は連結または公開鍵暗号化または対称鍵暗号化である、請求項1記載の装置。
【請求項6】
前記プロセッサがさらに、前記コンテンツ項目をそれぞれ複数のユニットを含む複数の部分に分離し、各部分について独立に制御語を生成するよう構成されている、請求項1記載の装置。
【請求項7】
前記プロセッサがさらに、生成された制御語iを使ってユニットiが暗号化されている前記コンテンツ項目についてのライセンスを生成し、前記ライセンスは前記第一の鍵Kstart、前記第二の鍵Kendおよび前記整数nを含み;
前記ライセンスを受信機に送信するよう構成されている、
請求項1記載の装置。
【請求項8】
前記コンテンツ項目がより長いコンテンツ項目の抜粋であり、前記より長いコンテンツ項目が第三の鍵および第四の鍵から生成された制御語を使って暗号化されたものであり、前記プロセッサがさらに:
前記第一の鍵Kstartを前記第一の一方向性関数の前記第三の鍵への逐次反復的適用によって生成し、
前記第二の鍵Kendを前記第二の一方向性関数の前記第四の鍵への逐次反復的適用によって生成するようさらに構成されている、
請求項7記載の装置。
【請求項9】
前記コンテンツ項目が暗号化されており、前記プロセッサがさらに、生成された制御語を使って暗号化されたコンテンツ項目を復号するよう構成されている、請求項1記載の装置。
【請求項10】
コンテンツ項目のn個の連続するユニットの暗号化または復号のためのn個の制御語を生成する方法であって、nは整数であり、当該方法は、装置において:
・第一の鍵Kstartおよび第二の鍵Kendを取得する段階と;
・前記第一の鍵Kstartに第一の一方向性関数を逐次反復的に適用することによってn個のサブ鍵K10〜K1n-1の第一の順序付き集合を生成するとともに、前記第二の鍵Kendに第二の一方向性関数を逐次反復的に適用することによってn個のサブ鍵K20〜K2n-1の第二の順序付き集合を生成する段階と;
・0≦i≦n−1として、n個のサブ鍵の前記第一の順序付き集合からのサブ鍵K1iおよびn個のサブ鍵の前記第二の順序付き集合からのサブ鍵K2n−i−1から制御語iを生成する組み合わせ演算を逐次反復的に使うことによりn個の制御語を生成する段階と;
・n個の生成された制御語を出力する段階とを含む、
方法。
【請求項11】
前記第一の一方向性関数および前記第二の一方向性関数の少なくとも一方はハッシュ関数である、請求項10記載の方法。
【請求項12】
前記組み合わせ演算がXORである、請求項10記載の方法。
【請求項13】
前記コンテンツ項目をそれぞれ複数のユニットを含む複数の部分に分離する段階をさらに含み、請求項10記載の各段階が各部分について独立に実行される、請求項1記載の方法。
【請求項14】
請求項10記載の方法によって生成された制御語を使って暗号化されているコンテンツ項目についてのコンテンツ・ライセンスを生成する方法であって、装置において:
・生成された制御語iを使ってユニットiが暗号化されている前記コンテンツ項目についてのライセンスを生成する段階であって、前記ライセンスは前記第一の鍵Kstart、前記第二の鍵Kendおよび前記整数nを含む、段階と;
・前記ライセンスを受信機に送信する段階とを含む、
方法。
【請求項15】
請求項14記載の方法であって、前記コンテンツ項目がより長いコンテンツ項目の抜粋であり、前記より長いコンテンツ項目は第三の鍵および第四の鍵から生成された制御語を使って暗号化されたものであり、当該方法がさらに:
・前記第一の鍵Kstartを前記第一の一方向性関数の前記第三の鍵への逐次反復的適用によって生成する段階と;
・前記第二の鍵Kendを前記第二の一方向性関数の前記第四の鍵への逐次反復的適用によって生成する段階をさらに含む、
方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−170066(P2012−170066A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−24738(P2012−24738)
【出願日】平成24年2月8日(2012.2.8)
【出願人】(501263810)トムソン ライセンシング (2,848)
【氏名又は名称原語表記】Thomson Licensing 
【住所又は居所原語表記】1−5, rue Jeanne d’Arc, 92130 ISSY LES MOULINEAUX, France
【Fターム(参考)】