用于可缩放代码流的安全密钥管理的制作方法

文档序号:7638612阅读:125来源:国知局
专利名称:用于可缩放代码流的安全密钥管理的制作方法
用于可縮放代码流的安全密钥管理些且 NT豕人们使用多种不同类型的数字设备来通过因特网和其它网络访问服务。如广 泛理解的,这些服务中的多个服务,从新闻服务到在线购物和娱乐,都大量利用了 照片以及其它图像、视频和音频。

图1示出了可用于经由因特网114访问服务器110和112上维护的服务和内 容的多种不同的数字设备102-108。台式计算机102具有较大的高分辨率显示器 122,由此,其用户可能希望以其最高的分辨率显示图像或视频来利用显示器122 的能力。另一方面,便携式计算机104的便携式显示器124可能无法提供可与台式 计算机102的高分辨率显示122相比的分辨率。或者,即使便携式显示器124支持 高分辨率图形,便携式计算机104也可使用共享的系统存储器来进行图形支持,且 其用户可能不原意分配系统存储器来支持高分辨率图形。 )除了台式计算机102和便携式计算机104之外,还使用手持式设备来访问因 特网或其它多媒体服务。例如,个人数字助理106包括触摸屏显示器126,其每一 边为几英寸,并用于以对台式计算机102和便携式计算机104可用的分辨率的一部 分来显示小图像或视频帧。甚至诸如无线电话108等较小的设备也包括可用于访问 因特网或其它多媒体服务并向用户呈现非常小的图像和其它多媒体内容的电话显 示屏128。访问服务器110和112上的内容的设备102-108范围对内容提供者造成了问 题。更具体地,由于设备102-108分别使用的显示器122-128的范围,内容提供者 必须使得多媒体内容以不同的格式可用。例如,必须使高分辨率图像或高清晰度视 频对具有高分辨率显示器122的用户可用。另一方面,必须使具有高分辨率图像或高清晰度视频的分辨率或色彩粒度的一小部分的浓縮图像或视频对具有诸如个人 数字助理106和无线电话108等分别具有较低处理能力和较低分辨率显示器126 和128的设备的用户可用。为访问适当格式的多媒体内容,用户手动指定诸如分辨 率和质量等所需参数。或者,服务器110-112可轮询设备102-108以确定设备 102-108中的每一个可支持什么类型的图形、视频或音频数据,来确定向设备102-108发送什么格式的多媒体内容。服务器110-112必须维护并选择性地传送多种不同多媒体格式的问题由可縮 放多媒体格式来解决。例如,联合图片专家组2000 ( "JPEG 2000")格式指定了 可对多种不同访问类型中的每一种缩放的图像代码流,这些类型包括小块、分辨率、 层、色彩分量以及范围。该代码流可在这些访问类型中的每一种内的多个级别上縮 放。单个代码流可由不同设备访问,以呈现适用于每一设备被配置成所支持的每一 访问类型的各个等级。由此, 一个多媒体代码流可被储存并提供给支持可縮放代码 流的任何设备。尽管使用可縮放代码流消除了对特定多媒体内容维护多个代码流的需求,但 是控制对可縮放代码流的访问涉及复杂的密钥管理。当维护多个不同的多媒体代码 流时,对每一特定代码流生成一密钥,并将其发放给被授权访问该多媒体的用户。 用于解密数据分组的内容加密密钥可使用已知的方法从该密钥中导出,从而允许用 户访问经加密的多媒体。使用可縮放代码流,生成并可提供适当的密钥可能更成问题。必须向对某一 特定访问级别授权的用户发放多个密钥以提供用于该用户被授权的访问级别、以及 被包含在用户的授权访问级别中的较低等级的访问级别的密钥。图2A-2F是示出JPEG 2000代码流的特性的一系列框图。图2A示出了当用户 查看时的图像200:图像200由元素202的阵列构成。然而,可缩放代码流的实际 结构并不是如此简单地组织的。图2B是不同大小的数据块212的阵列210,它表示了不同分辨率级别是如何 在代码流中表示的。根据离散小波变换,访问不同的分辨率等级涉及访问代码流中 不同的数据块212。如图2C所示,为访问最低的所支持的分辨率级别,仅访问阵 列220的第一数据块222。如图2D所示,为访问下一最高分辨率级别,访问数据 块222和一系列毗邻的第二数据块232。如图2E所示,为访问下一最高分辨率级 别,必须访问第一数据块222、第二数据块232以及一系列毗邻的第三数据块242 全部。访问毗邻的各组数据块,直到达到最高可用图像分辨率。由此,呈现较高的 分辨率级别时使用的数据块包含了呈现较低分辨率级别时使用的数据。对于被授权来以最高分辨率查看图像的用户,必须向该用户提供从中可解密 与最高分辨率级别相关联的数据块的密钥,以及从中可解密与较低分辨率级别相关 联的所有数据块的密钥。或者,使用分层密钥系统,可向用户给予从中可导出对各 较低访问级别的密钥的一个密钥。不幸的是,并非可縮放代码流中的所有访问类型都具有使它们适用于分层密 钥系统的分层结构。例如,允许用户访问图像的一个或多个部分的小块访问不涉及分层地访问数据的包含部分。如图2F所示,阵列250示出了数据块252-258中用 于以高分辨率呈现图像的一部分的各部分。为呈现图像的所选部分,必须访问表示 不同分辨率级别的数据块252-258的各部分全部。由于要使用的数据不遵循分层结 构,因此必须生成、维护并分发多个密钥以选择性地控制对图像内的不同分辨率的 访问。概述执行密钥管理来生成允许解码可縮放代码流内的多个访问类型的所有授权级 别的单个密钥。从表示访问类型的集合中导出一访问节点集,该节点集具有可由诸 如分辨率和层级别等全序集表示的分层结构,以及可由诸如小块和范围等偏序集表示的分层结构。所导出的访问节点集是表示包括在代码流中的访问类型的级别的各 组合的偏序集。向该访问节点集应用一分层密钥管理系统以向每一访问节点分配一 密钥、生成内容加密密钥、并加密该代码流。接收该代码流、访问节点集和其它公 共信息的客户机使用密钥来导出解密代码流中的可访问数据的附加密钥。生成包括用于每一访问节点的密钥的密钥集,使得密钥可用于表示可用的不 同级别访问组合的每一访问节点。诸如组DiffieHellman密钥交换协议等分层密钥 方案生成保护该代码流的密钥,并仅以单个密钥来允许对授权的访问级别和所包括 的较低访问级别的访问。附图简述参考附图描述该详细描述。在附图中,参考标号的最左边数字标识了该参考 标号首次出现的图。在不同附图中使用相同的参考标号来指示相似或相同的项。图1 (现有技术)是其中使用具有不同显示能力的不同设备来访问同一服务器 上的内容的网络。图2A-2F (现有技术)示出了在以不同访问类型的不同级别呈现图像内容时使 用的数据块。图3A-3C是表示包括在可縮放代码流中的不同访问类型的可能的不同级别的 哈斯(Hasse)图。图3D-3F是被縮减来移除每一所描绘的访问类型内的不可用级别的图3A-3C的哈斯图。图4A-4B是表示从图3D-3F的哈斯图导出的访问类型级别的组合的哈斯图。 图5是示出生成访问节点并加密可縮放代码流的模式的流程图。 图6是示出加密可縮放代码流并生成用于解码该代码流的一组密钥的模式的 流程图。图7是示出使用一组访问节点和单个密钥来解码经加密的可縮放代码流的模 式的流程图。图8是适用于加密和解码代码流的计算系统环境的功能图。 图9是包括在分发用于控制对己编码可縮放代码流的访问的访问节点和密钥 时使用的服务器和客户机的系统的功能框图。详细描述使用偏序集来表示访问级别的组合如先前结合图2A-2E所描述的,可縮放代码流内的某些访问类型的较高等级的级别包含了其它级别。例如,在JPEG 2000可縮放代码流中,分辨率访问、层访问和色彩分量访问的较高等级的级别都包括了较低的级别。由于这些访问类型内的 每一较低等级都被包括在接连着的较高等级内,因此这些访问类型内的等级是可由全序集来表示的全序分层结构。相反,诸如小块访问或范围访问等访问类型不是完全包括小块访问或范围访 问的其它级别。换言之,表示代码流中的一个小块的数据不包括或依赖于表示该代 码流中的另一小块的数据,尽管一组小块可包括表示两个小块的数据。因此,诸如 按小块访问和按范围访问类型等访问类型被组织为各个块的不同组合。这些访问类 型内的级别构成可由偏序集表示的偏序分层结构。在数学上,偏序集可由标志(尸,S)来表示,其中尸是有限集,^是二元关系。 在a和b都是尸的成员,且a^b的情况下,成员a的所有组成部分都是成员b的所 有组成部分,但是子集b的所有组成部分并非都是子集a的组成部分。由此,如果 a和b表示对代码流内的小块的访问,则能够访问小块b的用户也能够访问小块a, 但是能够访问小块a的用户不能给予用户对小块b的访问。用偏序集来表示诸如小块访问和范围访问等访问类型在对可縮放代码流的加 密和密钥生成中是有用的。例如,如果子集a表示与可縮放访问类型内的一个级别 相关联的数据分组,而子集b表示同一可縮放访问类型内的较高等级的级别,则允许访问子集b的密钥将允许访问子集a。由此,通过提供对子集b的单个密钥,可 生成用于解码所有包括的级别的密钥。图3A-3C是表示可縮放代码流内的三个不同访问类型的级别的哈斯图。在该 哈斯图中,每一顶点表示访问类型的一个访问级别。在顶点之间延伸的每一条线是 表示较高访问级别或顶点的相对于较低访问级别或顶点的包括性访问优先级的边。图3A是针对分辨率的哈斯图300,它包括空级别0302和两个分辨率级别r0 304和n 306。如上所述,分辨率级别构成了全序分层结构,且因此,可被表示为 一全序集。换言之,包括在由分辨率级别r。304表示的分辨率数据的子集内的数据 被包含在分辨率数据^ 306的子集内。另一方面,包括在分辨率级别q 306内的所 有数据并不都包括在分辨率级别r。 304内。类似于图3A,图3B是针对层访问级别的哈斯图,它包括空级别0312和两 个层级别lo314和h316。同样,空级别0312是图3B中的最低级别。层级别也表 示可被表示为全序集的全序分层结构。与分辨率访问级别和层访问级别的全序分层结构形成对比,小块访问级别是 可被表示为偏序集的偏序分层结构,如图3C所示。图3C是针对构成图像的一行 的一部分的一组三个相邻的小块tQ、 h和t2的示例的哈斯图320。在空级别0322 上,哈斯图300包括针对to 324、 ^ 326和t2 328中的每一个的三个顶点。在下一 较高级别上,哈斯图320包括表示两组小块的可能组合,包括to,t!330、 to,t2 332 和th t2 334的顶点。在顶部级别上,哈斯图320包括表示三个小块tc, th t2 336的组 合的顶点。可以理解,在哈斯图300和310中,没有一个组合如哈斯图320中那样表示。 在哈斯图300和310中表示的访问类型,即分辨率访问和层访问中,所表示的访问 类型具有全序分层结构,其中表示较高等级的子集的每一较高等级的顶点包括较低 的元素子集的所有元素。哈斯图300、 310和320可被縮减以消除对某些可缩放代码流不必要的等级。 尽管某些可縮放代码流可对一个或多个访问类型利用空级别,但是JPEG 2000代码 流不在其可縮放访问类别的任一个内包括任何空级别。由此,为访问JPEG 2000 代码流,必须指定访问级别,并将其授予分辨率访问、层访问、小块访问和其它访 问类型(未示出)的至少一个非空级别。由此,在图3A-3C所示的JPEG 2000代码流的示例中,空级别0302、 0312 和0322,即分别为哈斯图300、 310和320中的最低级别,不表示其各自的访问类型的可访问级别,并且可被省略。类似地,将0顶点302、 312和322连接到其 它顶点的边可被省略。在图3A、 3B和3C的哈斯图300、 310和320中省略多于 的顶点分别产生了图3D、 3E和3F的哈斯图340、 350和360。另外,偏序集及其各自的表示具有偏序分层结构的访问类型的哈斯图可被进 一步縮减以消除可能从不被用户访问的不必要的组合。哈斯图320是对于一行中的 三个连续的小块to、 t。 t2的小块访问的偏序集的分层表示。对不连续的小块的组 合to和t2授予访问在某些应用中是不必要的。由此,表示这一组合的顶点332在这 些应用中也可从图3F的哈斯图360中消除。为表示对可缩放代码流的访问级别,组合表示每一访问类型的级别的全序集和偏序集。在数学上,全序集和偏序集通过计算每一集合内的元素的乘积来组合。可縮放访问控制的偏序集(尸,S)仅仅是所有可縮放类型的全序集和偏序集(尸,,S)的乘积,如由公式l所表示的(P,S) = x(i%^ (1)所得的偏序集中的顶点数目等于每一可縮放类型中的顶点数目的乘积,由公式2表不i汁n,i尸'.i (2)如公式2中所使用的,运算符IZI表示集合Z的势。乘积的哈斯图中的边的数目 由公式3给出(3)在公式3中,e,.是第/个可縮放类型的哈斯图中的边数。所得的偏序集的示例性部分分别由图4A和4B的哈斯图400和450来表示。 图4A示出了哈斯图400,它表示哈斯图340 (图3D)和350 (图3F)的组合,由 此表示了分辨率访问和小块访问的可能的级别组合。哈斯图400包括哈斯图360 的两次迭代,以表示对于两种不同分辨率访问级别的每一小块访问级别。对应的顶 点由边连接以表示分辨率级别ro和n之间的分层关系。可以理解,包括在哈斯图 400中的哈斯图360的迭代被偏移而非垂直对齐,以更好地提示所表示的组合的维 数。例如,顶点402表示对分辨率级别ro和小块访问级别to、 t,、 t2的级别组合。 顶点404表示对分辨率级别^和小块访问级别to、 t2的级别组合。边406在顶 点402和404之间绘出,以表示对由顶点404表示的级别组合的访问包括对由顶点402表示的级别的访问,以及对较低访问级别的所有组合的访问。由此,能够以最高分辨率n访问所有小块的用户也能够以较低分辨率访问所有小块。取另一示例,顶点408表示对分辨率级别ro和小块访问级别to和h的级别组 合。对这一级别组合的访问也包括了对表示对于分辨率级别ro和小块访问级别t0 的较低等级的级别组合的顶点410、以及表示对于分辨率级别ro和小块访问级别^ 的级别组合的顶点412的访问。然而,对顶点406的访问不允许访问包括对小块t2 的附加小块访问的级别组合402,也不允许访问包括对较高分辨率级别n的顶点 414。图4B示出了哈斯图450,它表示哈斯图350 (图3E)以及哈斯图340 (图3D) 和360 (图3F)的组合,由此表示了对于层访问、分辨率访问和小块访问的可能 的级别组合。为视觉上清楚起见,由最多顶点表示的级别组合的标签被省略,然而 例如标出了少数几个顶点。例如,哈斯图450包括顶点452,它表示对小块to、 ti和t2的层级别l(j、分辨 率级别ro和小块访问的组合。哈斯图450还包括顶点454,它表示对小块to、 tj口 t2的层级别l()、分辨率级别n和小块访问的组合。对由顶点454表示的级别(包括 较高分辨率级别)的访问包括对所有较低级别组合(包括由顶点452表示的级别组 合)以及在顶点452和454两者下方的所有顶点的访问。另一方面,被授权访问由 顶点454表示的级别组合的用户不能访问由顶点456表示的级别组合,因为用户没 有被授权访问层级别h,顶点456表示h与对小块to、 tt和t2的分辨率级别ro和小 块访问的级别组合。哈斯图4A和4B中可视地表示的级别组合表示了对于所示的访问类型的访问 节点集。该访问节点集包括表示代码流内可向用户提供对于其的访问的可用访问级 别组合中的每一个的访问节点。使用访问节点的偏序集和分层密钥方案,生成提供对由每一访问节点表示的 级别组合的访问的一组密钥。此外,与每一访问节点相关联的密钥提供了对与访问 节点相关联的所有较低等级的级别组合的访问。由此,通过向用户提供访问节点集、 对应于表示一特定级别组合的访问节点的单个密钥、以及某些相关公共信息,用户 能够导出用于所有较低等级的、包括在内的访问级别的密钥。无需向用户提供其它 密钥来导出用于较低等级的级别组合的密钥,如以下将进一步描述的。生成访问节点集和对应的密钥集图5是示出用于表示可縮放代码流中的访问类型的级别组合以及将密钥与每 一组合相关联的逻辑步骤的流程图500。这些组合由一组访问节点来表示,并且一 密钥与每一访问节点相关联。每一密钥允许用户在用户被授权的每一访问类型的级别以及所有较低等级的级别组合下访问代码流。流程图500在框502处开始。在框504处,从包括在可缩放代码流中的访问 类型中选择要表示的下一访问类型。在判别框506处,确定访问类型是否是包括可 用全序集来表示的全序分层结构的全序访问类型。例如,如上所述,在JPEG 2000 可縮放代码流中,对于分辨率、层和色彩分量的访问类型是全序分层结构。如果在 框506处确定访问类型是全序分层结构,则在框508处,创建一全序集来表示对于 该访问类型的可用级别。另一方面,如果在判别框506处确定该访问类型不是全序分层结构,则该访 问类型必然表示一偏序分层结构。如上在JPEG 2000可縮放代码流的示例中所述 的,对于小块访问和范围访问的访问类型是偏序分层结构。在框510处,创建一偏 序集来表示该访问类型的可用级别。在判别框512处,确定是否已表示了代码流中的所有访问类型。如果没有, 则流程图500循环到框504以选择要表示的下一访问类型。然而, 一旦在判别框 512处确定已表示了所有访问类型,则在框514处,组合表示每一访问类型的所有 全序集和偏序集以创建多个有序的访问节点集。使用该访问节点集,在框516处, 生成包括用于每一访问节点的密钥的密钥集,并在框518处加密该代码流,如以下 对于图6进一步描述的。 一旦在框518处完成加密,流程图500在框520处结束。根据流程图500的级别组合和密钥关联的模式,对每一代码流执行一次内容 加密和密钥生成。该密钥集包括用于该代码流内可用的每一级别组合的可用密钥。 由此,可縮放代码流的数字权限管理一般是静态过程,不必重复该过程来允许授权 并为对动态级别组合的请求生成密钥。访问节点集和密钥集被储存在授权或许可证 服务器上,以便在接收到支付或满足其它条件之后分发密钥。用于将密钥分配给访问节点的分层密钥生成方案图6是表示为访问节点生成密钥的模式的流程图600。流程图600在框602 处开始。在框604处,从访问节点集中标识一个或多个根节点。如先前在图4A和 4B中所示的, 一个或多个根节点表示与每一访问类型的最高访问级别的组合相关 联的访问节点。在框606处,对每一根节点,生成一随机数并分配该数作为其密钥。在一种密钥生成模式中,选择一适当的质数; ,并选择"eZ;中的生成元",其中 "根据公式4来定义oreZ;, 2S"p-2 (4)在框608处,标识下一子节点。从根节点开始,子节点表示按等级的降序的 下一访问节点。在框608处,如上所述生成一随机数并将其分配给该子节点。在框 610处,如上结合公式2所述地生成一随机数,并将其分配给该子节点。在框612 处,标识该子节点的父节点。每一子节点的父节点是这样的访问节点对于该访问 节点,对访问类型之一的访问级别要高一个级别。例如,回头参考图4A的哈斯图 400,与访问级别r。, (t。, t!)相关联的顶点408是与访问级别r。, (t。, th t》相关联的顶 点402以及与访问级别r1; (to, t0相关联的顶点414的子节点。由此,顶点402和414 是顶点408的父节点,因为顶点402和414各自表示比顶点408所表示的访问级别 高一的对一种访问类型的一种访问级别。在框614处,使用在框610处分配给子节点的随机数以及在框612处标识的 父节点的密钥的值来计算子节点的密钥。在一种密钥生成模式中,使用组Diffie Hdlman密钥交换协定来计算每一子密钥。对于每一子节点i,每一子密钥ki基于 分配给该子节点的随机数ri,并且Ri是对子节点i的所有父节点的密钥的乘积,如 由公式5所定义的《U (5)每一子密钥ki使用公式6来计算 '= mod/ (6)在判别框616处,确定是否已对访问节点集中的所有访问节点分配了密钥, 包括根节点和所有子节点。如果没有,则流程图600循环到框608以标识下一子节 点。 一旦在判别框616处确定已分配了所有子节点,则在框618处,将所生成的密 钥储存在与该访问节点集相对应的密钥集中。对于储存在密钥集中的每一密钥,当 接收到对代码流中的每一访问类型的各种级别组合的访问的请求时,可从该密钥集 中取出适当的密钥而无需生成另外的密钥或执行任何其它计算。一旦导出并储存了密钥,在框620处,导出与每一访问节点相关联的每一数 据分组的内容加密密钥。在一种加密和密钥生成模式中,根据密码散列函数来散列 相关联的访问节点的密钥。该散列函数生成期望大小的内容加密密钥。在框622 处,使用该内容加密密钥来加密该代码流中的数据分组。在框624处,将经加密的内容与将用于导出用于解密该代码流的密钥的公共信息一起储存。根据一种密钥生成模式,偏序访问节点集、质数; 、"、以及对每一子节点,公式7的值("淨modp〉 (7) 在公式7中,ri是与每一节点i相关联的随机数,Ri是父节点的密钥的乘积, 而k是节点i的父节点的密钥。经加密的内容可被储存在服务器上以允许用户下载 经加密的代码流。流程图600在框626处结束。访问使用访问节点集和单个密钥编码的代码流图7是示出访问根据流程图500 (图5)和600 (图6)编码的代码流的模式 的流程图700。流程图700在框702处开始。在框704处,标识指定代码流中的每 一可縮放访问类型的期望级别的级别组合。更具体地,通过因特网或使用另一接入 方式将级别组合指定到服务器。在框706处,保护对在期望级别组合下访问代码流 的授权的安全。在框708处,接收代码流和用于该代码流的访问节点集。在一种编 码经加密的代码流的模式中,访问节点集被包括在代码流的指定部分中。在框712处,接收与表示期望级别组合的访问节点相关联的单个密钥。在框 714处,使用该密钥和访问节点集,导出用于较低等级的访问级别的密钥。例如, 使用组DiffieHdlman密钥交换,使用访问节点、密钥和相关的公共信息,可导出 用于数据分组的内容加密密钥。在框716处,解码该代码流。流程图700在框700 处结束。用于实现示例性实施例的计算系统图8示出了用于实现可縮放密钥管理系统的实施例的示例性计算系统800。计 算系统800仅为合适的操作环境的一个示例,并非对先前描述的密钥管理过程的示 例性实施例或其它实施例的使用范围或功能提出任何局限。也不应将计算系统800 解释为对示例性计算系统800中示出的任一组件或其组合具有任何依赖性或需求。该密钥管理过程和相关联的加密及解密过程可在诸如程序模块等在计算系统 800上执行的计算机可执行指令的一般上下文中描述。 一般而言,程序模块包括执 行特定任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等等。 此外,本领域的技术人员可以理解,该密钥管理过程可以用各种计算机系统配置来 实施,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子设备、小 型机、大型计算机机等等。该密钥管理过程也可以在其中任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实践。在分布式计算环境中,程序模块 可以位于包括存储器存储设备的本地和远程计算机存储介质中。
参考图8,用于实现该密钥管理过程的示例性计算系统800包括计算机810, 它包括处理单元820、系统存储器830以及将包括系统存储器830的各类系统组件 耦合至处理单元820的系统总线821。
计算机810通常包括各种计算机可读介质。作为示例而非局限,计算机可读 介质可包括计算机存储介质和通信介质。计算机存储介质的示例包括但不限于,随 机存取存储器(RAM);只读存储器(ROM);电可擦除可编程只读存储器 (EEPROM);闪存或其它存储器技术;CD-ROM、数字多功能盘(DVD)或其 它光盘存储或全息盘存储;磁带盒、磁带、磁盘存储或其它磁存储设备;或可以用 来储存所期望的信息并可由计算机810访问的任一其它介质。系统存储器830包括 易失性和/或非易失性存储器形式的计算机存储介质,如ROM 831和RAM 832。 基本输入/输出系统833 (BIOS)包括帮助在计算机810内的元件之间传输信息(如 在启动时)的基本例程,它通常储存在ROM831中。RAM 832通常包含处理单元 820立即可访问和/或当前正在操作的数据和/或程序模块。作为示例而非局限,图 8示出了操作系统834、应用程序835、其它程序模块836和程序数据837。
计算机810也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。 仅作示例,图8示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器841, 对可移动、非易失性磁盘852进行读写的磁盘驱动器851,以及对可移动、非易失 性光盘856,如CDROM或其它光介质进行读写的光盘驱动器855。可以在示例性 操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但 不限于,磁带盒、闪存单元、数字多功能盘、数字录像带、固态RAM、固态ROM 等等。硬盘驱动器841通常通过不可移动存储器接口,如接口 840连接到系统总线 821。磁盘驱动器851和光盘驱动器855通常通过可移动存储器接口,如接口 850 连接到系统总线821。
上文讨论并在图8示出的驱动器及其关联的计算机存储介质为计算机810提 供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,示出硬盘驱 动器841储存操作系统844、应用程序845、其它程序模块846和程序数据847。 注意,这些组件可以与操作系统834、应用程序835、其它程序模块836和程序数 据837相同,也可以与它们不同。通常,储存在RAM中的操作系统、应用程序等 是从硬盘驱动器841中读取的对应的系统、程序或数据的部分,这些部分取决于所需要的功能而在大小和范围上变化。这里对操作系统844、应用程序845、其它程 序模块846和程序数据847给予不同的标号来说明至少它们可以是不同的副本。用 户可以通过输入设备,如键盘862;定点设备861 (通常称为鼠标、跟踪球或触摸 垫);无线输入接收组件863;或诸如遥控器等无线源向计算机810输入命令和信 息。其它输入设备(未示出)可包括话筒、操纵杆、游戏垫、圆盘式卫星天线、扫 描仪等等。这些和其它输入设备通常通过耦合至系统总线821的用户输入接口 860 连接至处理单元820,但是也可以通过其它接口和总线结构连接,如并行端口、游 戏端口、 IEEE 1394端口或通用串行总线(USB) 898、或红外(IR)总线899。如 上所述,输入/输出功能可经由通信网络以分布式方式来促进。
显示设备891也通过接口,如视频接口 890连接至系统总线821。显示设备 891可以是显示计算机810的输出的任何设备,而不限于监视器、LCD屏幕、TFT 屏幕、平版显示器、常规电视机或屏幕投影仪。除显示设备891之外,计算机也可 包括其它外围输出设备,如扬声器897和打印机896,它们通过输出外围接口 895 连接。
计算机810将使用到一个或多个远程计算机,如远程计算机880的逻辑连接 在网络化环境中操作。远程计算机880可以是个人计算机,并通常包括许多或所有 相对于计算机810所描述的元件,尽管在图8中仅示出了存储器存储设备881。图 8描述的逻辑连接包括局域网(LAN) 871和广域网(WAN) 873,但也可包括其 它网络,诸如到城域网(MAN)、内联网或因特网的连接。
当在LAN联网环境中使用时,计算机810通过网络接口或适配器870连接至 LAN 871。当在WAN联网环境中使用时,计算机810通常包括调制解调器872或 用于通过WAN 873,如因特网建立通信的其它装置。调制解调器872可以是内置 或外置的,它通过网络接口 870或其它适当的机制连接至系统总线821。调制解调 器872可以是电缆调制解调器、DLS调制解调器或其它宽带设备。在网络化环境 中,相对于计算机810所描述的程序模块或其部分可储存在远程存储器存储设备 中。作为示例而非局限,图8示出远程应用程序885驻留在存储器设备881上。可 以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其 它手段。
尽管示出了计算机810的许多其它内部组件,但是本领域的普通技术人员可 以理解,这些组件和互连是公知的。例如,在计算机810内包括诸如电视调谐卡和 网络接口卡等各种扩展卡是常规的。因此,关于计算机810的内部构造的附加细节无需在描述该密钥管理过程的示例性实施例时公开。
当计算机810被开启或重启时,储存在ROM 831中的BIOS 833指示处理单 元820将操作系统或其必要部分从硬盘驱动器841加载到RAM 832中。 一旦被指 定为操作系统844的操作系统的复制部分被加载到RAM 832中,处理单元820就 执行该操作系统代码,并使得与操作系统834相关联的用户界面的可视元素在显示 设备891上显示。通常,当用户打开应用程序845时,从硬盘驱动器841中读取程 序代码和相关数据,并将必要部分复制到RAM 832中,所复制的部分此处由参考 标号835来表示。
用于编码和解码可縮放代码流的服务器和客户机系统
图9示出了系统900的功能框图,该系统包括可用于通过网络950向客户机 960提供受安全保护的可縮放代码流的服务器910,而客户机960能够根据本发明 的各种模式来解码该代码流。系统900可以使用一个或多个服务器910来实现,包 括提供内容的一个或多个服务器以及执行加密、密钥管理、客户机授权和其它功能 的一个或多个附加服务器。并且,还存在通过网络950访问一个或多个服务器910 的大量客户机960。尽管如此,为图示简明起见,图9示出了可用于提供内容并执 行密钥管理功能的、可通过网络950由单个客户机960访问的单个服务器910。
服务器910包括访问级别标识和授权子系统912,它接收对各种级别组合的授 权请求,并授权客户机能够解码来自服务器910的代码流,如以下进一步描述的。 服务器还包括访问节点子系统914。访问节点子系统包括访问节点生成器916,它 如结合图5所描述地导出对应于在可縮放代码流中可用的访问级别组合的访问节 点。所生成的访问节点被储存在访问节点集存储918中,用于为解密的目的而形成 密钥集并为代码流配备。
密钥子系统920包括用于如结合图6所描述地形成密钥的根节点标识器922 和子及父节点标识器922。同样如结合图6所描述的,随机数生成器926生成用作 根节点密钥并用于与每一子节点相关联来形成子节点密钥的随机数。密钥生成器 928如结合图6所描述地生成密钥,而密钥分配器930将适当的密钥与每一访问节 点相关联。所生成的密钥被储存在密钥集存储932中,使得用于所有访问节点的密 钥仅被生成一次,并且可响应于授权请求从密钥集存储932中取出各密钥。
一旦在密钥子系统920中生成并储存了密钥,加密子系统934就加密代码流。 如结合图6所描述的,内容加密密钥生成器936基于与数据分组所关联到的访问节点相关联的密钥来导出用于该分组的内容加密密钥。使用内容密钥,代码流加密子
系统938加密储存在代码流存储940中的可縮放代码流。客户机授权请求、授权批 准、密钥和代码流经由与网络950通信的通信控制子系统945来交换。
客户机960向访问级别选择子系统962发起访问安全的可縮放代码流的请求, 该子系统标识指示该可縮放代码流内每一访问类型的期望访问级别的级别组合。如 果一授权请求成功,则由密钥控制子系统964从服务器910接收密钥。该密钥被储 存在密钥存储966中,并且使用所接收的密钥和访问节点集,密钥处理子系统968 导出与代码流内的较低等级的级别相关联的密钥,以及解码该代码流的内容加密密 钥。代码流被储存在代码流/访问节点存储970中,并由解码器972解码。客户机 通信控制子系统980可用于发送授权请求并接收密钥和代码流。
结论
尽管以对结构特征和/或方法动作专用的语言描述了示例性实施例,但是可以 理解,所附权利要求书不必限于先前所描述的具体特征或动作。相反,这些具体特 征和动作是作为示例性实施例来公开的。
权利要求
1.一种用于保护对包括多种可缩放访问类型的代码流内的各级别的访问的方法,包括用一全序节点集表示一全序访问类型的第一级别的第一集合,其中每一较低等级的第一级别总是包括在每一较高等级的第一级别内;用一偏序节点集表示一偏序访问类型的第二级别的第二集合,其中每一较低等级的第二级别不总是包括在每一较高等级的第二级别内;组合所述全序节点集和所述偏序节点集,以创建包括一偏序集的访问节点集,其中每一访问节点表示所述第一级别和所述第二级别的组合;生成包括与所述访问节点集中的每一节点相对应的密钥的密钥集;以及加密所述代码流。
2. 如权利要求1所述的方法,其特征在于, 一附加全序访问类型和一附加偏 序访问类型中的至少一个用一附加节点集来表示,并在创建所述访问节点集时与所 述全序节点集和所述偏序节点集组合。
3. 如权利要求l所述的方法,其特征在于,还包括通过提供所述访问节点集 以及所述密钥集中与表示期望级别组合的期望访问节点相对应的期望密钥,来提供 对所述多个可縮放访问类型中的期望等级组合的访问。
4. 如权利要求1所述的方法,其特征在于,所述全序节点集和所述偏序节点 集通过确定每一节点的乘积来组合。
5. 如权利要求1所述的方法,其特征在于,所述代码流包括联合图片专家组 2000代码流,并且其中所述全序访问类型包括以下之一按照分辨率访问; 按照层访问;以及 按照色彩分量访问;并且 所述偏序访问类型包括以下之一 按照小块访问;以及 按照范围访问。
6. 如权利要求l所述的方法,其特征在于,还包括标识表示对非连续数据元素的访问的至少一个外来第二级别;以及 移除所述外来第二级别,使得所述访问集不包括涉及所述外来第二级别的组合。
7. 如权利要求1所述的方法,其特征在于,所述密钥是使用可操作来与所述 偏序集一起使用的分层密钥方案来生成的。
8. 如权利要求7所述的方法,其特征在于,所述分层密钥方案包括 从所述访问节点集中标识至少一个根节点,所述根节点表示最高第一级别访问和最高第二级别访问的组合;将一根密钥分配给所述根节点;将除所述至少一个根节点之外的访问节点标识为子节点;对多个子节点中的每一个标识至少一个父节点,所述父节点表示一级别组合, 对所述级别组合,所述第一级别和所述第二级别中的任一个包括比与所述子节点相 关联的级别组合中的级别高一个等级的下一级别;以及对所述子节点中的每一个,从所述子节点的至少一个父节点的至少一个父密 钥中计算子密钥。
9. 如权利要求8所述的方法,其特征在于,所述根密钥包括被分配给所述根 节点的随机数,所述方法还包括将一随机数与所述子节点中的每一个相关联;以及对所述子节点中的每一个,使用与所述子节点相关联的随机数以及所述子节 点的至少一个父节点的至少一个父密钥,利用组Diffie Hellman协议来计算所述子 密钥。
10. 如权利要求l所述的方法,其特征在于,还包括对包括呈现由与对应的访问节点相关联的所述第一级别和第二级别的组合指 定的内容时所涉及的数据的多个分组的每一个,通过使用一密码散列函数来散列与 所述对应访问节点相关联的密钥,来生成内容加密密钥;以及用所述内容加密密钥来加密所述代码流。
11. 一种其上包含有用于执行如权利要求1所述的方法的计算机可使用指令 的计算机介质。
12. —种用于访问包括多个可縮放访问类型的代码流内的各级别的方法,包括标识一全序访问类型的第一级别集合中的第一期望访问级别,其中每一较低等级的第一级别总是被包括在每一较高等级的第一级别内;标识一偏序访问类型的第二级别的第二集合中的第二期望访问级别,其中每 一较低等级的第二级别不总是包括在每一较高等级的第二级别内;保护对在包括所述第一期望级别和第二期望级别的期望级别组合下访问所述 代码流的授权;接收包括一访问节点偏序集的访问节点集,所述访问节点偏序集表示一全序 节点集与一偏序节点集的组合,所述全序节点集表示所述全序访问类型,而所述偏 序节点集表示所述偏序访问类型;以及接收允许在所述期望级别组合下访问所述代码流的单个密钥,并通过使用所 述访问节点集,在包括较低等级的第一级别和较低等级的第二级别中的至少一个的 至少一个较低组合下进行访问。
13. 如权利要求12所述的方法,其特征在于,还包括从所述访问节点集和所 述单个密钥中导出提供对所述期望级别组合和所述至少一个较低组合的访问的多个附加密钥。
14. 如权利要求13所述的方法,其特征在于,所述多个密钥是使用组Diffie Hdlman协议从所述访问节点集和所述单个密钥中导出的。
15. 如权利要求13所述的方法,其特征在于,还包括向所述单个密钥和所述 多个密钥中的至少一个应用一散列函数,以对包括在所述期望级别组合和所述至少 一个较低组合之一下呈现内容时所涉及的数据的多个分组中的每一个导出内容加 密密钥。
16. 如权利要求12所述的方法,其特征在于,所述代码流包括联合图片专家 组2000代码流,并且其中所述全序访问类型包括以下之一按照分辨率访问;按照层访问;以及按照色彩分量访问;并且 所述偏序访问类型包括以下之一按照小块访问;以及按照范围访问。
17. —种其上包含有用于执行如权利要求12所述的方法的计算机可使用指令 的计算机介质。
18. —种用于控制对包括多个可縮放访问类型的代码流内的各级别的访问的 系统,所述系统包括包括被编程以执行以下动作的一个或多个计算机的服务器维护一包括多个访问节点的访问节点集,每一所述访问节点表示对所述多个可縮放访问类型的各级别的组合的偏序集的成员;维护用于所述多个访问节点中的每一个的密钥,每一密钥允许访问与一访问节点相关联的级别组合以及包括至少一个较低等级的级别的任何级别组合.接收对指示所述多个可縮放访问类型中的每一个的期望访问级别的期望 级别组合的授权请求;对所述期望级别组合标识一期望访问节点集,并检索用于所述期望访问 节点的期望密钥;以及传递所述访问节点集和所述期望密钥;以及 包括被编程以执行以下动作的一个或多个计算机的客户机-选择所述期望级别组合;接收所述访问节点集和所述期望密钥;以及使用所述期望密钥在所述期望级别组合下访问所述代码流,并通过使用 所述访问节点集和所述期望密钥,导出提供对包括至少一个较低等级的级别 的级别组合的访问的至少一个附加密钥。
19. 如权利要求18所述的系统,其特征在于,所述服务器还被编程为生成用 于所述多个访问节点中的每一个的密钥,包括从所述访问节点集中标识一根节点,所述根节点表示对所述多个可缩放访问 类型的最高访问级别的组合;将一根密钥分配给所述根节点;将除所述根节点以外的访问节点标识为子节点;对所述多个子节点中的每一个标识至少一个父节点,所述父节点表示对其所 述级别组合之一是比所述子节点的级别高一个等级的下一级别的级别组合;以及对所述子节点中的每一个,从所述子节点的至少一个父节点的至少一个父密 钥中计算子密钥。
20. 如权利要求19所述的系统,其特征在于,所述服务器还被编程为生成用 于所述多个访问节点中的每一个的密钥,包括将一随机数与所述子节点中的每一个相关联;以及对所述子节点中的每一个,使用与所述子节点相关联的随机数以及所述子节点的至少一个父节点的至少一个父密钥,利用组Diffie Hellman协议来计算所述子 密钥。
全文摘要
执行密钥管理来生成允许解码可缩放代码流内的多个访问类型的所有授权级别的单个密钥。从表示具有诸如分辨率和层级别等可由全序集表示的分层结构、以及诸如小块和类型级别等可由偏序集来表示的分层结构的访问类型的集合中导出一访问节点集。所导出的访问节点集是表示包括在代码流内的访问类型的各级别的组合的偏序集。向该访问节点集应用一分层密钥管理系统以将一密钥分配给每一访问节点、生成内容加密密钥、以及加密代码流。接收代码流、访问节点集和其它公共信息的客户机使用该密钥来导出解码该代码流的附加密钥。
文档编号H04L9/14GK101218781SQ200680025135
公开日2008年7月9日 申请日期2006年7月11日 优先权日2005年7月11日
发明者B·朱, M·冯, S·李 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1