发明内容
本发明涉及一种用于管理加密密钥并使接收机能够将与所需质量相对应的增强层中的全部片段解密,同时使消费者依旧无法访问所有其它片段的方法。本发明集中研究以对补充流进行高效加密和解密为目标的密钥管理系统。
其特别适用于MPEG4 FGS领域,但是更一般地也适用于传输加密编码帧的其它领域。
为了达到该目的,本发明涉及一种用于对由发射机向接收机发送的已编码的可伸缩增强帧的加密的方法,该增强帧包括多个按照质量级别排序的补充流,每个补充流与多于一个可伸缩性类型的组合相对应,其中较低质量级别的补充流与每个可伸缩性类型的较低质量相对应,所述方法在发射机级别包括以下步骤:为每个补充流生成用于对该补充流进行加密的密钥,使得所有可伸缩性类型可以同时或者单独使用;所述密钥的生成使得仅可以根据补充流的密钥获得低于所述补充流质量级别的质量级别的补充流的密钥;以及向接收机发送与质量级别相对应的补充流的密钥,该密钥允许接收机仅生成较低质量级别的补充流的密钥。
本发明提供了期望特性,如高安全性、低复杂度、以及低数据开销。对于加密方案及其相关的密钥管理系统,具有高安全性是最基本的;尽管如此这一般是以复杂度和数据开销为代价而实现的。低复杂度方法是使用尽可能少的密钥,短密钥尺寸并且甚至可以与计算能力有限的设备一同工作的方法。低数据开销意味着不以“加扰流”增加巨大开销的方法。密钥生成过程允许根据单个密钥生成全部后续的密钥。服务器仅需要向接收机发送一个密钥,使得接收机推断出允许的密钥。这要求极少的数据开销。
根据一实施例,该方法包括以下步骤:在发送与质量级别相对应的补充流的密钥之前,接收来自接收机的、对所述质量级别的流接收 的请求。
根据一实施例,为每个补充流生成密钥的步骤包括以下步骤:生成较高质量级别的补充流的随机密钥;以及通过对该随机密钥连续地应用至少单向置换算法,来获得较低质量级别的补充流的密钥。
单个函数允许生成全部的后续密钥。这要求极少的计算资源。
特别地,在第一可伸缩性以及第二可伸缩性两个可伸缩性类型的组合中,获取针对给定的第一可伸缩性级别的较低质量级别的补充流的密钥的步骤包括以下步骤:将一级别的密钥划分成左部和右部;对密钥的右部应用单向置换算法;以及将密钥的左部与获取到的右部连接(concatenating),以获得较低质量级别的密钥。
类似地,在第一可伸缩性以及第二可伸缩性两个可伸缩性类型的组合中,获取针对给定的第二伸缩性级别的较低质量级别的补充流的密钥的步骤包括以下步骤:将一级别的密钥划分成左部和右部;对密钥的左部应用单向置换算法;以及将获取到的右部与密钥的左部连接,以获得较低质量级别的密钥。
本发明还涉及一种用于计算解密密钥以对已编码的可伸缩增强帧进行解密的方法,其中增强帧包括多个按照质量级别排序的补充流,每个补充流与多于一个可伸缩性类型的组合相对应,其中较低质量级别的补充流与每个可伸缩性类型的较低质量相对应,所述方法在接收机级别包括以下步骤:接收与所需质量级别相对应的补充流的密钥;以及根据接收到的密钥仅生成与较低质量级别相对应的补充流的后续密钥。
接收机不需要接收针对全部补充流的全部密钥。其仅接收允许生成授权密钥的唯一密钥。
根据一实施例,该方法包括接收补充流的密钥的步骤,该方法包括:指示所述所需质量级别的流接收的步骤。
根据一实施例,生成后续密钥的步骤包括:连续地对接收到的密钥应用单向置换算法的步骤。
本发明还涉及一种用于对已编码的可伸缩增强帧进行加密的设备,其中增强帧包括多个按照质量级别排序的补充流,每个补充流与 多于一个可伸缩性类型的组合相对应,其中较低质量级别的补充流与每个可伸缩性类型的较低质量相对应,该设备包括:加密装置,用于生成较高质量级别的补充流的随机密钥,并通过对该随机密钥连续应用至少单向置换算法来生成较低质量级别的补充流的密钥。
本发明还涉及一种用于对已编码的可伸缩增强帧进行解密的设备,其中增强帧包括多个按照质量级别进行排序的补充流,每个补充流与多于一个可伸缩性类型的组合相对应,其中较低质量级别的补充流与每个可伸缩性类型的较低质量相对应,该设备包括:解密装置,用于根据接收到的密钥仅生成与较低质量级别相对应的补充流的后续密钥。
本发明的另一个目的是一种计算机程序产品,该计算机程序产品包括:程序代码指令,用于当在计算机上执行该程序时,执行根据本发明的过程的步骤。此处的“计算机程序产品”意味着计算机程序支持,其可以不仅存在于包含程序的存储空间中,还存在于信号(例如电或者光信号)中。
具体实施方式
示例实施例属于MPEG-4 FGS的框架,但是本发明并不限于这个特定环境,并且可以应用于其它传输加密编码帧集合的框架中。
存在多种将所传输的数字服务分离为不同组件的方法;这些组件借助于客户端特定流予以传输。例如,可以使用增量编码器,增量编码器对服务或者后者的组件(例如视频)以小带宽“第一”流(又称基本流)以及补充流的形式进行编码。在级别降低了的传输模式下,基本流一般足以实现服务的还原。基本流始终可以独立地进行解码。就视频而言,该基本服务可以包含低分辨率版本的视频。对于音频来说也是一样的。补充流发送基本流中缺失的信息,使得能够以非降级模式恢复服务。补充流仅可以与较低的流一起进行解码。
图1中示出了这样的服务,或者至少其视频组件。完整视频1被分解为第一基本流1.1以及可伸缩增强层,可伸缩增强层包括两个被标记为1.2和1.3的补充流。基本流使得可以将视频以第一低分辨率进行复原。基本流以及补充流1的解码使得可以将视频恢复至中间分辨率。三个流的解码使得可以以完整视频的最佳分辨率来恢复完整视频。
实际上,补充流编码是可伸缩的,反之基本流编码一般是不可伸缩的。在加密方面,一个密钥足以对基本层进行加密并且不需要针对基本流的密钥管理方案。需要几个密钥以对补充流进行加密,并且通常需要密钥管理方案。图2示出了可伸缩编码补充流的加密。实施例提出了一种方案,该方案允许将可伸缩的编码补充流2.1加密为加密补充流2.2,其中这些经加密的流保持可伸缩性。对明码视频部分2.1应用加密2.3以提供加密视频部分。
MPEG-4 FGS编码定义于MPEG4-第2部分ISO/IEC 14496-2:2003标准。在FGS中,数据流被编码以及压缩为两层:基本层(非可伸缩部分)以及增强层(可伸缩部分)。如果仅对基本层进行解码,这将导致原始内容的低质量版本。尽管如此,如果对增强层的部分进行解码并且将其与基本层组合,这将生成改善质量的内容,所改善的质量与经解码的增强部分成正比。此外,增强层同时支持PSNR以及时间可伸缩性。图3是示出了这样的服务的框图,其中完整视频被分解成图中未示出的基本层以及可伸缩增强层3.2,可伸缩增强层3.2基于两个可伸 缩性(PSNR 3.3以及比特率3.4)包括多个补充流。每个增强层被独立地划分为T个PSNR级别以及M个比特率级别。那么增强层由M*T个不同的片段(或者补充流)构成。在图3中,T=3,M=5,并且每个片段Sm,t位于一个PSNR级别和一个比特率级别的交叉位置,其中m属于{1,...,M},t属于{1,...,T}。
MPEG-4FGS内容质量可以同时依赖于时间可伸缩性比特率以及PSNR可伸缩性。针对所请求的质量,内容提供方可以仅使用比特率,仅使用PSNR层而针对比特率保持相同级别,或者通过同时使用PSNR以及比特率层来允许对特定级别层进行访问。所以,存在可以获得相同内容质量的三种模式。图4示出这点,其中图4示出了与图3中所示的框图类型相同的框图类型。在4.1中,仅使用了比特率可伸缩性而针对PSNR保持相同级别。在4.2中,仅使用了PSNR可伸缩性而针对比特率保持相同级别。在4.3中,同时使用了两种可伸缩性。对两种可伸缩性的使用允许仅向用户提供对于行或者列中的一些片段的访问,而不需要允许对行或者列中的全部片段进行访问。实际上,内容提供方可以向消费者提供对片段S1,1、S2,1、S3,1、S1,2、S2,2、S3,2的访问,同时保持使消费者无法访问例如S4,1、S5,1、S4,2、S5,2。在4.1和4.2中,当仅使用一种类型的可伸缩性,如果消费者有权访问给定质量类型的层中的一个片段,那么他有权访问该层中全部片段。在4.1中,消费者有权访问第2级别的比特率,因此如4.1.1所示有权访问在比特率为第2级别以及第2级别以下的层中的任意片段。在4.2中,消费者有权访问第2级别的PSNR,因此如4.2.1所示有权访问在PSNR为第2级别以及第2级别以下的层中的任意片段。
实施例的加密方案允许使用这三种模式来访问经加密的增强层。该加密方案允许以加密片段维持可伸缩性。为了能够使用可伸缩性,不需要对增强层的任意片段进行解密。此时,密钥管理是灵活的,并且可以用经加密的内容完全利用MPEG4 FGS的可伸缩性。所有可伸缩性类型可以同时或者单独使用。
可伸缩多层FGS加密分层访问控制方案(记为SMLFE)针对MPEG-4 FGS编码支持PSNR以及比特率可伸缩性。SMLFE定义于文献 C.Yuan,B.B.Zhu,M.Su,X.Wang,S.Li,以及Y.Zhong的“Layered AccessControl for MPEG-4 FGS Video”,IEEE国际会议,图像处理,巴塞罗那,西班牙,2003年9月,Vol.1,pp.517-520中。在SMLFE中,增强层被加密为单个流,其中多个质量级别是依照于PSNR以及比特率值划分的。较低质量级别可以被相同可伸缩性类型的较高质量级别所访问以及重用,但是反之则不行。两种不同可伸缩性类型的保护是正交的,即,对一个可伸缩类型的级别进行访问的权利并不能使得可以对其它可伸缩性类型的级别进行访问。
图3的每个片段用相应片段密钥Km,t(图中未示出)进行加密。在这样的情况下,随机生成M*T个密钥使得视频的发射机对全部片段进行加密。为了访问MPEG-4 FGS的压缩内容,不得不对这些密钥进行管理,并将它们发送至视频的接收机。
下面描述根据实施例的对片段加密和解密的方法以及生成加密密钥的方法。在服务器或者发射机处执行编码和加密。在客户端或者视频的接收机处执行解码以及解密。
如SMLFE的环境中那样,增强层由M*T个不同的片段构成。使用每个不同的密钥Km,t以对片段Sm,t进行加密,其中m属于{1,...,M}并且t属于{1,...,T}。SM,T是针对两种可伸缩类型的较高质量的片段。
在服务器中,首先随机生成密钥。该密钥对应于最高质量片段SM,T的密钥KM,T。该密钥被分成两半,左侧以及右侧。因此,与较低PSNR质量片段相关联的密钥是通过将密钥KM,T的左侧与密钥KM,T右侧的单向置换结果相连接来获得的。并且与较低比特率质量片段相关联的密钥是通过将左侧密钥KM,T的单向置换结果与右侧密钥KM,T相连接来获得的。以相同的方法重复执行该过程,直到计算出最低质量片段S1,1的加密密钥K1,1,从而获得全部密钥Km,t,其中m=1,...,M并且t=1,...,T。
明确地,令h代表单向置换。给定密钥K,hn(K)代表对K应用了n次单向置换h的结果。令Km,t表示增强层中的给定片段Sm,t的加密密钥,该密钥由下列过程生成:
-随机地生成KM,T=(LKM,T||RKM,T),其中LKM,T代表左侧密钥值, RKM,T代表右侧密钥值,符号||代表连接。
-计算差M-m=x,以及T-t=y。
-使用下列密钥生成公式来产生密钥Km,t:
Km,t=(hx(LKM,T)||hy(RKM,T))
在实施例中,密钥Km,t为128比特长,且hx(LKM,T)以及hy(RKM,T)为64比特长。
为了避免针对不同的片段具有相同的片段密钥,KM,T的右半部分的值应该与左半部分的值不同。否则就需要重新生成密钥KM,T直到得到合适的密钥。
回到图3中所示的片段,S5,3是同时针对PSNR以及比特率可伸缩性的最高质量的片段。
首先,随机地生成相关联的片段密钥K5,3。
其次,将该密钥划分为两半K5,3=(LK5,3||RK5,3),并且使用单向置换h对其进行处理,以获得全部其它密钥。
表1示出了如何用上面定义的密钥生成公式获得全部其它片段密钥。
级 别 |
t=1 |
t=2 |
t=3 |
m= 1 |
K1,1= (h4(LK5,3)||h2(RK5,3)) |
K1,2= (h4(LK5,3)||h(RK5,3)) |
K1,3= (h4(LK5,3)||RK5,3) |
m= 2 |
K2,1= (h3(LK5,3)||h2(RK5,3)) |
K2,2= (h3(LK5,3)||h(RK5,3)) |
K2,3= (h3(LK5,3)||RK5,3) |
m= 3 |
K3,1= (h2(LK5,3)|h2(RK5,3)) |
K3,2= (h2(LK5,3)||h(RK5,3)) |
K3,3= (h2(LK5,3)||RK5,3) |
m= 4 |
K4,1= (h(LK5,3)||h2(RK5,3)) |
K4,2= (h(LK5,3)||h(RK5,3)) |
K4,3= (h(LK5,3)||RK5,3) |
m= 5 |
K5,1= (LK5,3||h2(RK5,3)) |
K5,2= (LK5,3||h(RK5,3)) |
K5,3= (LK5,3||RK5,3) |
表1
当接收机获得了对于具有特定质量的内容的权利时,发射机计算与所请求质量的最高质量片段相关联的密钥并且将其发送至接收机。 假定该最高质量片段是具有与其相关联的密钥K3,2的S3,2。差M-m=5-3以及T-t=3-2分别等于2和1。片段密钥K3,2=(h2(LK5,3)||h(RK5,3))是由发射机使用上述定义的密钥生成公式以及单向置换算法根据K5,3计算得出的片段密钥。K3,2被发送至接收机。在接收机处,可访问片段是图3中3.1所示的S3,2、S3,1、S2,2、S2,1、S1,2以及S1,1。即,如果最高质量片段是Sm,t,则可访问片段是Su,v,其中1≤u≤m并且1≤v≤t。
接收机接收到K3,2并且K3,2被分为两半LK3,2以及RK3,2。然后,通过对LK3,2以及RK3,2进行散列以及连接获得片段密钥K3,1、K2,2、K2,1、K1,2以及K1,1。这可以通过使用与发射机所用的单向置换算法相同的单向置换算法来完成。重复执行该过程直到计算出所有片段密钥位置。根据K3,2获得的计算出的密钥如表2所示。
级别 |
t=1 |
t=2 |
m=1 |
K1,1= (h(LK2,2)||h(RK2,2))= (h2(LK3,2)||h(RK3,2)) |
K1,2= (h(LK2,2)||RK2,2)= (h2(LK3,2)||h(RK3,2)) |
m=2 |
K2,1= (h(LK3,2)||h(RK3,2)) |
K2,2= (h(LK3,2)||RK3,2) |
m=3 |
K3,1= (LK3,2||h(RK3,2)) |
K3,2 |
表2
通过分别对片段密钥的右侧或者左侧进行散列,访问一质量级别的权利还提供了访问针对不同PSNR或者比特率可伸缩性的低质量级别的权利。由于散列函数的单向标准,以及散列函数并非单射的事实,较高质量级别是不可访问的。如果最高质量片段是Sm,t,则片段Su,v,其中m<u或者t<v不可访问。密钥管理方案的安全性基本上依赖于散列函数的选择以及健壮性。
图5中总结了用于加密以及解密的方法。
步骤S1。服务器生成随机密钥以及根据随机密钥生成的后续密钥。
步骤S2。接收机发送接收某质量级别的内容的请求。服务器接收该请求并且推断出最高质量的匹配片段。
步骤S3。服务器向接收机发送与最高质量的匹配片段相对应的密钥。
步骤S4。接收机接收到该密钥,并且生成对应于可访问片段的密钥。
如上所述,对每侧使用唯一的单向置换函数。取而代之地,可以针对右侧以及左侧使用不同的单向置换。则用h1以及h2函数表示,密钥生成的公式将是:Km,t=(h1x(LKM,T)||h2y(RKM,T))。
在实施例中,KM,T是用LKM,T以及RKM,T连接起来得到的,其中LKM,T代表左侧密钥值,RKM,T代表右侧密钥值。可选地,LKM,T可以代表KM,T的偶数比特位并且RKM,T代表KM,T的奇数比特位。
单向置换是沿一个方向计算比沿相反方向计算容易得多的函数;即,如果输出是通过对输入进行单向置换得到的,那么不容易根据给定的输出得到输入。例如,可以用几秒钟沿前向计算该函数,但是计算其反向则可能要花费数月或者数年(如果可以计算的话)。可以使用多种单向置换算法:
-本领域所熟知的散列函数,诸如MD5、RIPEMD-160或者SHA1。
-本领域所熟知的伪随机数发生器(记为PRNG),诸如马其赛特旋转(Mersenne Twister)、ISAAC等。将片段密钥,或者片段密钥的一部分,用作PRNG的种子,h(K)=PRNG(K)。可以将输出截断以适应预定义的尺寸。
-对称密码:块密码或者流密码,诸如DES或者RC4。对称密码需要两个输入(消息以及密钥),但是当用作单向置换时,两个输入可以是相同的。在本发明中,当对片段密钥K应用对称密码时,K被同时作为所要加密的消息以及用于加密的密钥二者来使用。在该情况下h(K)=E{K}(K)。
-离散对数或者公钥加密算法RSA:
-关于离散对数,选择乘法群Z*p的生成元g,其中p是一个大素数。通过用较高质量片段密钥的值对g求幂然后(模p)获得与较低质量片段相关联的片段密钥。在该情况下h(K)=gK mod p。
-关于RSA,生成公共值(e,n),其中n是两个素数的乘积并且e 是公共指数(私钥被丢弃)。通过对较高质量片段密钥K用公共指数e求幂(模n)来获得与较低质量片段相关联的片段密钥。在该情况下h(K)=Ke mod n。
置换所需要的属性仅仅是单向标准。例如,对于MD5,可能存在一些冲突,该现象不会对安全性造成任何后果。
实施例涉及同时支持PSNR以及比特率可伸缩性的增强层。实际上,其适用于多于两个的可伸缩性。当有N个可伸缩性时,被传输的密钥KM,T被分为N部分,并且对每个部分连续地使用单向置换以生成后续的密钥。
图6示出了本实施例的系统,包括:服务器5.1(也称作发送器)、通过网络5.3连接至服务器的客户端5.2(也称作接收机)。服务器向客户端发送加密的视频内容。例如,网络是因特网。服务器是视频的发射机。客户端是视频的接收机。
服务器包括用于对流进行压缩并生成根据实施例的基本层和后续增强层的装置5.1.5。还包括用于生成根据实施例的加密密钥和对片段进行加密的加密装置5.1.2。包括用于通过网络向客户端发送流的通信装置5.1.3。服务器包括处理装置5.1.1以及用于存储运行压缩算法和加密算法的程序的存储装置5.1.4。服务器包括用于在内部传输数据的内部总线5.1.6。
客户端包括用于对流进行解压缩的解压缩装置5.2.5。其包括用于生成根据实施例的加密密钥以及对加密的片段进行解密的解密装置5.2.2。其包括用于通过网络从服务器接收流的通信装置5.2.3。客户端包括处理装置5.2.1以及用于存储运行解压缩算法和解密算法的程序的存储装置5.2.4。客户端包括用于在内部传输数据的内部总线5.2.6。