CN102622541A - 加密及解密的系统和方法 - Google Patents

加密及解密的系统和方法 Download PDF

Info

Publication number
CN102622541A
CN102622541A CN2011104613913A CN201110461391A CN102622541A CN 102622541 A CN102622541 A CN 102622541A CN 2011104613913 A CN2011104613913 A CN 2011104613913A CN 201110461391 A CN201110461391 A CN 201110461391A CN 102622541 A CN102622541 A CN 102622541A
Authority
CN
China
Prior art keywords
content
sample
encrypted
information
protected version
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011104613913A
Other languages
English (en)
Other versions
CN102622541B (zh
Inventor
V·斯瓦米纳萨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/981,456 external-priority patent/US8938619B2/en
Priority claimed from US12/981,455 external-priority patent/US8527750B2/en
Application filed by Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of CN102622541A publication Critical patent/CN102622541A/zh
Application granted granted Critical
Publication of CN102622541B publication Critical patent/CN102622541B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及一种用于生成多个受保护的内容格式而无内容的冗余加密的系统和方法以及对包括相异加密链的内容样本进行解密的系统和方法。实施例可以包括生成内容的第一受保护版本,该生成可以包括将内容分组化成各自包括内容信息和非内容信息的多个分组,并且使用初始化向量以对经分组内容的多个块执行链式加密。根据非内容信息生成初始化向量中的至少一些初始化向量。实施例还可以包括使用加密块以生成内容的第二受保护版本,而不对内容进行重新加密。实施例还可以被配置成接收包括多个经加密内容样本的、内容的受保护版本。在各种实施例中,每个经加密内容样本包括多个加密块。针对给定的经加密内容样本,该样本中的不同加密块集合可以形成不同加密链。内容的受保护版本还可以包括用于对经加密的内容样本进行解密的解密信息。

Description

加密及解密的系统和方法
技术领域
本发明涉及计算机系统。具体而言,本发明涉及保护计算环境内的电子内容。
背景技术
为了应对内容的未授权使用,一些内容所有者已经采用称为数字版权管理(“DRM”)的方法来保护他们的内容,该方法可以包括各种用于使对电子内容的访问限于已授权个体,和/或对这样的内容的使用施行其它约束的技术。通常将由DRM保护的干净内容编码和封装成加密形式。在封装时,负责封装内容的封装单元可以利用各种类型的用于对内容进行加密的加密算法。在一些情况下,这些加密算法可以基于可以按照随机方式选择或者生成的密码密钥来对内容进行加密。在某一点可以向与内容使用者相关联的电子设备提供经加密的内容。例如,使用者可以支付用于电子访问内容的一次性费用或者反复订购费用。为了在使用者的电子设备上查看解密形式的内容,可能要求设备获得包括用于解密内容的正确密码密钥的相应内容许可。
在一些情况下,解密方案和/或内容格式可以跨使用者设备或者平台而变化。可以在封装时间适应这些不同。例如,多个不同的加密和格式化方案可以应用于干净内容,以生成与不同使用者设备或者平台兼容的多个不同内容版本。
发明内容
描述一种用于生成多个受保护内容格式而无内容的冗余加密的系统和方法的实施例,以及一种对包括相异加密链的内容样本进行解密的系统和方法的实施例。在各种实施例中,可以生成相同内容的不同受保护(例如加密)版本而不冗余地对内容进行加密。例如实施例可以使内容能够被一次加密并且组装成各种不同格式,而又保持经加密内容跨这种格式而位兼容。在各种实施例中,可以通过将(例如根据媒体传送流的)未加密内容分组化成多个分组来生成内容的第一受保护版本。经分组内容可以包括内容信息(例如实际内容(诸如视频或者音频数据))以及非内容信息(例如分组头标)。在一些情况下,还可以将分组的子组进一步分组成单个文件(例如用于网络传送)。
在任何情况下可以在逐个块的基础上链加密经分组内容。例如块密码器加密可以用来用加密密钥和多个初始化向量对经分组内容进行加密。在各种实施例中,这一加密过程的加密结果可以作为内容的第一受保护版本。在各种实施例中还可以生成内容的一个或者多个不同保护版本而不重新加密为了生成内容的第一受保护版本而加密的内容。例如实施例可以标识第一受保护版本的与实际内容数据对应的加密块而又丢弃与非内容信息(例如分组或者文件头部)对应的加密块。
在各种实施例中,代表经加密内容的块可以聚集成可以在一些情况下比上文描述的经分组内容的分组净负荷更大的样本。在提取过程期间可以断开相连加密链(例如由于可以丢弃与非内容信息对应的至少一些块)。因而样本可以包括多个不同加密链。在各种实施例中,为了保证可以对包括前述样本的内容的第二受保护版本进行恰当解密,实施例可以在内容的第二受保护版本内包括解密信息。在各种实施例中,这一解密信息可以指定用于对样本内的每个相异加密链进行解密的多个初始化向量。例如每个样本可以包括多个相异加密链,并且用于该样本的样本头标信息可以指定将用于对那些加密链中的每个加密链进行解密的初始化向量。如这里更具体描述的那样,那些初始化向量中的至少一些初始化向量可以依赖于内容的第一受保护版本的非内容信息(例如在创建受保护内容的第二版本期间在提取内容块期间丢弃的非内容信息)。
实施例可以包括各种用于对根据在此描述的技术生成的经加密内容样本进行解密的解密技术。实施例可以被配置成接收包括多个加密内容样本的、内容的受保护版本。在各种实施例中,每个加密内容样本包括多个加密块。针对给定的加密内容样本,该样本中的不同加密块集合可以形成不同加密链。内容的受保护版本还可以包括用于对经加密的内容样本进行解密的解密信息。解密信息可以包括根据在内容的受保护版本中未包括的非内容信息生成的至少一些初始化向量。非内容信息可以来自内容的不同受保护版本。实施例可以被配置成使用解密信息来对一个或者多个经加密内容样本进行解密。
附图说明
图1图示了根据一些实施例的如下示例系统的框图,在该系统中可以生成多个受保护内容格式而无对内容的冗余加密。
图2图示了根据一些实施例的、用于创建不同保护内容格式而无对内容的冗余加密的示例流程图。
图3图示了根据一些实施例的、对多个内容块执行的链式加密过程的一个示例。
图4图示了根据一些实施例的示例客户端系统的框图。
图5图示了根据一些实施例的、对多个内容块执行的链式解密过程的一个示例。
图6图示了根据一些实施例的、用于创建不同受保护内容格式而无对内容的冗余加密的示例方法的流程图。
图7图示了根据一些实施例的、用于利用根据内容的不同版本生成的初始化向量来对该内容进行解密的示例方法的流程图。
图8图示了根据各种实施例的如下示例计算机系统,该计算机系统适合于实施用于生成多个受保护的内容格式而无内容的冗余加密、以及对包括相异加密链的内容样本进行解密的系统和方法的各种组件。
尽管在此针对若干实施例和示例附图,通过示例描述用于生成多个受保护的内容格式而无内容的冗余加密、以及对包括相异加密链的内容样本进行解密的系统和方法,但是本领域技术人员将认识到用于生成多个受保护的内容格式而无内容的冗余加密、以及对包括相异加密链的内容样本进行解密的系统和方法并不限于所描述的实施例或者附图。应当理解附图及其具体描述并非旨在使实施例限于公开的特定形式。而是旨在覆盖落入如所附权利要求所限定的、用于生成多个受保护的内容格式而无内容的冗余加密、以及对包括相异加密链的内容样本进行解密的系统和方法的精神实质和范围内的所有修改、等效物和备选。在此所用的任何标题仅为了组织、而并非意味着限制说明书或者权利要求的范围。如这里所用,按照许可意义(即意味着有可能)而不是强制意义(即意味着必须)使用词语“可以”。类似地,词语“包括”意味着包括但不限于。
具体实施方式
描述一种用于生成多个受保护的内容格式而无内容的冗余加密、以及对包括相异加密链的内容样本进行解密的系统和方法的各种实施例。在下文具体描述中阐述诸多具体细节,以提供对所要求保护的主题内容的透彻理解。然而本领域技术人员将理解没有这些具体细节也可以实现所要求保护的主题内容。在其它实例中,并未具体描述本领域普通技术人员可能已知的装置或者系统,以免掩盖所要求保护的主题内容。
以下具体描述的一些部分以对存储于具体装置或者专用计算设备或者平台的存储器内的二进制数字信号的操作的算法或者符号表示来呈现。在这一具体说明书的上下文中,术语具体装置等包括如下通用计算机,该通用计算机一旦被编程就按照来自程序软件的指令执行特定功能。算法描述或者符号表示是信号处理或者相关领域普通技术人员用来向本领域其它技术人员传达他们的工作实质的技术示例。算法在这里并且一般地被视为实现预期结果的自一致操作序列或者相似信号处理。在该上下文中,操作或者处理涉及到物理数量的物理操纵。虽然并非必须,但是这样的数量通常可以采用能够存储、传送、组合、比较或者以别的方式操纵的电或者磁信号形式。主要为了通用而将这样的信号称为位、数据、值、元素、符号、字符、项、数字、数值等已经证实有时是方便的。然而应当理解所有这些或者相似术语将与适当物理数量相关联并且仅为方便标记。除非另有具体声明,如根据下文讨论清楚的那样,应当理解在本说明书全文中利用诸如“处理”、“计算”、“运算”、“确定”等术语的讨论涉及具体装置(诸如专用计算机或者相似专用电子计算设备)的动作或者过程。因此在本说明书的上下文中,专用计算机或者相似专用电子计算设备能够操作或者变换在专用计算机或者相似专用电子计算设备的存储器、寄存器或者其它信息存储设备、发送设备或者显示设备内通常表示为物理电子或者磁数量的信号。
各种实施例包括各种如下加密和/或解密密钥,可以经由密钥导出函数(KDF)生成这些加密和/或解密密钥中的任何加密和/或解密密钥。密钥导出函数可以包括完成密码操作的一个或者多个迭代或者实例以便生成加密或者解密密钥。密钥导出函数示例可以包括但不限于任何由公钥密码标准(PKCS)(例如PKCS-5或者PKCS-12)或者
Figure BSA00000652438900051
Password Security指定的密钥导出函数。在各种实施例中,KDF可以由任何在此描述的各种组件用来生成用于对称加密的加密密钥。
本具体实施方式的各部分可以涉及“客户端”和“服务器”或者相似术语。例如各种实施例可以包括客户端系统或者客户端设备(或者简称为)“客户端”(以及其它单元)。应当理解术语“客户端”和“服务器”并未对这样的单元的操作、配置或者实施施加任何限制。应当理解仅由于方面命名而使用这些术语。实际上,各种实施例无需受常规客户端-服务器架构的原理限制。
在各种实例中,本具体实施方式可以涉及内容项(也可以称为“内容数据”、“内容信息”或者简称为“数据”或者“信息”)。在一些实例中,内容项可以包括任何可以向一个或者多个个人(或者其它实体(诸如企业或者团体))许可的信息或者数据。在各种实施例中,内容可以包括视频、音频、文本和/或图形的如下电子表示,这些电子表示可以包括但不限于视频、电影或者如下其它多媒体的如下电子表示,这些电子表示可以包括但不限于遵循
Figure BSA00000652438900061
Video(.FLV)格式或者某一其它视频文件格式的数据文件、无论这样的格式为当前已知还是将来开发。在各种实施例中,在此描述的内容项可以包括音乐、口头字词或者其它音频的如下电子表示,这些电子表示可以包括但不限于遵循MPEG-1 Audio Layer 3(.MP3)格式、Sound Document(.ASND)格式或者某一其它配置成存储电子音频的格式的数据文件、无论这样的格式为当前已知还是将来开发。在一些情况下,内容可以包括遵循以下格式的数据文件:PortableDocument Format(.PDF)、International Digital Publishing Forum(IDPF)创建的Electronic Publication(.EPUB)、JPEG(.JPG)格式、Portable Network Graphics(.PNG)格式、
Figure BSA00000652438900064
Figure BSA00000652438900065
(.PSD)格式或者某一其它用于电子存储文字、图形和/或其它信息的格式、无论这样的格式为当前已知还是将来开发。在一些实施例中,内容项可以包括上文描述的示例的任何组合。
在各种实例中,本具体公开可以涉及使用内容或者内容使用(也可以称为“访问”内容、“查看”内容、“收听”内容或者“播放”内容以及其它内容使用方式)。在一些情况下,所用特定术语可以取决于它用于的上下文。例如使用视频也可以称为观看或者播放视频。在另一示例中,使用音频也可以称为收听或者播放音频。
在各种实施例中,本详细描述可以涉及配置成执行内容使用的设备(诸如客户端系统140)。在各种实施例中,这样的设备可以包括但不限于计算系统(例如桌面型或者膝上型计算机)、电视机顶盒、数字音频或者多媒体播放器(例如MP3播放器)、个人数字助理(PDA)、移动电话、智能电话、触屏电话、电子书阅读器、数字相框或者任何其它配置成访问、查看、读取、写入和/或操纵任何在此描述的内容数据的设备或者系统。可以经由与关于图8描述的计算机系统相似的计算机系统实施任何这样的设备。
注意在各种实例中在此呈现的描述可以涉及给定的实体执行某一动作。应当理解这一语言可以在一些情况下意味着给定的实体拥有和/或控制的系统(例如计算机)实际上在执行动作。
注意,在各种实例中在此呈现的描述可以涉及公钥与私钥相关联或者公钥与私钥对应。应当理解,这样的陈述可以意味着这样的公钥与这样的私钥一起形成公钥-私钥对。此外,在一些情况下,公钥-私钥对可以简称为“密钥对”。注意,在各种实施例中,可以经由一个或者多个密钥导出函数(诸如上文描述的密钥导出函数)生成公钥-私钥对。
图1图示了用于生成多个受保护的内容格式而无内容的冗余加密、以及对包括相异加密链的内容样本进行解密的系统和方法的各种实施例的框架的流程图。在所示实施例中,内容105可以代表如下媒体对象,该媒体对象可以包括可以表示和/或存储为电子内容(例如音频、视频、图像、演示或者其某一组合的电子表示)的任何类型的媒体节目。在各种实施例中,媒体节目可以包括预先记录的内容(包括但不限于电影或者运动画面、电视节目、视频剪辑或者片断、音频作品以及实况内容(包括但不限于传送实时或者接近实时事件(例如实况体育赛事或者比赛)的内容))。一个或者多个编码器系统110可以被配置成输入内容105,并且生成与内容105对应的经编码内容项115。在各种实施例中,编码器系统可以根据一个或者多个用于视频压缩的编码解码器或者标准,对内容105进行编码或者压缩以便生成经编码的内容项115。这样的标准的一个非限制示例包括H.264标准。
为了清楚地说明,仅在所示实施例中呈现了单个经编码内容项115。然而,应当理解,所示系统可以创建多个经编码内容项。例如,在各种实施例中,不同经编码内容项可以代表相同媒体对象的不同时间分段。例如,如果媒体对象为电影,则每个经编码内容项可以代表该电影的不同时间分段。每个时间分段可以例如由电影的不同时间段、在电影内的不同帧集合或者在电影内的不同场景指定。
在所示实施例中,经编码内容项115可以由封装器组件125进行处理。在各种实施例中,封装器组件可以实施于如下封装系统120上,该封装系统可以在一些情况下由计算机系统(诸如下文描述的图8中所示计算机系统)实施。如图所示,封装器组件125可以对编码内容项125进行封装和加密,以生成对应加密内容项130。下文关于图2-3描述生成加密内容项130的方式的附加细节。一般而言,为了支持不同客户端系统、平台或者配置,封装器组件125可以被配置成生成如下单个加密内容项130,该加密内容项可以组装成不同客户端系统的多个不同内容格式,而并不对内容进行多次加密。如下文更具体描述的那样,封装器组件125生成经加密内容项的方式可以节省时间和/或处理资源,因为实施例可以仅需一个加密实例以支持不同客户端的不同内容格式。在另一示例中,封装器组件125生成加密内容项的方式可以通过使多个客户端内容格式能够由存储于数据存储中的相同加密内容支持来节省储存器资源(或者减少对现有储存器资源的利用)。
在各种实施例中,可以直接向内容递送系统140提供经加密内容项130和/或在内容数据存储135中存储加密内容项130。在一个非限制示例中,可以向内容递送系统140提供实时或者接近实时的内容(例如实况体育赛事的内容),而其它内容可以存储于内容数据存储135中并且在后期由内容递送系统140取回。一旦组装器组件145接收经加密内容项130,组装器组件可以将加密内容项组装成客户端系统155a-b支持的多个格式中的任何格式;可以执行这一过程而不对内容进行重新加密。换而言之,执行封装和组装过程的方式可以保留在不同内容格式的经加密内容之间的位兼容性。
在所示实施例中为了清楚地说明而仅呈现了两个客户端系统155a-155b。应当理解,在各种实施例中可以支持任何数目的客户端系统或者设备。如图所示,每个客户端系统155a-155b可以具有加密内容项的不同版本。在所示实施例中,保护内容项150a和保护内容项150b可以遵循不同文件格式、标准或者规范。下文更具体描述在内容项的两个版本之间的不同。
为了获得用于对保护内容项进行解密的解密密钥,每个客户端系统可以用许可服务器160执行许可获取165。例如每个经加密内容项可以具有如下元数据部分,该元数据部分包括用来对该内容项进行加密的内容加密密钥的加密版本。可以已经用许可服务器160的公钥对这一经加密内容的加密密钥进行了加密。在165,客户端系统可以向许可服务器160提交这一经加密内容的加密密钥作为许可请求的部分。在许可服务器160肯定地认证客户端系统(如果需要)之后,许可服务器可以使用它自己的私钥来对经加密内容的加密密钥进行解密,以确定内容加密密钥的未加密版本。许可服务器继而可以用客户端系统的公钥(或者将使用内容的应用的公钥)对内容加密密钥进行重新加密,从而使得仅该客户端系统可以对该内容加密密钥进行恰当解密。在从许可服务器160向客户端系统发送的响应内提供这一密钥重新加密的结果。客户端系统可以用对应私钥从该响应中对经加密内容的解密密钥进行解密。这一内容加密密钥可以用来对该客户端系统接收的受保护内容项进行解密。在各种实施例中,客户端系统可以使用这一相同内容加密密钥来对经加密内容项130中的后续经加密内容项进行解密。当然,在各种实施例中,解密密钥可以随时间改变,并且当这发生时,可以再次执行许可获取。在其它实施例中,可以利用其它用于保护内容加密的技术。例如在一些实施例中,当客户端接收内容许可时,内容许可可以已经包括针对该特定客户端而保护(例如加密)的内容加密密钥。
图2图示了用于生成内容的多个受保护版本而无内容的冗余加密和冗余存储的示例过程。在各种实施例中,所示过程可以由上述封装器组件125和/或组装器组件145执行。在各种实施例中,所示过程可以实施于计算机系统(诸如图8的计算机800)上。如在分组化250所示,可以将经编码内容200(诸如图1的经编码内容项115)分组化成经分组的内容202。在一些实施例中,分组化可以包括将经编码内容解析成如下分组,每个分组可以包括分组头标信息和包括内容的分组净负荷。在一个非限制示例中,分组化经编码内容可以包括根据一个或者多个标准(诸如MPEG-2标准)生成传送流(TS)。在其它情况下,其它标准或者格式可以用来分组化内容。如在252所示,可以执行如下聚集过程,在该过程中分组集合可以分组成相异文件204。在各种实施例中,这样的文件可以在尺寸上设定成当通过一个或者多个网络向客户端系统提供这样的内容时提供流式性能。例如,文件可以大到足以容纳多个分组、而小到足以使得客户端系统可以提交多个超文本传送协议(HTTP)请求,以便以流式方式获得文件。在所示实施例中,为了清楚地说明而仅呈现了两个文件204a-204b。然而,应当理解,在各种实施例中,可以将分组化内容分组成任何数目的文件。在一些实施例中,将分组化内容分组成不同文件204可以是可选的。
如在254所示,可以对文件204执行链式加密过程以创建代表文件的多个加密块206。在一些实施例中,加密块206可以作为内容的第一受保护版本。例如,加密块206可以代表上文描述的图1的受保护内容150a。
共同参照图2和图3,其更具体地描述文件204的链式加密。图3图示了链式加密的一个示例。如图所示,可以将文件204解析成一系列块。在各种实施例中,这些块可以根据所执行的加密类型而具有固定宽度(例如128位)。在一些实施例中,所使用的加密可以是高级加密标准128位密码器块链接模式(AES-128位CBC模式)。在其它实施例中,可以使用其它类型的链式加密。在所示实施例中,一般可以从第一块B0和第一初始化向量IV0开始,从图左到右按照顺序方式执行加密。在各种实施例中,可以随机或者伪随机地生成第一初始化向量IV0。然而如下文更具体描述的那样,可以生成后续块的初始化向量,从而使得对每个后续块的加密依赖于先前加密的块。在所示实施例中,可以通过逐位异或操作来处理初始化向量IV0(可以与待加密的块宽度相同)和待加密的第一块B0。在其它情况下,可以利用其它逻辑操作而不是异或操作。可以通过使用块密码器加密300,用内容加密块302来对异或操作的结果进行加密。该结果可以是具有与输入块的大小(例如在本示例中为128位)相同大小的加密块EB0
在各种实施例中,可以对每个后续块进行加密,从而使得它链接到先前块。换言之,根据一些实施例,为了对给定的块进行加密(并且因此也为了解密),可以要求加密机制了解先前的加密块。在各种实施例中,实施这一方面的方式包括针对给定的块,使用先前的加密块作为用于加密给定的块的初始化向量。例如,在所示实施例中也可以使用第一加密块EB0作为第二初始化向量IV1。与第一块的加密相似,可以对IV1/EB0和第二块B1执行异或操作,块密码器加密300使用内容加密密钥302来对该异或操作的结果进行加密。可以如图所示重复上文描述的过程,以便对文件204的所有块进行加密。回到图2,这些加密块图示为如下加密块206,这些加密块可以代表文件204a和204b的经加密版本。
如在256所示,可以根据加密块206生成内容样本。在各种实施例中,内容样本可以对应于内容的限定部分(诸如音频或者视频帧)。然而在一些实施例中,样本可以对应于内容的某一其它粒度。如上文所述,经加密文件206可以是文件204的如下加密版本,该加密版本可以包括内容信息(例如代表实际内容的数据(诸如音频或者视频数据))以及非内容信息(诸如分组头标(例如传送头标(诸如由MPEG-2标准或者另一限定媒体传送流的标准限定的传送头标)))或者文件头标信息。然而,在各种实施例中,这样的非内容信息可以在未根据文件204的格式进行分组化或者格式化的基于样本的文件格式的上下文内不承担有意义的作用。出于各种原因(例如为了在基于样本的内容208内避免不必要的开销),样本生成256可以提取与实际内容信息对应的加密块206而又忽略非内容信息。可以将提取的块如图所示组装成样本208。尽管为了清楚地说明而仅呈现了一个样本,但是应当理解,可以在各种实施例中生成多个样本。在各种实施例中,这一提取过程可以借助丢弃与非内容信息对应的一些或者所有加密块206来断开上文描述的加密链。例如对省略一个或者多个块206的样本的块执行基于块的解密(下文关于图5描述)可能造成初始化向量的不正确确定(例如因为初始化向量可以依赖于先前块)并且因此造成不正确的解密结果。然而,在各种实施例中,可以通过在一个或者多个样本的所示样本头标210中存储适当的初始化向量来避免这一情形。例如将样本208图示为包括表示为加密链260、262和264的三个不同加密块集合。在各种实施例中,尽管这些加密块的内容可以代表内容的相连(或者接近相连)部分,但是可能存在其中加密是未相连的加密边界(例如由于在从加密块206提取内容块期间的断开链)。因而针对在给定的样本中的每个加密链260-264的第一块,样本生成过程可以存储为了在该给定的样本的样本头标内开始每个链的链式解密而必需的初始化向量。以这一方式,当解密过程(例如在客户端系统上)遇到在加密链之间的加密边界时,加密过程可以访问来自样本头标的适当的初始化向量并且解密可以继续。
在各种实施例中,样本生成过程可以通过多种技术选择在样本头标中包括的初始化向量。在一个示例中,当分析加密块206时,针对非内容块紧接在其前的每个内容块(例如包含非内容信息(诸如分组头标或者文件头标信息)的块),样本生成过程可以在生成的样本的样本头标内存储该非内容块作为初始化向量。如下文更具体描述的那样,存储于样本头标中的初始化向量可以用来对相应样本中的加密块的不同链进行解密。
图4图示了根据各种实施例的包括解密和使用组件的示例客户端系统。在所示实施例中,客户端系统400可以由计算机系统或者其它电子设备(诸如下文关于图8的计算机系统描述的电子设备)实施。在各种实施例中,可以用与客户端系统400的方式相似的方式配置上文描述的客户端系统(例如客户端系统155a-155b)。
如图所示,客户端系统400可以接收可以用与上文描述的样本相似的方式配置的一个或者多个加密样本402。例如,客户端系统400可以接收多个如下样本,该样本代表音频和/或视频帧(诸如代表媒体节目的帧(上文描述))。为了清楚地说明而在图4中仅图示了一个样本402。然而,应当理解,在各种实施例中可以对多个样本执行下文描述的解密和使用技术。
在各种实施例中,解密组件404可以被配置成对每个加密样本执行基于块的解密。在各种实施例中,为了对给定的样本进行解密,解密组件404可以被配置成执行下文更具体描述的图5中所示过程。一般而言,解密组件404可以被配置成通过使用来自样本头标的初始化向量对来自样本的多个块执行解密。将解密块图示为内容使用组件408可以使用(例如播放)的解密内容样本408。内容使用组件408可以被配置成诸如通过生成内容的图形和/或音频表示来生成内容的一个或者多个表示(例如在显示器、扬声器和/或用于内容使用的其它设备上)。
图5图示了根据各种实施例的用于对给定的样本进行解密的过程的框图。图5的技术可以由上文描述的客户端系统实施。例如解密组件404可以利用所示技术来对在客户端系统上接收的样本进行解密。为了清楚地说明而在图5中仅图示了一个样本500。然而,应当理解,在各种实施例中可以对多个样本执行下文描述的解密和使用技术。类似地,尽管仅图示了两个不同加密链504和506,但是,在各种实施例中,任何数目的加密链可以存在于给定的样本内。在所示示例中,每个加密链包括三块加密内容。然而,在各种实施例中,给定的加密链可以包括任何如下数量的块,该数量可以等于或者可以不等于样本的其它加密链中的块数量。
在所示实施例中,可以提取并且用内容加密密钥510对样本EB0中的第一加密块进行解密。在各种实施例中,加密块可以被对称加密。因而内容加密密钥510可以与原先用来加密内容的密钥相同。在各种实施例中,可以通过许可获取过程(诸如上文关于图1描述的许可获取过程)获得密钥510。如图所示,可以使用内容加密密钥510来对样本的第一加密块EB0进行解密。另外,根据链式解密,适当的初始化向量IV0可以应用于解密结果以确定解密块512中的第一解密块B0。在所示实施例中,这通过异或操作来执行。所用特定操作将通常匹配于用来在加密过程期间应用初始化向量的操作。如图所示,可以从样本头标502获得第一初始化向量。可以用相似方式执行对第二和第三块EB1和EB2的解密以生成解密块B1和B2而不同之处在于用来解密这些块的初始化向量IV1和IV2可以等效于先前的加密块,这与用来对块进行加密的技术(诸如上文关于图3描述的技术)一致。然而,如图所示,加密块EB3属于第二加密链506。因而块EB2不能与用于对块EB2进行解密的初始化向量一起使用。在这一情况下,可以从样本头标502提取正确的初始化向量IV3。(如上文关于样本生成256描述的那样,用于启动每个链的链解密的初始化矢量可以被存储在每个样本的样本头标中)。以这一方式,可以在相同的样本内跨越不同的加密链正确执行解密过程。
在各种实施例中,样本头标500可以包括将在解密期间使用的附加信息。例如针对代表相异解密链的每个块集合,样本头标500可以指定该集合的大小(例如以块或者位为单位)和/或在样本内的位置。这样的信息可以由客户端系统用于确定哪些初始化向量应用于样本中的哪些块。在利用部分加密的实施例中,一些块集合可以未加密。例如,在一些实施例中,可以未必加密所有块集合。在一个示例中,可以对样本进行部分加密,从而使得将针对未授权客户端(例如缺乏适当许可和/或解密密钥的客户端)充分破坏内容使用(例如回放)、因此提供对试图在无恰当许可和/或解密密钥时使用内容的防范而又节约计算资源和/或时间。例如这一技术可以节约封装侧的计算资源和/或时间(因为留下至少一些块集合未加密)和客户端侧的计算资源和/或时间(因为无需解密至少一些块集合)。作为一个示例,考虑一种用于上文描述的样本208的替代配置。如果使用部分加密来对样本208进行加密,则至少一些块可以保持于干净形式而其它块保持加密。例如,样本可以备选地包括加密链260、加密链264而可以留下其余块集合未加密(例如可以留下与加密链262对应的块未加密)而不是包括三个加密链260、262和264。在各种实施例中,样本头标502也可以包括标识未加密块的信息。例如样本头标205可以标识未加密的一个或者多个块或者块范围。这样的信息可以由客户端系统用于确定无需解密的块、由此如上文描述的那样节省处理资源和/或时间。可以在样本生成过程256期间捕获任何前述信息并且存储为给定的样本的头标信息的部分。
示例方法
实施例可以包括各种用于生成内容的不同保护版本而未冗余加密的方法以及用于对根据这里描述的技术生成的内容进行解密的方法。图6和图7图示了这样的方法的示例。在各种实施例中,所示附图由上文描述的组件或者系统实施。在一些实施例中,在此描述的方法可以实施于一个或者多个计算机系统(诸如下文描述的图8的计算机系统)上。
图6图示了用于生成保护内容的两个不同版本而未对内容进行多次加密的示例方法。如在600所示,该方法可以包括接收待保护的内容。这样的内容可以包括任何这里描述的内容(诸如经编码内容115)。
如在602所示,该方法还可以包括通过将内容分组化成各自包括内容信息和非内容信息的多个分组来生成内容的第一受保护版本(例如上文描述的加密块206)。这一分组化过程可以包括任何上文描述的分组化技术(诸如执行分组化250以创建包括非内容信息(例如传送流分组头标)和内容信息(例如包括内容的传送流分组净荷)的分组)。在各种实施例中,非内容信息可以包括媒体传送分组头标(诸如MPEG-2标准或者另一限定媒体传送流的标准限定的媒体传送分组头标)。在各种实施例中,经分组内容可以包括根据一个或者多个标准(诸如MPEG-2标准)根据媒体传送流格式化内容。在各种实施例中,方法的这一部分也可以包括使用初始化向量以对经分组内容的多个块执行链式加密,这可以包括任何上文描述的任何技术(包括上文关于图2和图3描述的加密过程)。在各种实施例中,可以根据非内容信息(例如分组或文件头标)生成用于加密的初始化向量中的至少一些初始化向量。例如,当对经分组内容的块执行诸如上文关于链式加密254描述的链式加密时,加密的块中的至少一些块可以代表包括分组头标或者文件头标信息的非内容信息。
如在604所示,方法也可以包括使用加密块以生成内容的第二受保护版本而不对内容进行重新加密。内容的该第二受保护版本的一个示例包括上文描述的样本208。在各种实施例中,内容的第二受保护版本可以包括多个经加密内容样本,每个经加密内容样本包括来自内容的第一受保护版本的多个加密块。例如,如上文描述的那样,样本208和500可以包括从块206提取的内容块。在各种实施例中,针对给定的经加密内容样本,该样本中的不同加密块集合可以形成不同加密链。例如,上文将样本208和500描述为包括多个不同加密链。
在各种实施例中,内容的第二受保护版本也可以包括用于对经加密的内容样本进行解密的解密信息。例如,这一解密信息可以包括存储于上文描述的样本头标502中的信息。例如,如上文关于样本生成256描述的那样,样本头标可以包括为了开始对在相应样本中的每个加密链进行解密而需要的初始化向量。在各种实施例中,解密信息可以包括根据第一受保护版本的非内容信息生成的至少一些初始化向量。例如,如上文关于图3描述的那样,至少一些初始化向量可以等效于先前加密的块。因而,当先前加密的块是代表非内容信息(例如分组或者文件头标)的加密块时,用来对后续块进行加密的初始化向量可以等效于代表该非内容信息的加密块。以此方式,内容的第二受保护版本的至少一些初始化向量可以依赖于来自内容的第一受保护版本的信息(即在内容的第二受保护版本中不存在的信息)。通过在内容的第二受保护版本中包括这些初始化向量,实施例可以防止与非连续(或者“断开”)加密链相关联的解密问题。
在各种实施例中,尽管内容的第二受保护版本可以包括根据第一受保护版本的非内容信息(例如一个或者多个媒体传送流分组头标)所生成的初始化向量,但是内容的第二受保护版本可以不包括该非内容信息中的至少一些非内容信息。在一些实施例中,第二受保护版本可以不包括第一受保护版本的非内容信息。例如由于内容的第二受保护版本可以基于样本(即不分组化成媒体传送流),所以包括媒体传送头标信息的非内容信息可能在内容的第二受保护版本中并不需要。因而可以从内容的第二受保护版本中排除这一信息中的一些或者全部信息。
注意,在此描述的媒体传送流(以及该流的关联头标和净负荷信息)可以不同于网络分组流。例如,内容是否(例如根据MPEG-2)分组化成媒体传送流可以独立于是否已经根据用于传送分组的网络协议(例如发送控制协议(TCP)、网际协议(IP)等)来对该内容进行分组化。例如,在某些情况下,根据媒体传送流进行分组的内容可以或者可以不附加地根据网络协议进行分组以用于传送。在其它情况下,可以或者可以不根据网络协议对未根据媒体传送流(例如,基于样本的内容)进行分组化的内容进行分组化以用于网络传送。应当理解,根据媒体传送流协议的分组化和根据一个或者多个网络协议的分组化可以出现在标准网络模型的不同层(例如开放系统互联(OSI)模型的不同层)。
在一些实施例中,在604生成的经加密内容样本可以包括部分加密的样本。例如,如上文关于208的备选版本描述的那样,样本可以包括经加密的一些内容块集合(例如加密链),以及未经加密的一个或者多个内容块。如上文描述的那样,使用这些部分加密技术可以提供对试图在无恰当许可和/或解密密钥时使用内容的防范,而同时又节约计算资源和/或时间。
在该方法的各种实施例中,所用解密信息可以包括将在解密期间使用的附加信息。例如对于代表相异加密链的每个块集合,解密信息可以指定该集合的大小(例如以块或者位为单位)和/或在样本内的位置。这样的信息可以用于确定哪些初始化向量应用于样本中的哪些块。在利用部分加密的实施例中,一些块集合可以未经加密;解密信息还可以包括标识这些块的信息。这样的信息可以用于确定无需解密的块。
在各种实施例中,通过在内容的第二受保护版本中存储用于不同加密链的初始化向量作为解密信息,实施例可以维持在相同内容的多个不同受保护版本之间的位兼容性。以这一方式,实施例避免冗余加密。也就是说,针对受保护内容的多个不同版本,实施例可以避免对内容的多次加密。这些特性可以在根据不同格式封装不同设备的内容时节省时间和/或处理资源。此外,由于可以根据相同的经加密内容导出受保护内容的多个版本,所以实施例可以避免冗余地存储经加密内容。也就是说,可以(例如在计算机系统(诸如图8的计算机系统)的存储器中)存储经加密内容的一个版本,并且可以根据需要或者“在运行中”(诸如可以在向客户端系统递送内容时执行),根据第一版本生成其它受保护版本。即使在内容的多个受保护版本存储于存储器的情况下,实施例也可以避免与对相同内容进行多次加密相关联的时间和处理资源。
在该方法的各种实施例中,内容的第一受保护版本的多个分组可以是媒体传送流的部分,并且内容的第一受保护版本的非内容信息可以包括该传送流的传送头标信息。例如,如上文描述的那样,经分组内容可以遵循根据一个或者多个标准(诸如MPEG-标准)的媒体传送流。
在该方法的各种实施例中,一个或者多个经加密内容样本可以包括视频或者音频帧。例如经加密内容样本可以代表任何在此描述的媒体节目的帧。
在该方法的各种实施例中,执行块602的链式加密可以包括用与所述初始化向量相异的一个或者多个密码密钥(例如一个或者多个内容加密密钥或者CEK)对所述多个块进行加密。在一些情况下,相同密钥可以用来对所有块进行加密。在其它情况下,不同密钥可以用于不同块集合。在该方法的各种实施例中,对多个块执行链式加密可以包括用相应初始化向量和密码密钥对第一块和多个后续块中的每个块进行依次加密,其中根据先前加密的块生成用于每个后续块的每个相应初始化向量。关于图3的基于块的加密图示和描述了这样的配置的一个示例。在该方法的各种实施例中,可以用块密码器对每个块进行加密,并且向块密码器的输入可以包括密码密钥、初始化向量和内容块。块密码器的输出可以是如下加密块,该加密块也可以等效于诸如关于图3的基于块的加密描述的用于待加密的下一个块的初始化向量。
在该方法的各种实施例中,内容的第二受保护版本还包括未加密的一个或者多个内容样本。例如实施例可以运用部分加密以明显保护内容而又同时保留与加密相关联的处理资源。
在该方法的各种实施例中,内容的第二受保护版本包括与一个或者多个样本相关联的未加密头标信息。例如在该方法的各种实施例中,针对给定的样本,未加密头标信息可以包括指明该样本是否被加密的一个或者多个信息和用于解密的一个或者多个初始化向量。
在该方法的各种实施例中,内容的第一受保护版本和内容的第二受保护版本可以按照不同文件格式规范。例如可以针对支持不同文件格式的不同设备生成两个版本。如上文描述的那样,可以适应这一配置而未冗余加密和存储内容。
图7图示了根据各种实施例的用于内容解密(诸如在客户端系统上对基于样本的内容的解密)的示例方法的流程图。在各种实施例中,所示方法可以由任何在此描述的客户端系统和/或下文描述的图8的计算机系统执行。
如在702所示,该方法可以包括接收内容的包括多个经加密内容样本的受保护版本,每个经加密内容样本包括多个加密块。例如,该方法可以包括接收内容的多个样本(诸如上文描述的样本208或者500)。在各种实施例中,针对所接收的给定的经加密内容样本,该样本中的不同加密块集合可以形成不同加密链(例如由于样本生成256提取内容块、并且丢弃至少一些非内容块这样的方式)。例如参照上文描述的样本500,可以在样本中包括多个不同加密链504-506。在各种实施例中,内容的受保护版本也可以包括用于对经加密的内容样本进行解密的解密信息。例如,解密信息可以包括根据来自内容的不同受保护版本的非内容信息生成的至少一些初始化向量。在该方法的各种实施例中,解密信息可以包括将在解密期间使用的附加信息。例如针对代表相异加密链的每个块集合,解密信息可以指明该集合的大小(例如以块或者位为单位)和/或在样本内的位置。这样的信息可以用于确定哪些初始化向量在解密期间应用于样本中的哪些块。
在各种实施例中,尽管内容的所接收的受保护版本可以包括根据不同受保护版本的非内容信息(例如一个或者多个媒体传送流分组头标)生成的初始化向量,但是内容的受保护版本可以不包括该非内容信息中的至少一些非内容信息。在一些实施例中,受保护版本可以不包括不同受保护版本的非内容信息。例如,由于内容的受保护版本可以基于样本(即不分组化成媒体传送流),所以包括媒体传送头标信息的非内容信息可以在内容的受保护版本中并不需要。因而可以从内容的受保护版本中排除这一信息中的一些或者全部信息。
在一些实施例中,内容的受保护版本的经加密内容样本可以包括部分加密的样本。例如,如上文关于208的备选版本描述的那样,样本可以包括经加密的一些内容块集合(例如加密链)以及未加密的一个或者多个内容块。如上文描述的那样,使用这些部分加密技术可以提供对尝试在无恰当许可和/或解密密钥时使用内容的防范,而同时又节约计算资源和/或时间。在这些实施例中,上文描述的解密信息还可以包括标识这些块的信息。这样的信息可以用于确定无需解密的块。如在块704所示,该方法还可以包括使用解密信息来对一个或者多个经加密内容样本进行解密。这样的解密过程的一个示例包括上文关于图5描述的基于块的解密。在包括部分加密样本的实施例中,该方法可以包括根据在此描述的部分加密/解密技术来对未被样本头标信息标识为未经加密的加密块进行解密(例如同时又未对被样本头标信息指明为未加密的块尝试解密)。
在该方法的各种实施例中,不同受保护版本可以是包括如下内容的分组化版本,该分组化版本包括多个分组,每个分组包括内容信息和非内容信息。例如,不同受保护版本可以与上文描述的加密块206相似。在该方法的各种实施例中,该方法可以包括在媒体播放器应用中使用一个或者多个经解密内容样本。例如,客户端系统可以包括可执行成(例如在显示器、扬声器或者其它输出设备上)回放经解密内容的媒体播放器应用。在各种实施例中,一个或者多个经解密内容样本包括视频或者音频帧(诸如如上文描述的媒体节目的帧)。在各种实施例中,执行解密可以包括用与所述初始化向量相异的一个或者多个密码密钥(诸如上文描述的图5的内容加密密钥)对内容的多个块进行解密。
安全通信
在各种实施例中,所示框架的各种单元可以与相应公钥-私钥对(诸如在公钥基础结构(PKI)中利用的密钥对)相关联。在所示框架中,第一单元可以通过用第二单元的公钥加密数据来向第二单元安全地传送该数据。根据各种实施例,以这一方式,仅第二单元将能够对经加密的数据进行,以访问未经加密数据。例如,由于在各种实施例中可能需要了解私钥以对数据进行解密,并且由于第二单元可能是唯一了解它自己的私钥的单元,所以第二单元可能是唯一能够用正确私钥对数据进行解密的单元。注意,前述技术可以在各种实施例用于数据在图1的系统内的任何传送。一个示例包括在获取许可时向客户端系统“绑定”内容许可。例如,许可服务器可以获得客户端系统的公钥,并且在向回放设备传送许可之前用该公钥对内容许可进行加密。在这一示例中,仅客户端系统将能够对许可进行解密(由于回放设备可能唯一是了解正确私钥的单元)。在一些实施例中,给定的单元可以信任另一如下单元,该单元了解它自己的私钥(由此允许另一单元对用给定的单元的公钥加密的数据进行解密)。在各种实施例中,可以从公钥证书(诸如如PKI中的证书管理局(未图示)提供的证书)获得在此描述的公钥。这样的证书的一个示例为X.509证书(在其它情况下可以利用其它类型的公钥证书)。
示例计算机系统
可以在可以与各种其它设备交互的一个或者多个计算机系统上执行如在此描述的一种用于生成多个受保护的内容格式而无内容的冗余加密、以及对包括相异加密链的内容样本进行解密的系统和方法的各种实施例。一个这样的计算机系统为图8所示计算机系统800,该计算机系统可以在各种实施例中实施任何在图1-图7中图示的系统、设备、单元或者方法。例如,任何上述功能可以存储于存储器中作为处理器可执行的可执行程序指令822(例如处理器810可执行的程序指令)。在一个非限制示例中,指令822可以如图所示实施一个或者多个封装器组件125或者组装器组件145。在所示实施例中,计算机系统800包括经由输入/输出(I/O)接口830耦合到系统存储器820的一个或者多个存储器810。计算机系统800还包括耦合到I/O接口830的网络接口840和一个或者多个输入/输出设备850(诸如光标控制设备860、键盘870和显示器880)。在一些情况下,设想可以使用计算机系统800的单个实例来实现实施例,而在其它实施例中,多个这样的系统或者组成计算机系统800的多个节点可以被配置成托管各种实施例的不同部分或者实例。例如,在一个实施例中,一些单元可以经由计算机系统800的、与实施其它单元的那些节点相异的一个或者多个节点来实施。
在各种实施例中,计算机系统800可以是包括一个处理器810的单处理器系统,或者包括若干处理器810(例如两个、四个、八个或者另一适当数目)的多处理器系统。处理器810可以是能够执行指令的任何处理器。例如,在各种实施例中,处理器810可以是实施多种指令集架构(ISA)(诸如x96、PowerPC、SPARC或者MIPSISA或者任何其它适当ISA)中的任何ISA的通用或者嵌入式处理器。在多处理器系统中,每个处理器810可以共同(但是非必须)实施相同ISA。
系统存储器820可以被配置成存储处理器810可访问的程序指令822和/或数据832,在各种实施例中,程序指令822可以由处理器执行,以实施任何上文描述的封装组件、组装器组件、加密组件、解密组件或者客户端系统的功能。如图所示,在各种实施例中,数据832可以存储可以用来生成或者组装内容的其它受保护版本的一个或者多个经加密内容项130。在各种实施例中,可以使用任何适当存储器技术(诸如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/快闪型存储器或者任何其它类型的存储器)来实施系统存储器820。在所示实施例中,实施上文描述的框架的任何单元的程序指令和数据可以存储于系统存储器820内。在其它实施例中可以接收、发送或者在不同类型的计算机可存取介质上或者在与系统存储器820或者计算机系统800分离的相似介质上存储程序指令和/或数据。
在一个实施例中,I/O接口830可以被配置成协调在处理器810、系统存储器820和在计算机系统中的任何外围设备(包括网络接口840或者其它外围接口(诸如输入/输出设备850))之间的I/O业务。在一些实施例中,I/O接口830可以执行任何必要的协议、定时或者其它数据变换,以将来自一个组件(例如系统存储器820)的数据信号转换成适合于另一组件(例如处理器810)使用的格式。在一些实施例中,I/O接口830可以包括支持通过各种类型的外围总线(例如外围组件互连(PCI)总线标准或者通用串行总线(USB)标准的变体)而附着的设备。在一些实施例中,可以将I/O接口830的功能拆分成两个或者更多单独组件(例如北桥和南桥)。同样,在一些实施例中,可以将I/O接口830的一些功能或者所有功能(诸如与系统存储器820的接口)直接并入于处理器810中。
网络接口840可以被配置成允许在计算机系统800与附着到网络(例如网络885)的其它设备(诸如其它计算机系统(例如客户端系统155a-155b))之间,或者在计算机系统800的节点之间交换数据。在各种实施例中,网络接口840可以支持例如经由有线或者无线通用数据网络(诸如任何适当类型的以太网网络);经由电信/电话网络(诸如模拟语音网络或者数字光纤通信网络);经由存储区域网络(诸如光纤信道SAN),或者经由任何其它适当类型的网络和/或协议的通信。
输入/输出设备850可以在一些实施例中包括一个或者多个显示终端、键盘、键区、触板、扫描设备、语音或者光学识别设备,或者任何其它适于一个或者多个计算机系统800输入或者访问数据的设备。多个输入/输出设备850可以存在于计算机系统800中,或者可以分布于计算机系统800的各种节点上。在一些实施例中,相似输入/输出设备可以与计算机系统800分离,并且可以通过有线或者无线连接(诸如通过网络接口840)来与计算机系统800的一个或者多个节点交互。
在一些实施例中,所示计算机系统可以实施任何上述过程或者方法(诸如图2-3和5-7的过程或者方法)。在其它实施例中,可以包括不同单元和数据。
本领域技术人员将理解计算机系统800仅为示例性,而并非旨在限制实施例的范围。具体而言,计算机系统和设备可以包括可以执行各种实施例的所指示功能的硬件或者软件的任何组合(包括计算机、网络设备、因特网应用、PDA、无线电话、电视机顶盒、寻呼机,和/或任何这里描述的其它电子设备)。计算机系统800也可以连接到未图示的其它设备,或者代之以可以作为独立系统操作。此外,所示组件所提供的功能可以在一些实施例中组合于更少组件中或者分布于附加组件中。类似地,在一些实施例中,可以不提供一些所示组件的功能,和/或其它附加功能可能可用。
本领域技术人员也将理解,尽管将各种项图示为在使用之时存储于存储器中或者储存器上,但是为了存储器管理和数据完整的目的,可以在存储器与其它存储设备之间传送这些项或者它们的部分。备选地,在其它实施例中,一些或者所有软件组件可以在另一设备上的存储器中执行,并且经由计算机间通信来与所示计算机系统通信。一些或者所有系统组件或者数据结构还可以(例如作为指令或者结构化数据)存储于将由适当驱动(上文描述了其各种示例)读取的计算机可访问介质或者便携物品上。在一些实施例中,可以经由通信介质(诸如网络和/或无线链路)传送的传输媒介或者信号(诸如电、电磁或者数字信号),向计算机系统800发送在与计算机系统800分离的计算机可访问介质上存储的指令。总而言之,计算机可访问介质可以包括计算机可读存储介质或者存储器介质(诸如磁或者光学介质(例如盘或者DVD/CD-ROM)、易失性或者非易失性介质(诸如RAM(例如SDRAM、DDR、RDRAM、SRAM等)、ROM等))。在一些实施例中,计算机可访问介质可以包括经由通信介质(诸如网络和/或无线链路)传送的传输媒介或者信号(诸如电、电磁或者数字信号)。
在不同实施例中可以用软件、硬件或者其组合实施在此描述的方法。此外还可以改变方法顺序并且可以添加、记录、组合、省略、修改等各种要素。可以如从本公开内容中获益的本领域技术人员将想到的那样做出各种修改和改变。已经在特定实施例的背景中描述根据实施例的实现。这些实施例是为了示例性而非限制。诸多变化、修改、添加和改进是可能的。因而可以针对在此描述为单个实例的组件提供多个实例。在各种组件、操作和数据存储之间的边界某些程度上是随意的,并且在具体示例配置的背景中说明特定操作。设想其它功能分配,并且这些功能分配可以落入所附权利要求的范围内。最后,在示例配置中作为分离组件而呈现的结构和功能可以实施为组合结构或者组件。这些和其它变化、修改、添加和改进可以落入如在所附权利要求中限定的实施例范围内。

Claims (45)

1.一种计算机实施的方法,包括:
接收待保护的内容;
生成所述内容的第一受保护版本,所述生成包括将所述内容分组化成各自包括内容信息和非内容信息的多个分组,并且使用初始化向量以对所述经分组内容的多个块执行链式加密,其中作为所述链式加密的部分,根据所述非内容信息生成所述初始化向量中的至少一些初始化向量;以及
使用所述加密块以生成所述内容的第二受保护版本,而不对所述内容进行重新加密,其中所述内容的所述第二受保护版本包括多个经加密内容样本,其中每个经加密内容样本包括来自所述内容的所述第一受保护版本的多个加密块,其中针对给定的经加密内容样本,该样本中的不同加密块集合形成不同加密链;
其中所述内容的所述第二受保护版本包括用于对所述经加密内容样本进行解密的解密信息,所述解密信息包括根据所述第一受保护版本的所述非内容信息生成的所述初始化向量中的至少一些初始化向量,其中在所述内容的所述第二受保护版本内不包括所述第一受保护版本的所述非内容信息中的至少一些非内容信息。
2.根据权利要求1所述的计算机实施的方法,其中所述内容的所述第一受保护版本的所述多个分组是媒体传送流的部分,其中所述内容的所述第一受保护版本的所述非内容信息包括该传送流的传送头标信息。
3.根据权利要求1所述的计算机实施的方法,其中所述经加密内容样本中的一个或者多个经加密内容样本包括视频或者音频帧。
4.根据权利要求1所述的计算机实施的方法,其中执行所述链式加密包括用与所述初始化向量相异的一个或者多个密码密钥对所述多个块进行加密。
5.根据权利要求4所述的计算机实施的方法,其中对所述多个块执行链式加密包括用相应初始化向量和密码密钥顺序地对第一个块和多个后续块中的每个块进行加密,其中根据先前的加密块生成每个后续块的每个相应初始化向量。
6.根据权利要求5所述的计算机实施的方法,其中用块密码器对一个或者多个块进行加密,其中到所述块密码器的所述输入为密码密钥、第一初始化向量和所述多个块之一。
7.根据权利要求1所述的计算机实施的方法,其中所述内容的所述第二受保护版本附加地包括一个或者多个内容样本,每个内容样本包括未经加密的一个或者多个内容块。
8.根据权利要求1所述的计算机实施的方法,其中所述内容的所述第二受保护版本包括与所述样本中的一个或者多个样本相关联的未经加密的头标信息。
9.根据权利要求8所述的计算机实施的方法,其中针对给定的样本,所述未经加密的头标信息包括以下信息中的一条或者多条信息:指明所述样本是否被加密的信息、指明样本中的一个或者多个内容块是否被加密的信息、以及指明所述初始化向量中的一个或者多个初始化向量的信息。
10.根据权利要求1所述的计算机实施的方法,其中所述第一受保护版本和所述第二受保护版本遵循不同文件格式规范。
11.一种系统,包括:
存储器;以及
一个或者多个处理器,耦合到所述存储器,其中所述存储器包括可由所述一个或者多个处理器执行以进行以下操作的程序指令:
接收待保护的内容;
生成所述内容的第一受保护版本,所述生成包括将所述内容分组化成各自包括内容信息和非内容信息的多个分组,并且使用初始化向量以对所述经分组内容的多个块执行链式加密,其中作为所述链式加密的部分,根据所述非内容信息生成所述初始化向量中的至少一些初始化向量;以及
使用所述加密块以生成所述内容的第二受保护版本,而不对所述内容进行重新加密,其中所述内容的所述第二受保护版本包括多个经加密内容样本,其中每个经加密内容样本包括来自所述内容的所述第一受保护版本的多个加密块,其中针对给定的经加密内容样本,该样本中的不同加密块集合形成不同加密链;
其中所述内容的所述第二受保护版本包括用于对所述经加密内容样本进行解密的解密信息,所述解密信息包括根据所述第一受保护版本的所述非内容信息生成的所述初始化向量中的至少一些初始化向量,其中在所述内容的所述第二受保护版本内不包括所述第一受保护版本的所述非内容信息中的至少一些非内容信息。
12.根据权利要求11所述的系统,其中所述内容的所述第一受保护版本的所述多个分组是媒体传送流的部分,其中所述内容的所述第一受保护版本的所述非内容信息包括该传送流的传送头标信息。
13.根据权利要求11所述的系统,其中所述经加密内容样本中的一个或者多个经加密内容样本包括视频或者音频帧。
14.根据权利要求11所述的系统,其中为了执行所述链式加密包括将所述程序指令配置成用与所述初始化向量相异的一个或者多个密码密钥对所述多个块进行加密。
15.根据权利要求14所述的系统,其中为了对所述多个块执行所述链式加密,所述程序指令被配置成用相应初始化向量和密码密钥顺序对第一个块和多个后续块中的每个块进行加密,其中根据先前的加密块生成每个后续块的每个相应初始化向量。
16.根据权利要求15所述的系统,其中用块密码器加密一个或者多个块,其中到所述块密码器的所述输入为密码密钥、第一初始化向量和所述多个块之一。
17.根据权利要求11所述的系统,其中所述内容的所述第二受保护版本还附加地包括一个或者多个内容样本,每个内容样本包括未经加密的一个或者多个内容块。
18.根据权利要求11所述的系统,其中所述内容的所述第二受保护版本包括与所述样本中的一个或者多个样本相关联的未经加密的头标信息。
19.根据权利要求18所述的系统,其中针对给定的样本,所述未经加密的头标信息包括以下信息中的一条或者多条信息:指明所述样本是否被加密的信息、指明样本中的一个或者多个内容块是否被加密的信息、以及指明所述初始化向量中的一个或者多个初始化向量的信息。
20.根据权利要求11所述的系统,其中所述第一受保护版本和所述第二受保护版本遵循不同文件格式规范。
21.一种计算机可读存储介质,存储可在计算机上由计算机执行以进行以下操作的程序指令:
接收待保护的内容;
生成所述内容的第一受保护版本,所述生成包括将所述内容分组化成各自包括内容信息和非内容信息的多个分组,并且使用初始化向量以对所述经分组内容的多个块执行链式加密,其中作为所述链式加密的部分,根据所述非内容信息生成所述初始化向量中的至少一些初始化向量;以及
使用所述加密块以生成所述内容的第二受保护版本,而不对所述内容进行重新加密,其中所述内容的所述第二受保护版本包括多个经加密内容样本,其中每个经加密内容样本包括来自所述内容的所述第一受保护版本的多个加密块,其中针对给定的经加密内容样本,该样本中的不同加密块集合形成不同加密链;
其中所述内容的所述第二受保护版本包括用于对所述经加密内容样本进行解密的解密信息,所述解密信息包括根据所述第一受保护版本的所述非内容信息生成的所述初始化向量中的至少一些初始化向量,其中在所述内容的所述第二受保护版本内不包括所述第一受保护版本的所述非内容信息中的至少一些非内容信息。
22.根据权利要求21所述的介质,其中所述内容的所述第一受保护版本的所述多个分组是媒体传送流的部分,其中所述内容的所述第一受保护版本的所述非内容信息包括该传送流的传送头标信息。
23.根据权利要求21所述的介质,其中所述经加密内容样本中的一个或者多个经加密内容样本包括视频或者音频帧。
24.根据权利要求21所述的介质,其中为了执行所述链式加密包括将所述程序指令配置成用与所述初始化向量相异的一个或者多个密码密钥对所述多个块进行加密。
25.根据权利要求24所述的介质,其中为了所述多个块执行链式加密,所述程序指令被配置成用相应初始化向量和密码密钥顺序对第一个块和多个后续块中的每个块进行加密,其中根据先前的加密块生成每个后续块的每个相应初始化向量。
26.根据权利要求25所述的介质,其中用块密码器加密一个或者多个块,其中到所述块密码器的所述输入为密码密钥、第一初始化向量和所述多个块之一。
27.根据权利要求21所述的介质,其中所述内容的所述第二受保护版本还附加地包括一个或者多个内容样本,每个内容样本包括未经加密的一个或者多个内容块。
28.根据权利要求21所述的介质,其中所述内容的所述第二受保护版本包括与所述样本中的一个或者多个样本相关联的未经加密的头标信息。
29.根据权利要求28所述的介质,其中针对给定的样本,所述未经加密的头标信息包括以下信息中的一条或者多条信息:指明所述样本是否被加密的信息、指明样本中的一个或者多个内容块是否被加密的信息、以及指明所述初始化向量中的一个或者多个初始化向量的信息。
30.根据权利要求21所述的介质,其中所述第一受保护版本和所述第二受保护版本遵循不同文件格式规范。
31.一种计算机实施的方法,包括:
接收包括多个经加密内容样本的内容的受保护版本,其中每个经加密内容样本包括多个加密块,其中针对给定的经加密内容样本,该样本中的不同加密块集合形成不同加密链;其中所述内容的所述受保护版本还包括用于对所述经加密内容样本进行解密的解密信息,所述解密信息包括根据在所述内容的所述受保护版本中未包括的非内容信息生成的至少一些初始化向量,其中所述非内容信息来自所述内容的不同受保护版本;以及
使用所述解密信息来对所述经加密内容样本中的一个或者多个经加密内容样本进行解密。
32.根据权利要求31所述的计算机实施的方法,其中所述不同受保护版本是所述内容的包括多个分组的分组化版本,每个分组包括内容信息和非内容信息。
33.根据权利要求31所述的计算机实施的方法,还包括在媒体播放器应用中使用所述一个或者多个经解密内容样本。
34.根据权利要求31所述的计算机实施的方法,其中所述经解密内容样本中的一个或者多个经解密内容样本包括视频或者音频帧。
35.根据权利要求31所述的计算机实施的方法,其中执行所述解密包括用与所述初始化向量相异的一个或者多个密码密钥对所述多个块进行解密。
36.一种系统,包括:
存储器;以及
一个或者多个处理器,耦合到所述存储器,其中所述存储器包括可由所述一个或者多个处理器执行以进行以下操作的程序指令:
接收包括多个经加密内容样本的、内容的受保护版本,其中每个经加密内容样本包括多个加密块,其中针对给定的经加密内容样本,该样本中的不同加密块集合形成不同加密链;其中所述内容的所述受保护版本还包括用于对所述经加密内容样本进行解密的解密信息,所述解密信息包括根据在所述内容的所述受保护版本中未包括的非内容信息生成的至少一些初始化向量,其中所述非内容信息来自所述内容的不同受保护版本;以及
使用所述解密信息来对所述经加密内容样本中的一个或者多个经加密内容样本进行解密。
37.根据权利要求36所述的系统,其中所述不同受保护版本是所述内容的包括多个分组的分组化版本,每个分组包括内容信息和非内容信息。
38.根据权利要求36所述的系统,其中所述程序指令被配置成在媒体播放器应用中使用所述一个或者多个经解密内容样本。
39.根据权利要求36所述的系统,其中所述解密内容样本中的一个或者多个解密内容样本包括视频或者音频帧。
40.根据权利要求36所述的系统,其中为了执行所述解密,所述程序指令被配置成用与所述初始化向量相异的一个或者多个密码密钥对所述多个块进行解密。
41.一种计算机可读存储介质,存储可在计算机上由计算机执行以进行以下操作的程序指令:
接收包括多个经加密内容样本的、内容的受保护版本,其中每个经加密内容样本包括多个加密块,其中针对给定的经加密内容样本,该样本中的不同加密块集合形成不同加密链;其中所述内容的所述受保护版本还包括用于对所述经加密内容样本进行解密的解密信息,所述解密信息包括根据在所述内容的所述受保护版本中未包括的非内容信息生成的至少一些初始化向量,其中所述非内容信息来自所述内容的不同受保护版本;以及
使用所述解密信息来对所述经加密内容样本中的一个或者多个经加密内容样本进行解密。
42.根据权利要求41所述的介质,其中所述不同受保护版本是所述内容的包括多个分组的分组化版本,每个分组包括内容信息和非内容信息。
43.根据权利要求41所述的介质,其中所述程序指令被配置成在媒体播放器应用中使用所述一个或者多个经解密内容样本。
44.根据权利要求41所述的介质,其中所述经解密内容样本中的一个或者多个经解密内容样本包括视频或者音频帧。
45.根据权利要求41所述的介质,其中为了执行所述解密,所述程序指令被配置成用与所述初始化向量相异的一个或者多个密码密钥对所述多个块进行解密。
CN201110461391.3A 2010-12-29 2011-12-28 加密及解密的系统和方法 Active CN102622541B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US12/981,456 US8938619B2 (en) 2010-12-29 2010-12-29 System and method for decrypting content samples including distinct encryption chains
US12/981,456 2010-12-29
US12/981,455 2010-12-29
US12/981,455 US8527750B2 (en) 2010-12-29 2010-12-29 System and method for generating multiple protected content formats without redundant encryption of content

Publications (2)

Publication Number Publication Date
CN102622541A true CN102622541A (zh) 2012-08-01
CN102622541B CN102622541B (zh) 2016-02-24

Family

ID=46562456

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110461391.3A Active CN102622541B (zh) 2010-12-29 2011-12-28 加密及解密的系统和方法

Country Status (1)

Country Link
CN (1) CN102622541B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107318045A (zh) * 2016-04-27 2017-11-03 阿里巴巴集团控股有限公司 播放视频数据流的方法及装置
CN109391789A (zh) * 2017-08-14 2019-02-26 创盛视联数码科技(北京)有限公司 基于flv格式文件的加密系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030002665A1 (en) * 2000-11-06 2003-01-02 Yoichiro Sako Encrypting apparatus, encrypting method, decrypting apparatus, decrypting method, and storage medium
US20060137015A1 (en) * 2004-12-18 2006-06-22 Comcast Cable Holdings, Llc System and method for secure conditional access download and reconfiguration
US20060184790A1 (en) * 2004-03-26 2006-08-17 Microsoft Corporation Protecting elementary stream content
CN101123495A (zh) * 2007-09-07 2008-02-13 农革 一种数据加密、解密系统和方法
US7684568B2 (en) * 2003-11-24 2010-03-23 Intellon Corporation Encrypting data in a communication network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030002665A1 (en) * 2000-11-06 2003-01-02 Yoichiro Sako Encrypting apparatus, encrypting method, decrypting apparatus, decrypting method, and storage medium
US7684568B2 (en) * 2003-11-24 2010-03-23 Intellon Corporation Encrypting data in a communication network
US20060184790A1 (en) * 2004-03-26 2006-08-17 Microsoft Corporation Protecting elementary stream content
US20060137015A1 (en) * 2004-12-18 2006-06-22 Comcast Cable Holdings, Llc System and method for secure conditional access download and reconfiguration
CN101123495A (zh) * 2007-09-07 2008-02-13 农革 一种数据加密、解密系统和方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107318045A (zh) * 2016-04-27 2017-11-03 阿里巴巴集团控股有限公司 播放视频数据流的方法及装置
CN109391789A (zh) * 2017-08-14 2019-02-26 创盛视联数码科技(北京)有限公司 基于flv格式文件的加密系统

Also Published As

Publication number Publication date
CN102622541B (zh) 2016-02-24

Similar Documents

Publication Publication Date Title
US10110613B2 (en) Decrypting content samples including distinct encryption chains
US8527750B2 (en) System and method for generating multiple protected content formats without redundant encryption of content
US9225520B2 (en) System and method for deterministic generation of a common content encryption key on distinct encryption units
CN1728633B (zh) 提供访问加密内容的方法和设备及产生加密内容包的方法
CN102292931B (zh) 在单个容器文件中支持多个保护系统的方法和装置
US9450748B2 (en) Decryption of content including partial-block discard
US20160117518A1 (en) File Encryption/Decryption Device And File Encryption/Decryption Method
US8687809B2 (en) System and method for decryption of content including disconnected encryption chains
US10255450B2 (en) Customer load of field programmable gate arrays
CN101073238A (zh) 数字数据内容的保护
CN107302706B (zh) 图像防盗链方法、装置及电子设备
CN103136459B (zh) 一种加密数字内容的版权标识方法和系统
CN1783102A (zh) 用于拷贝保护的方法和系统
CN103942470A (zh) 一种具有溯源功能的电子音像制品版权管理方法
CN109495459B (zh) 媒体数据加密方法、系统、设备及存储介质
CN101807238A (zh) 内容分发装置、系统、方法和程序以及内容使用装置
US10127396B2 (en) System and method for local generation of streaming content with a hint track
CN103414733A (zh) Hls流媒体的播放方法及系统
Wang et al. CS-DRM: a cloud-based SIM DRM scheme for mobile internet
CN110611830A (zh) 一种视频处理方法、装置、设备及介质
CN110798714B (zh) 一种基于hls的本地视频播放系统及播放方法
CN102622541B (zh) 加密及解密的系统和方法
US10171429B2 (en) Providing security to video frames
CN108595920B (zh) 网络视听管理支撑版权服务子系统
KR101704703B1 (ko) 더미 코드를 사용하는 애플리케이션 코드 은닉 장치 및 이를 이용한 애플리케이션 코드 은닉 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant