首页> 中国专利> 用节目识别符限制访问发射的节目内容的加密方法和装置

用节目识别符限制访问发射的节目内容的加密方法和装置

摘要

这里公开了一种用于限制对发射的节目内容进行访问的系统,该系统与加密的节目内容一起发射一节目识别符。机顶终端或相似的机制应用存储的解密钥限制对发射的多媒体信息的访问。机顶终端最好相应于在一给定期间授权给用户一个或多个节目包,周期性地从头端接收权利信息。每个节目最好由头端服务器在发射之前应用一个对该节目是唯一的节目钥KP来加密。机顶终端应用接收到的节目识别符p,与存储的权利信息一起,导出对该节目解密所必需的解密钥。

著录项

  • 公开/公告号CN1209017A

    专利类型发明专利

  • 公开/公告日1999-02-24

    原文格式PDF

  • 申请/专利权人 朗迅科技公司;

    申请/专利号CN98118377.8

  • 发明设计人 阿维沙·伍尔;

    申请日1998-08-14

  • 分类号H04N7/16;

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人酆迅

  • 地址 美国新泽西

  • 入库时间 2023-12-17 13:21:23

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-09-29

    未缴年费专利权终止 IPC(主分类):H04L9/14 授权公告日:20040407 终止日期:20160814 申请日:19980814

    专利权的终止

  • 2004-04-07

    授权

    授权

  • 2000-11-08

    实质审查请求的生效

    实质审查请求的生效

  • 1999-02-24

    公开

    公开

说明书

本发明一般涉及一种用于限制对发射的节目内容进行访问的系统,特别地,涉及一种用于发射带有一节目识别符的加密节目的系统,其中该节目识别符由一机顶终端用来与存储的权利信息一起导出解码该节目所必需的解密钥。

随着可提供给电视观众的频道数目的增加,以及在这些频道上的节目内容的多样性,对于服务提供者,例如有线电视经营者和数字卫星服务经营者,已有越来越多的挑战,以提供满足大多数电视观众的频道和节目包。这些可以被提供给用户的节目包的开发通常是一个销售作用(function)。通常,服务提供者希望提供从单个节目到所有节目的各种大小、以及这些节目之间的各种组合的节目包。

服务提供者一般从一个常常称为“头端”的发射器向很大数量的用户发送电视节目。每个用户一般只被授权接收到的节目的一个子集,与购买的节目包相联系。在无线广播环境中,例如,发射的节目可以由带有合适的接收器例如天线或卫星抛物面天线的任何人接收到。于是,为了对已经购买了所需节目包的特许用户限制对发射的节目的访问,服务提供者一般对发射的节目加密,并向用户提供一包含一个或多个可以用来对授权给用户的节目解密的解密钥的机顶终端(STT)。以这种方式,机顶终端接收加密的发射内容,并仅对用户被授权的节目解密。

为了使对存储在机顶终端的高度机密信息、包括存储的解密钥的侵权减至最少,机顶终端一般包含一个保密处理器和容量一般在数千比特数量级的保密存储器,以存储解密钥。保密存储器通常是非易失性的,而且是抗窜改的。另外,保密存储器最好是可写的,以使得例如对每一计费期间这些钥可根据需要重新编程。常规的机顶终端的有限的保密存储器容量限制了可以存储的密钥的数目,因此限制了可以由服务提供者提供的节目包的数目。要注意的是,一般由服务提供者在每个计费月期间发射的节目数目可以在200,000这个数量级。

在一个变化中,常规的机顶终端包含一个位向量,该位向量具有相应于由服务提供者提供的节目包的一位入口。一般,每一节目包相应于一个电视频道。如果特定用户被授权到一节目包,则将存储在机顶终端中的位向量中的相应位入口设置为一(“1”)。此后,由服务提供者发射的所有节目以一单个密钥加密。在接收到一给定节目后,机顶终端访问该位向量,以确定是否已设置相应位入口。如果该位入口已被设置,机顶终端就应用一单个存储的解密钥对节目解密。

在理论上,通过为每一节目提供一个位入口在位向量方案中达到灵活性时,在一单个计费期间发射许多节目的系统中位向量的长度是不切实际的。另外,在这样一个系统中的访问控制是由位向量中的入口唯一提供的,而且不是加密的。于是,如果用户能够重写该位向量,并设置所有的位为一(“1”),则用户能访问所有节目。

在进一步的变化中,节目被分成节目包,并且在一给定节目包中的所有节目以相同的密钥加密。每一节目包一般还是相应于一个电视频道。机顶终端为授权给用户的每一节目包存储一个解密钥。于是,如果一个节目要包含在多个节目包中,则该节目必须为每一相联系的节目包重新发射,每次发射以相应于特定节目包的加密钥加密。虽然访问控制是加密的,多次发射一给定节目的额外开销使得服务提供者不愿意将同一节目放在多个节目包中,从而限制了在节目包设计中的灵活性。

虽然这些用于加密和发射节目内容的前述系统已经比较成功地限制了已授权用户的访问,但这些系统不允许服务提供者,例如电视网络,向用户提供包含各种数目的节目的许多不同的节目包,而不超过机顶终端的有限的保密存储器容量或显著地增加额外开销。由于用于发射加密节目内容的常规系统存在着上述明显缺陷,因此需要有一种系统,用于发射带有节目识别符并以密钥加密的节目,该节目识别符由机顶终端使用,与存储的权利信息一起,导出对节目解密所必需的解密钥。还需要一种系统,该系统允许服务提供者在多个节目包中包括某个节目,而不需要服务提供者为每一节目包重新发射该节目。还需要一种访问控制系统,该系统克服了机顶终端的保密存储器限制,而不会显著地增加与发射的节目内容相联系的额外开销。

通常,服务提供者应用一发射器或者头端服务器向一个或多个用户发射加密节目内容。依据本发明的一个方面,将用于识别节目的节目识别符p与节目内容一起发送给用户。每一用户最好具有一机顶终端或另一机制,以应用解密钥来限制对发送的多媒体信息的访问。机顶终端最好相应于在一给定期间授权给用户的一个或多个节目包,周期性地接收来自头端的权利信息。

每一节目最好由头端服务器在发射之前应用一个节目钥KP加密,其中节目钥KP对该节目可以是唯一的。除了发射加密的节目,头端服务器最好还向机顶终端发射节目识别符p。机顶终端应用接收到的节目识别符p,与存储的权利信息一起,导出对该节目解码所必需的解码钥。以这种方式,如果一特定节目授权给用户,则机顶终端应用存储的和接收的信息可以导出加密节目钥KP,并在此后应用该节目钥KP对加密的节目解密。在各种实施例中,该节目识别符p可以与节目部分交叉或者在一个单独专用的控制频道上发射。

依据本发明的另一方面,每一个用于对发射的节目加密的k-位节目钥KP是若干k-位主密钥集ml…mn所定义集合的线性组合,每一主密钥mi最好由头端服务器存储在一个k×n矩阵M的列中。节目钥KP的位长度k必须比节目识别符p的位长度n大。节目识别符p作为一节目密钥掩码,指定在主密钥矩阵M中的哪一个密钥被用于产生节目钥KP。头端服务器最好在每一计费期间为矩阵M产生一个新的主密钥集。在一个实施例中,主密钥矩阵M可以随机产生,假设主密钥mi是线性无关的,以使得产生的节目钥KP不会意外地为0。

用户购买一个或多个所需的节目包,这些节目包一起包含了r个节目。因为每一用于对节目加密的节目钥KP是主密钥集M的线性组合,所以一旦用户获得了授权的r个节目的每一个的节目钥KP,则用户也可以很容易地导出2r个节目的节目钥KP。于是,依据本发明的另一方面,需要r个节目的用户实际获得对包含这些r个节目的节目的最小线性子空间U的访问。最好以一种允许带有相关内容的节目符合低维线性子空间的方式来组织节目。另外,因为每一节目钥KP是主密钥M的线性组合,所以一给定节目包不能具有任意数目的节目。特别地,一个节目包包括(2i-1)个节目识别符,对i小于n的某些值,这些节目识别符不必都指定给节目。

机顶终端需要对任何属于用户的授权子空间U内的节目p解密,但不对任何其他节目解密。子空间U可以用一个基矩阵B来表示。为了对分别由一节目识别符p识别的节目的子空间U解密,机顶终端需要一个从主密钥矩阵M导出的主密钥的相应子集。于是,机顶终端包括一个用户密钥矩阵K,该矩阵包含授权给用户的主密钥的导出部分。另外,由机顶终端存储的权利信息包括一个有效行下标集i1…ir,该有效行下标集由头端服务器用来从基矩阵B和正则基矩阵的逆矩阵(B()-1生成一正则矩阵B(。

在一个最佳实施例中,机顶终端还存储一个校验矩阵C,作为权利信息的一部分,以允许机顶终端提前确定接收的节目是否在授权子空间U中,而不用经过整个解密过程。以这种方式,机顶终端可以明确地将因为发射错误而无法解密的节目与因为不是子空间U的成员而无法解密的节目区分开来。

通过参考下面的详细说明和附图,可以更全面地理解本发明,以及本发明的其他特征和优点。

图1是显示依据本发明的一个实施例用于发送加密节目内容的系统的方框图;

图2是图1中的头端服务器例子的方框图;

图3是图1中的机顶终端例子的方框图;

图4a和4b显示了一个用于获得由图3中的机顶终端存储的权利信息的线性方程系统;

图5显示了来自图2的节目数据库的样本表;

图6显示了由图2的头端服务器用于以一种允许带有相关内容的节目适合一低维线性子空间的方式组织节目的典型的主题分层结构;

图7显示了来自图3的权利数据库的样本表;

图8a是说明由图2的头端服务器实现的权利信息分发处理的例子的流程图;

图8b显示了由图8a的权利信息分发处理为图6中的具有一m-位前缀掩码的主题计算出的基向量集B(;

图9是说明由图2的头端服务器实现的节目分发处理的例子的流程图;以及

图10是说明由图3的机顶终端实现的解码处理的例子的流程图。

图1显示了用于从服务提供者应用一个发射器通过一个或多个分发网络110向一个或多个具有机顶终端300-301的用户传送加密的多媒体信息例如视频、音频和数据的用于说明的网络环境。发射器,例如头端服务器200,将在下面结合图2进行讨论,机顶终端300-301,例如机顶终端300,将在下面结合图3进行讨论。这里所采用的机顶终端包括任何应用解密钥限制对发射的多媒体信息进行访问的机制,例如包括计算机结构或电信设备。由机顶终端执行的软件有可能由服务提供者下载。分发网络110可以是用于传输节目内容的无线广播网络,例如数字卫星服务(“DSS□SYMBOL212\f“symbol”□”),或常规的有线网络,例如有线电视网络(“CATV”),公用交换电话网络(“PSTN”),光纤网络,宽带综合业务数字网(“ISDN”)或国际互连网。

依据本发明的一个特征,机顶终端300周期性地接收来自头端服务器200的权利信息,该头端服务器200允许用户在一给定时间间隔例如计费期间访问授权给用户的节目。这里所用的节目包是预先定义的一组节目,并且一给定节目可以属于一个或多个节目包。节目可以是任何特定长度的连续的多媒体发射,例如一个电视剧或一个电影。可以应用任何适合保密的单向或双向协议将权利信息从头端服务器200下载到机顶终端300,这对于普通技术人员来说是显而易见的。

节目钥和节目识别符

如同下面将进一步讨论的,每一发射的节目由头端服务器200应用一节目钥KP来加密,其中节目钥KP对于该节目可以是唯一的。关于合适的加密和保密技术的详细讨论可以参看B.Schneier,应用密码学(AppliedCryptography)(第二版,1997),这里引用该书作为参考。除了发射加密的节目,头端服务器200还向机顶终端300发射一个n-位节目识别符p,该节目识别符p可以由机顶终端300用来与存储的权利信息一起,以一种下面将要进一步说明的方式,导出对该节目解密所必需的解密钥。在下面的部分“对节目指定节目识别符”将讨论,节目识别符p不是任意选择的。在一个最佳实施例中,节目识别符p包括一个32位值,该值可以在例如在MPEG-2标准中定义的ECM域中发射。以这种方式,如果一特定节目授权给用户,则机顶终端300可以从存储的和接收的信息导出节目钥KP,并在此后使用该节目钥KP对加密的节目解密。

依据本发明的另一特征,每个用于对发射的节目加密的k-位节目钥KP是若干k-位主密钥m1…mn所定义集合的线性组合,每一主密钥mi最好由头端服务器200存储在一个k×n矩阵M的列中。需要注意的是,节目钥KP的位长度k必须比节目识别符p的位长度n大。在一个最佳实施例中,节目钥KP具有64位或128位的位长度。于是,节目钥KP是主密钥集M的线性组合,满足:

KP=Mp    [1]

以这种方式,节目识别符p作为一节目密钥掩码,指定在主密钥矩阵M中的哪一个密钥被用于产生节目钥KP。如果在特定节目标识符p中的位入口i设置为一(“1”),则来自主密钥矩阵M的相应的主密钥mi将用于为相应的节目产生节目钥KP。

头端服务器200最好在每一计费期间为矩阵M产生一个新的主密钥集。主密钥矩阵M可以随机产生,假设主密钥mi是线性无关的,以使得产生的节目钥KP不会意外地为0。换句话说,没有一个主密钥mi能具有值0或者是其他主密钥mi的线性组合。需要注意的是,当节目钥KP为0时,许多常规的加密算法生成未加密的、与明文相同的密文。于是,如果主密钥mi是线性无关的,则产生的节目钥KP就不会意外地为0,并且只有在指定给节目的节目识别符p被故意设置为0时,节目将以明文格式发射,例如,目录列表或电视网络广播。应该注意,由于k比n大,所以总能获得n个线性无关的k-位主密钥mi。

然而,还需要注意的是,对于某些应用,要求主密钥mi是线性无关也许不是合乎需要的,因为在没有正当的授权时,电脑黑客也许可以应用这一点在企图对节目p解码时来减少需要被试验的尝试解码的可能次数。在这种情况下,最好容许无意中以明文格式发射节目的小概率事件。这种情况下,最好容许无意中以明文格式发射节目的小概率事件。

用户购买一个或多个需要的节目包,这些节目包一起包含r个节目。由于每个用于对节目加密的节目钥KP是主密钥集M的线性组合,所以一旦用户获得授权的r个节目中的每一个的节目钥KP,则用户还可以容易地导出2r个节目的节目钥KP。于是,因为具有r个节目的节目钥使用户能够导出2r个节目的节目钥(包括具有值为0的节目识别符p、相应于明文节目的节目),该系统可以被称作“泄漏”信息。换句话说,当用户购买了r个节目时,用户实际上购买了包含这些r个节目的节目的最小子空间U。于是,依据本发明的另一特征,用户可以获得的节目包的唯一类型是一个节目标识符的线性子空间的形式。另外,由于节目钥KP是主密钥M的线性组合,所以一给定节目包不能具有任意数目的节目。特别地,一个节目包必须包括(2i-1)个节目,其中i小于n。当然,不是所有的(2i-1)个与节目包相联系的节目识别符p都需要被指定。

机顶终端权利信息

于是,用户的机顶终端300需要对任何属于子空间U的节目p解密,但不对任何其他节目解密。如前所示,当用户购买了一个节目包的节目时,用户获得节目的r维子空间U。该子空间U可以用一个n×r的基矩阵B来表示,该矩阵列bl...br生成子空间U,其中U是B的各列的所有线性组合集,B是r维的。为了对每个由节目识别符p识别的节目的子空间U解码,机顶终端300需要一个从主密钥矩阵M导出的主密钥的相应子集。于是,提供给机顶终端300一个用户钥矩阵K,该矩阵包含授权给用户的主密钥的导出部分。用户钥矩阵K可以通过主密钥矩阵M与表示用户的节目子空间U的基矩阵B相乘来获得,如下所示:

K=MB    [2]

用户钥矩阵K将由头端服务器200产生,其产生方式将在下面结合图8进行说明,并且例如在每个计费期间,该用户钥矩阵K被下载到机顶终端300并存储。

如前所示,头端服务器200与加密的节目一起发射节目识别符p。于是,对于给定的节目识别符p,机顶终端300必须获得用于对接收到的节目解密的节目钥KP。如前所示,依据方程1,节目钥KP是主密钥M的线性组合。当然,机顶终端300不能存取主密钥矩阵M。于是,节目钥KP必须应用用户钥矩阵K和接收到的节目识别符p间接地获得。

为了求解方程1和2,以得到节目钥KP,必须确定节目识别符p与基矩阵B之间的关系。因为B是U的基,节目识别符p是U的成员,所以节目识别符p可以被写作基向量的线性组合。换句话说,存在着r维向量x,满足:

p=Bx    [3]

下面将要讨论,方程3可以求解出r维向量x。于是,将方程3代入方程1,节目钥KP可以表示为:

KP=MBx    [4]

相似地,将方程2代入方程4,节目钥KP可以表示为:

KP=Kx    [5]

于是,如果有存储的用户钥矩阵K并从存储的和接收的信息导出r维向量x,则机顶终端300可以以下面将要说明的方式,计算出节目钥KP。

如上所述,从方程3可以解出r维向量x。图4a显示了相应于方程3的线性方程系统。于是,如果有存储的基矩阵B和接收到的节目识别符p,则从方程3可以解出r维向量x。需要注意的是,只要子空间U小于所有节目的空间,则维数r将小于n,并且带有n个方程和r个变量的方程3是超定义的。然而,由于节目识别符p是子空间U的成员,所以方程3的解必须存在。

如果基矩阵B被限制到基矩阵B的行i1…ir,这形成了一个正则r×r子矩阵B(,节目识别符p被限制到形成一个r维向量p(的p的相应入口,如图4a的阴影部分所示,则相应于较小系统的方程3可以写成如下形式:

p(=B(x    [6]

于是,为求解x,方程6可以写成如下形式:

x=(B()-1p(    [7]

其中(B()-1是子矩阵B(的r×r逆矩阵。应该注意,逆矩阵(B()-1最好能够由头端服务器200每个计费期间一次下载到机顶终端300。另外,需要用于从基矩阵B产生逆矩阵(B()-1的有效行下标i1…ir,也需要被机顶终端300用于从接收的节目识别符p产生r维向量p(。于是,有效行下标i1…ir最好与其他权利信息一起由头端服务器200下载到机顶终端300。

于是,从存储的逆矩阵(B()-1,以及从接收的节目识别符p通过检查由存储的有效行下标i1…ir表示的入口导出r维向量p(,机顶终端300可以计算r维向量x。此后,机顶终端300可以依据方程5,应用存储的用户钥矩阵K和计算出的r维向量x,来计算出节目钥KP。

在一个最佳实施例中,在下面的“可选校验矩阵”部分中将讨论,机顶终端300还接收一个校验矩阵C,作为权利信息的一部分,以允许机顶终端300提前确定接收的节目是否在授权的子空间U中,而不用完成整个解码过程。另外,校验矩阵C使得机顶终端300可以明确地将因为发射错误而无法解密的节目与因为不是子空间U的成员而无法解密的节目区分开来。另外,如果机顶终端300确定接收的节目不是子空间U的成员,则机顶终端300可以显示一个用户未被授权观看当前节目的信息。

系统组成部分

图2是显示用于说明的头端服务器200的体系结构的方框图。该头端可以与电视网络、有线电视经营者、数字卫星服务经营者或任何发射加密节目内容的服务提供者相联系。头端服务器200的一个实例可以是由IBM公司制造的RS6000服务器,在这里被修改,以执行本发明的功能和操作。头端服务器200最好包括处理器210和有关的存储器,例如数据存储设备220。处理器210可以实施为单处理器或并行运行的多处理器。数据存储设备220和/或只读存储器(ROM)可用来存储一个或多个指令,处理器210可以检索、解释和执行这些指令。处理器210最好包括一个控制单元,一个算术逻辑单元(ALU),以及一个本地存储器存储设备,例如,指令高速缓冲存储器或多个寄存器,这可以以一种公知的方式实现。控制单元可用于从数据存储设备220或ROM检索出指令。ALU可用于执行完成指令所需要的多种运算。本地存储器存储设备可用于为存储临时结果和控制信息提供高速存储。

如上所述,数据存储设备220最好包括主密钥矩阵M240,该矩阵M可以每个计费期间更新一次。另外,如同下面将结合图5和6进行讨论的那样,数据存储设备220最好包括一个节目数据库500和一个主题分层结构600。节目数据库500最好指出相应于每个节目的节目识别符p和相关的节目包。在图6中所示的典型的主题分层结构600最好由头端服务器200用来以一种允许带有相关内容的节目适合低维线性子空间的方式组织节目。

另外,如同下面将结合图8和9所讨论的那样,数据存储设备220最好包括权利信息分发处理800和节目分发处理900。通常,权利信息分发处理800产生并分配每一用户访问授权节目所需要的权利信息。另外,节目分发处理900最好基于指定给节目的节目识别符p和主密钥集M导出节目钥KP,以加密和发射带有节目识别符p的节目。

通讯端口230将头端服务器200连接到分发网络110,因而将头端服务器200连接到每个相连的接收器,例如图1中的机顶终端300。

图3是显示一个用于说明的机顶终端300的体系结构的方框图。例如,机顶终端300可以被实施为与一个电视相联系的机顶终端(STT),例如通用仪器公司的市场上可买到的STT,在这里进行修改以执行本发明的功能和操作。机顶终端300最好包括处理器310和有关的存储器,例如数据存储设备320,还包括通讯端口330,该通讯端口330以与结合图2所说明的硬件相似的方式操作。

如同下面将结合图7讨论的那样,数据存储设备320最好包括一个权利数据库700。权利数据库700最好存储在数据存储设备320的保密部分。权利数据库700最好包括用户钥矩阵K、逆矩阵(B()-1、有效行下标i1…ir,以及可选的校验矩阵C。另外,如同下面将结合图10讨论的那样,数据存储设备320最好包括解码处理1000。通常,解码处理1000通过应用接收的节目识别符p和存储的权利信息700来导出节目钥KP,然后应用节目钥KP对节目解密,从而对授权给用户的节目解密。

图5显示了节目数据库500的例子,该节目数据库最好存储关于每一节目p的信息,这些信息将由头端服务器200在例如一给定计费期间发射,包括这些节目所属的节目包和相应的节目识别符p。节目数据库500保持多个记录,例如记录505-520,每一记录与一个不同的节目相联系。对于每个由字段525中的节目名识别的节目,节目数据库500包括在字段530中的该节目所属的相应节目包的指示和在字段535中的相应的节目识别符p。

图7显示了权利数据库700的例子,该权利数据库最好存储由机顶终端300从头端服务器200接收的用户钥矩阵K、逆矩阵(B()-1、有效行下标i1…ir,以及可选的校验矩阵C。

对节目指定节目识别符

如前所述,依据本发明,当用户购买了一个节目包,该用户则获得了节目的子空间U。于是,为了最大限度地应用本发明,必须小心确保指定给带有相关内容的节目的节目识别符p适合低维线性子空间。因此,节目识别符p最好不要任意选择。例如,如果一给定用户期望购买包括所有体育节目的节目包,如果节目识别符p是随机指定的,该用户将获得对所有节目的访问。由于这种节目包的花费非常高,此外还有可能向用户提供多余的节目,例如成人内容,所以不希望出现这种情况。

通常,可以根据属性例如其主题、年龄、语言、收看率或信号源,以图6中所示的主题分层结构600来组织节目。在主题分层结构600的顶层包括非常广泛的主题,其被一级一级适当地限定,直到到达处在叶上的单个节目。分层结构600不需平衡。换句话说,一些主题可以有许多子主题,而其他可以只有很少的子主题。于是,节目可以定位在主题分层结构的各种分层。

应用前缀掩码的概念对主题分层结构600中的节目指定节目识别符p。处于相同分支的节目的节目识别符p被指定为具有相同的前缀(最高有效位)。图6显示了一个这种代表性的主题分层结构600。通过从根部向叶端标定主题,将前缀掩码递归指定给在主题分层结构600中的节点。每个主题的前缀掩码是连接到其父主题的掩码的其自身的标记。在图6中所示的十进制数表示掩码值。另外,主题分层结构的每一层的掩码长度在图6中的方括号中。例如,在子主题“职业篮球”下的节目的前缀掩码是“1000010 01”。

然而,需要注意的是,具有节目识别符P且带有前缀掩码“10 0001001”的职业篮球节目的集合不是一个线性空间。为了得到一线性子空间,识别符P且带有前缀掩码“00 00000 00”的所有额外节目的访问。还需注意的是,如果前缀掩码的长度是l位,则子空间的维数r是n-l+1。下面将结合图8a讨论由权利信息分发处理800基于由用户选择的节目包从主题分层结构600产生权利信息700的方式。

根据选择的前缀掩码计算基矩阵

如上所述,头端服务器200最好执行如图8a所示的权利信息分发处理800,以产生并分配每一用户访问授权节目所需的权利信息700。如前所示,权利信息700最好包括用户钥矩阵K、逆矩阵(B()-1、有效行下标i1…ir,以及可选的校验矩阵C。权利信息的每个组成部分都从基矩阵B导出。特别地,依据方程Z,应用主密钥矩阵M和基矩阵B来得到用户钥矩阵K;直接从基矩阵B得到逆矩阵(B()-1和有效行下标i1...ir;根据下面要讨论的方程13从基矩阵B得到校验矩阵C。于是,权利信息分发处理800必须首先基于用户选择的节目包计算基矩阵B,其中这些节目包一起包含一个或多个主题分层结构600中的节目主题。

于是,最初,在步骤810中,权利信息分发处理800识别包含由用户选择的节目的一个或多个节目主题。例如,如果用户选择了一个包含主题分层结构600中的特定主题的节目包,则所选定节目具有与已指定给该主题的同一前缀掩码。如前所示,在一具有1位前缀掩码的特定主题中的节目集不是一个线性空间。为了得到一线性空间,必须包括等于“0”且长度为1位的前缀掩码。于是,用户还获得了对具有节目识别符p且带有l位前缀掩码“0”的所有额外节目的访问。以这种方式,用户被认为是获得了对额外扩展的节目包的访问。

于是,一旦已识别出所选定主题,权利信息分发处理800就在步骤820识别每一主题的前缀掩码(和每一前缀掩码的长度l。对于每个非零的m位掩码(,在步骤830根据下列方程计算相应的基向量集B(:

B(=(z,el+1…en(    [8]

其中el+1…en代表标准基,ei在位置i具有“1”位,允许向量z具有掩码(作为其前缀,后面跟着(n-l)个“0”位。在步骤830中为“职业篮球”主题计算的基向量集B(如图8b所示。球”主题计算的基向量集B(如图8b所示。

然后在步骤840通过重复地包括来自所有单个基向量集B(的并集的下一向量,应用一组线性方程,来为所有选择的主题产生一个基向量的复合集,其中该下一向量是与已在基向量的复合集B中的所有向量无关的。以这种形式产生的基向量复合集B清楚地覆盖了属于所要求主题的所有节目。

然后在步骤850应用每个向量z,el+1...en作为列,将基向量复合集B转换成相应的(n-l+1)基矩阵B。此后,在步骤860,权利信息分发处理800产生权利信息700,包括用户需要用以对加密节目解密的用户钥矩阵K、逆矩阵(B()-1、有效行下标i1…ir,以及可选的校验矩阵C。最后,在步骤880程序控制结束之前,在步骤870,产生的权利信息由头端服务器200下载到机顶终端300。

需要注意的是,通常,线性子空间的并集不是线性子空间。因此,计算出的基向量复合集B是包含所有所需主题、额外分层结构部分、以及主题分层结构的其他未要求的部分的线性子空间的基。于是,系统最好计算出在所有这些副作用下实际可访问的节目的子空间。

如上所述,为了加密和发射带有节目识别符p的节目,头端服务器200最好执行如图9所示的节目分发处理900,以便基于指定给节目的节目识别符p和主密钥集M,导出节目钥KP。需要注意的是,与实际的发射步骤不同,节目分发处理900可以脱机或实时执行。如图9所示,节目分发处理900在步骤910通过识别要发射的节目,开始以下体现本发明的原理的处理。

此后,节目分发处理900在步骤920从节目数据库500检索出相应于该节目的节目识别符p,然后在步骤930根据方程1计算出相应于该节目的节目钥KP。然后在步骤940,用在前一步骤计算出的节目钥KP对该节目加密。最后,节目分发处理900在步骤960程序控制结束之前,在步骤950,与节目识别符p一起发射加密的节目。需要注意的是,节目识别符p最好与节目信息的发射相交叉周期地发射,以便用户在节目期间可以变换频道,并且能够导出对该节目解密所需的节目钥KP。在另一个实施例中,节目识别符p可以在一个单独的控制频道例如Barker频道上连续发射。

如上所述,机顶终端300最好执行一解码处理1000,如图10所示,通过应用接收的节目识别符p和存储的权利信息700来导出节目钥KP,然后应用该节目钥KP来对节目解密,以对授权给用户的节目解密。如图10所示,解码处理1000在接收到用户调谐到一特定频道的指令后,在步骤1010开始实施本发明的原理的处理。

此后,在步骤1020,机顶终端300接收适当的信号,包括加密节目和发射的节目识别符p。解码处理1000然后在步骤1030从权利数据库700检索出存储的权利信息。在步骤1040应用有效下标从接收的节目识别符p产生p’。然后在步骤1050根据方程7计算出向量x,在步骤1060根据方程5计算出节目钥KP。

最后,在步骤1080程序控制结束之前,在步骤1070,应用导出的节目钥KP对节目解密。需要注意的是,如果接收到的节目不是授权子空间U的一部分,则在步骤1050没有解,在步骤1050中计算出的x向量不是一个有效解。于是,解码处理1000产生一个对于接收的节目是不正确的节目钥KP,该节目钥KP实际上相当于在用户子空间U中的另一个节目的节目钥KP,则该解码处理1000不会产生未授权给用户的节目钥KP。

还需注意的是,如前所示,解码处理1000在试图导出解密钥之前,可以等待用户要求某一特定频道,并确定用户是否被授权到所要求的频道,或者解码处理1000也可以周期地扫描所有频道来获得发射的节目识别符p,导出解密钥,以便存储在数据存储设备320中,并预先确定用户的权利。

可选权利信息

在可选择的实施中,头端服务器200可以通过引入一修正基矩阵B((以一单个矩阵D的形式向机顶终端300提供权利信息,该矩阵D包括用户钥矩阵K、逆矩阵(B()-1、以及有效行下标i1…ir。矩阵B((,如图4b所示,定义为一r×n矩阵,其有效下标列i1…ir包含逆矩阵(B()-1的所有列,在其他所有位置则为0。B((的非零部分和p中的相应入口如图4b中阴影所示。在这个可选择的实施中,矩阵D定义如下:

D=MBB((    [9]

另外,向量x可用下式表示:

矩阵D是解码处理1000计算节目钥KP所需的唯一权利信息。为了生成矩阵D,根据方程9,头端服务器200必须基于由用户选择的节目包应用基矩阵B计算出逆矩阵(B()-1,扩展该逆矩阵以形成B((,然后应用主密钥矩阵M。

将方程10代入方程4,节目钥KP可以表示为:

KP=MBB((p    [11]

在步骤1060由解码处理1000执行的节目钥KP的计算应用方程9可以进一步简化为:

KP=Dp    [12]

可选校验矩阵

如前所示,机顶终端300可选地接收一校验矩阵C,作为权利信息700的一部分,以允许机顶终端300提前确定接收的节目是否在授权的子空间U中,而不用完成整个解码处理1000。另外,校验矩阵C允许机顶终端300明确地将因为发射错误而无法解密的节目与因为不是子空间U的成员而无法解密的节目区分开来。另外,如果机顶终端300确定接收的节目不是子空间U的成员,则机顶终端300可以显示一个信息或提供其他反馈,表明该用户未被授权观看当前节目。n×n校验矩阵C定义如下:

C=BB((-I    [13]

其中I是n维单位矩阵。

于是,当且仅当Cp=0时,具有节目识别符p的给定的接收到的节目才是用户子空间U的成员。需要注意的是,如果用户的授权子空间U是所有节目的集合,则任何基矩阵其本身是一个n维正则矩阵,因此B((=B-1,BB((=I。于是,校验矩阵C变为零,上述的测试总是成功的。

应该理解,这里显示和说明的实施例及其变化只是用于说明本发明的原理,在不偏离本发明的范围和精神的情况下,熟练的技术人员可以实施各种修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号