首页> 中国专利> 用于加密包的安装时按规程内容生成

用于加密包的安装时按规程内容生成

摘要

提供了生成用于加密包的内容的系统和方法。可接收包括一个或多个防篡改散列部分(224A)和已加密数据(216A、220A)的包(204),其中该已加密数据包括一个或多个按规程内容生成指令(220A)。可解密已加密数据的包括该一个或多个按规程内容生成指令的部分并且可生成基于该一个或多个按规程内容生成指令的执行以及数据语料库的数据(232)。可加密所生成的数据并且可基于经加密的所生成的数据来生成防篡改散列。可将所生成的防篡改散列与所接收的包的防篡改散列部分中的一个或多个防篡改散列进行比较。

著录项

  • 公开/公告号CN113841141A

    专利类型发明专利

  • 公开/公告日2021-12-24

    原文格式PDF

  • 申请/专利权人 微软技术许可有限责任公司;

    申请/专利号CN202080034503.4

  • 发明设计人 S·L·库克;X·黄;

    申请日2020-04-01

  • 分类号G06F21/10(20060101);H04L29/08(20060101);A63F13/73(20060101);G06F8/65(20060101);A63F13/71(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人钱盛赟

  • 地址 美国华盛顿州

  • 入库时间 2023-06-19 13:48:08

说明书

背景技术

诸如图形和音频之类的游戏和/或游戏应用资产的大小可能很大,这通常导致相当大的网络传输和出口成本。例如,经由诸如因特网之类的网络分发的游戏可能在几千兆字节到几十千兆字节的数量级并且可能需要大量时间和带宽来下载。由此,减小游戏、应用资产和其他形式的数据(诸如视频和音频流)的大小是合乎需要的,以减少需要在网络上传输的数据量。此外,通过减小与将要下载的游戏和/或应用资产相关联的大小,所下载的信息的可靠性提高,因为数据丢失、损坏或以其他方式变得不可用的机会更少了。

本文中所公开的各方面正是就这些和其他一般考虑事项而作出的。而且,尽管可能讨论了相对具体的问题,但是应当理解,各示例不应被限于解决本背景技术中或本公开中其他地方所标识的具体问题。

本公开的示例描述了生成用于加密包的内容的系统和方法。例如,诸如游戏或作品(title)之类的供安装在游戏控制台或其他设备的包可以在该游戏控制台或其他设备处接收;该包可包括一个或多个防篡改散列部分和已加密数据,其中该已加密数据包括静态内容,但缺少在该游戏控制台或设备处成功运行该游戏所需的所有内容。该包还可包括详述了如何生成缺失内容的一个或多个按规程内容生成指令集以及较小的数据语料库以用于生成在安装时安装所需的内容。因此,可解密一个或多个按规程内容生成指令并且可生成基于该一个或多个按规程内容生成指令的执行的数据。可加密所生成的数据并且可基于所生成的已加密数据来生成防篡改散列。可将所生成的防篡改散列与所接收的包的防篡改散列部分中的一个或多个防篡改散列进行比较。因此,如果防篡改散列匹配,则安装包是正确的、未被损坏的、或以其他方式是完整的。如果防篡改散列不匹配,则游戏控制台或其他设备可以从诸如内容提供者的服务器之类的另一设备下载所生成的数据或者包含所生成的数据的整个安装包中的一者或多者。

提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的概念的选集。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。各示例的附加方面、特征、和/或优点将在以下描述中阐述,并且根据该描述而部分地显而易见,或者可通过实施本发明而获知。

参考以下附图描述非限制性和非穷尽的示例。

图1示出了根据本公开的各方面的内容更新管理系统的细节;

图2描绘了根据本公开的示例的前按规程(Pre-Procedural)内容生成包和后按规程(Post-Procedural)内容生成包、文件和/或映像的细节;

图3描绘了根据本公开的示例的涉及前按规程内容生成包、文件和/或映像创建和按规程生成输出创建过程的细节;

图4描绘了根据本公开的示例的涉及前按规程内容生成包、文件和/或映像安装和按规程生成输出创建过程的细节;

图5描绘了涉及前按规程内容生成包、文件和/或映像安装和按规程生成输出创建过程的附加细节;

图6描绘了根据本公开的示例的用于生成前按规程内容生成包、文件和/或映像的方法的细节;

图7描绘了根据本公开的示例的用于安装和生成按规程生成输出的方法的细节;

图8描绘了根据本公开的示例的用于确认按规程生成输出的方法的细节;

图9是解说可用来实践本公开的各方面的计算设备的示例物理组件的框图;

图10A是可用来实践本公开的各方面的计算设备的简化框图;

图10B是可用来实践本公开的各方面的移动计算设备的另一简化框图;以及

图11是可在其中实施本公开的各方面的分布式计算系统的简化框图。

以下将参考形成本公开的一部分并且示出各具体示例方面的附图来更详尽地描述本公开的各个方面。然而,本公开的不同方面可以以许多不同的形式来实现,并且不应被解释成限于本文中所阐述的各方面;相反,提供这些方面以使得本公开将更为透彻和完整,并且这些方面会将各方面的范围完整地传达给本领域技术人员。各方面可以被实现为方法、系统或设备。相应地,这些方面可采用硬件实现的形式、全软件实现的形式或者结合软件和硬件方面的实现的形式。因此,以下详细描述不应被视为具有限制意义。

游戏和/或游戏应用资产(诸如但不限于图形和音频)的大小可能很大,这通常导致相当大的网络传输和出口成本。根据本公开的示例,游戏和/或游戏应用资产可以在安装时从元数据集(经压缩的“种子”数据,或者经由机器学习方法)计算出并且能够减少要下载的数据量。即,由于所下载的数据被用来生成与游戏和/或游戏应用资产相关联的附加内容,因此需要下载的数据更少,因为所下载的数据不包含将在下载后生成的内容。根据本公开的示例,内容生成过程是在安装期间执行的,因为在运行时操作压缩形式的游戏和/或游戏应用资产通常是低效的,并且需要比通常在游戏环境中分配更多的计算资源。在安装时生成这些大小通常更大的“有条件”应用资产以供运行时使用在其中数据被静态加密(encrypted-at-rest)并驻留在存储位置的环境中通常是不可能的,因为已加密数据无法以可信且可验证方式被轻易地修改。

根据本公开的示例,软件包、应用、游戏和/或作品可以在内容生成模式中运行并且从被包括在所下载的数据中的原始“经压缩”或“种子”形式中生成其资产;因此,所生成的资产可以以加密形式被写回到游戏或作品、包中,并且原始种子资产可以在需要时被删除。因此,本公开的示例不仅减少可能需要传输和/或下载的数据量,而且通过删除原始种子资产,附加存储空间可以变得可用。

最终的游戏或作品、文件然后可对照安装包的“黄金标准”主版本进行验证。“黄金标准”主版本可包括但不限于盘上的包的理想形式,该形式包括用于所生成的数据的完整性和确认散列。由此,诸如防篡改散列之类的确认散列确保按规程内容生成过程不被篡改并且文件具有所预期的形式。

在文件被意外修改或者从种子数据中生成文件出乎意料地失败的情况下,散列确认校验可能失败并且可从内容提供者下载“黄金标准”文件数据,就像是常规的已加密文件下载那样。这确保该过程是稳健的,并且提供针对非预期或不确定的结果的保护措施。

因此,并且在一些示例中,提供两个或更多个文件包,这两个或更多个文件包由被布置为单个二进制映像的一系列串接文件组成,具有标头和元数据以详述文件名信息、每个文件的元数据、映像内的位置、以及该文件是“种子”数据还是“最终”数据。每个包还可包含完整性确认散列树,诸如但不限于散列数组、默克尔树、散列链和/或散列列表,该完整性确认散列树可映射到包文件的数据内的每个数据块并且允许文件数据被验证为包含所预期的已知数据集。第一软件包可被称为前按规程内容生成(前PCG)包,而第二软件包可被称为后按规程内容生成(后PCG)包,这两个软件包在被确认时可以与“黄金标准”主版本相同或相似。一个或多个前PCG包可包括在安装时按规程生成内容所需的数据和指令。在一些示例中,一个或多个前PCG包可被用来提供(即,生成)用于游戏和/或应用资产的数据。后PCG包可包含所有这些数据和按规程生成内容所需的任何可执行文件,以及内容生成过程的最终预期输出文件。

由此,在安装时,在按规程生成的内容源材料已被安装后,应用、脚本或被包含在前PCG包中的其他项可以在内容生成模式中运行。内容生成模式包括从前PCG包中读取已解密文件并且将一个或多个所得文件写出到安装包的能力。此类文件然后可以在使用前对照完整性散列树来进行确认。因此,在对任何所写文件的完整性散列树确认失败的情况下,可以从来自内容提供者的“黄金标准”包下载该文件。由此,可做出最后一搏(last-ditch)尝试以恢复数据,以使其能被安心地、安全地且在保证完整性的情况下使用。

由此,内容生成应用、脚本或包中的其他项可包括但不限于:读取包含指令和/或种子数据的现有文件;从指令和/或种子数据中生成新文件;以特定格式向存储位置提供所生成的内容;将输出数据转码成被优化以供在GPU上使用或者以其他方式针对特定硬件配置和能力的格式;以及在输出和完成文件后对照散列树确认该文件。如果发生散列失配,则所生成的文件可被删除并用来自“黄金标准”包的已知良好版本替代。

在一些示例中,内容生成过程可取决于它所应用于的目标系统而变化。例如,具有用于不同目标硬件架构的多个“黄金标准”包可以是合需的。即,对于不同目标硬件架构中的每一者,输出数据可显著变化。由于可为每一架构生成不同的“黄金标准”参考包集合,因此所生成的文件仍可被验证和确认。在一些示例中,诸实现可以在一个包内或者跨包使用相似机制。由此,对于给定安装的每一目标属性组合可需要已知的“黄金标准”参考包。

内容生成操作可被执行为,但不限于:应用正在运行时的后台进程;操作系统和其他应用正在运行时的特殊后台进程;和/或作为安装的一部分的仅仅前台进程。按规程内容生成过程可包括但不限于:应用于数据的一个或多个压缩/解压编解码器;将所生成的数据重新压缩成针对特定硬件配置和能力的特定形式(例如:以针对特定GPU版本的纹理格式提供数据);使用用于从压缩/独特形式中生成数据的机器学习方法,用于压缩、传送或分发数据的大型语料库方法,或其他机制(例如,从标记语言中生成语音并且然后应用修正以将输出定制成匹配演员的声音,结果小于典型的音频压缩方法)。

根据本公开的示例,通过生成包含按规程生成的内容的包并且然后基于包括按规程生成的内容的包来生成防篡改散列,按规程生成的内容可被移除以便于传输。因此,所传送的包比包括按规程生成的内容的包小得多。另外,一旦按规程生成的内容被“生成”,就可使用防篡改散列来验证所“生成”的内容的完整性和真实性。因此,至少一个技术好处可包括在通信网络上传送更小的安装包。在一些示例中,至少一个技术好处可包括基于目标硬件来调整一个或多个规程,如先前讨论的。此外,至少一个技术好处可包括以安全方式生成用于已加密文件的内容。

图1描绘了根据本公开的示例的涉及安装所分发的已加密内容以供在安装时针对一个或多个系统进行按规程内容生成的系统。更具体地,可提供如图1所示的内容分发管理系统100。内容分发管理系统100一般可包括一个或多个内容提供者102;内容提供者102可包括一个或多个服务器104A-104D。服务器104A-104D中的每一者可包括被配置成生成游戏、作品和/或应用资产内容包以供在目标系统处安装的内容生成器108。另选地或另外地,游戏、作品和/或应用资产内容包可由例如软件开发者在内容分发管理系统100之外生成并提供给目标系统。在一些示例中,内容生成器108可接收静态内容文件以及按规程生成的内容文件,并且生成用于该游戏、作品和/或游戏应用资产的前按规程内容生成(前PCG)包并将该前PCG包提供给系统或客户端设备以供安装。

根据本公开的示例,前PCG包120可经由网络112被传送至一个或多个端点,也被称为用户设备和/或客户端设备116。一个或多个客户端设备116A-116E可接收前PCG包120以供安装。在一些示例中,客户端设备116A-116E可以对应于游戏控制台116A、客户端设备116B、智能电话116C和/或平板电脑116E。在一些实例中,端点可以对应于服务器116D;服务器116D可以运行会话或以其他方式需要安装前PCG包120。作为另一非限制性示例,至少一个客户端设备116A-116E可以是被配置成允许用户使用应用的任何设备,诸如举例而言智能电话、平板计算机、台式计算机、膝上型计算机设备、游戏设备、媒体设备、智能电视、多媒体电缆/电视盒、智能电话配件设备、工业机械、家用电器、恒温器、平板配件设备、个人数字助理(PDA)或其他物联网(IOT)设备。

图2描绘了根据本公开的示例的用于游戏或作品的前按规程内容生成(前PCG)包204的附加细节。前PCG包204可对应于或以其他方式具有映像形式,诸如映像文件。即,包可以按包含盘卷的内容和结构的计算机文件的形式来分发和/或存储,其中盘卷或逻辑构造一般是具有单个文件系统的单个可访问存储区域。前PCG包204可包括但不限于标头部分208A、元数据部分212A、静态文件部分216A、按规程内容生成部分220A以及散列部分224A。标头部分208A可包括一般描述前PCG包204的信息。例如,标头部分208A可包括但不限于前PCG包204被创建的日期、前PCG包204被最新修改的日期、前PCG包204的大小、和/或关于前PCG包204的根散列信息。标头部分208A可由内容提供者102和/或客户端设备116A-116E中的一者或多者来访问。元数据部分212A可包括描述前PCG包204的内容的信息。例如,元数据部分212A可包括但不限于文件目录列表信息、文件系统描述、文件系统、对应于映像文件的文件系统、文件位置信息、数据位置信息、和/或块位置信息。静态文件部分216A通常包括静态文件和/或通常不取决于前PCG包204所位于和/或被安装在其中的设备的其他内容。作为一个非限制性示例,静态文件部分216A可包括前PCG包204安装和/或其他应用资产内容所需的文件。按规程内容生成部分220A包括提供诸如应用资产内容等按规程生成的内容的指令和种子数据。例如,按规程内容生成部分220A可包括在被执行时生成附加内容(诸如但不限于纹理、图形内容和音频内容、等级数据等)的指令。散列部分224A一般包括防篡改散列,防篡改散列覆盖前PCG包204中的所有文件和数据部分,无论是与前PCG包204一起分发的还是经由按规程内容生成部分220A生成的。防篡改散列可使用被用来将任意大小的数据映射到固定大小的数据的一个或多个散列函数来生成。散列函数返回的值被称为散列值、散列码、散列和,或简称为散列。由此,防篡改散列函数允许容易地验证一些输入数据是否映射到给定散列值。散列函数的示例是SHA-2。

根据本公开的示例,图2描绘了与前按规程内容生成包204相似的后按规程内容生成(后PCG)包228。后PCG包228可包括但不限于可以与标头部分208A相同或相似的标头部分208B、可以与元数据部分212A相同或相似的元数据部分212B、可以与静态文件部分216A相同或相似的静态文件部分216B、可以与按规程内容生成部分220A相同或相似的按规程内容生成部分220B、以及可以与散列部分224A相同或相似的散列部分224B。后PCG包228通过包括以下内容来不同于前PCG包204:利用位于前PCG包204的按规程内容生成部分220A中的一个或多个规程和/或种子来生成以生成或以其他方式创建按规程生成输出部分232的内容。即,一旦前PCG包204已被下载至例如客户端设备116A-E,则可执行驻留在按规程内容生成部分220A内的一个或多个应用、可执行文件、脚本和/或规程。通过执行驻留在按规程内容生成部分220A中的一个或多个应用、可执行文件、脚本和/或规程,生成或以其他方式创建按规程生成输出部分232。因为散列部分224A包括用于按规程生成输出部分232的防篡改散列,所以散列部分224A可以与散列部分224B相同。即,后PCG包228的散列部分224B中的例如默克尔树可匹配前PCG包204的散列部分224A。

根据本公开的示例,图3描绘了关于生成前PCG包(例如,前PCG包204)的附加细节。在一些示例中,前PCG包可以在内容提供者102处在例如内容生成器108中创建。内容提供者102和/或内容生成器108可以在308读取静态数据312。静态数据312可以与参照图2的静态文件部分216A描述的静态数据或静态文件相同或相似。在一些示例中,静态数据312可包括静态文件部分304A和另一部分316A。部分316A可对应于标头部分和/或元数据部分。内容提供者和/或内容生成器108可以在320读取按规程内容生成代码和/或按规程内容生成文件324A。按规程内容生成代码可以与参照图2描述的按规程内容生成部分220A相同或相似。此外且如图3所示,按规程内容生成代码和/或按规程内容生成文件324可包括一个或多个种子部分322和/或一个或多个规程部分326。一个或多个种子部分322可以是可特定于或不特定于目标平台的附加数据、文件和/或组块。该一个或多个规程部分326可对应于操作种子部分322和/或静态数据304的其他数据的一个或多个算法、可执行文件和/或规程。按规程内容生成代码和/或按规程内容生成文件324可被添加到包括静态数据的静态文件部分304A。图3所示的中间文件328描绘了根据本公开的示例的与包括静态数据的静态文件部分304A相组合的按规程内容生成代码和/或按规程内容生成文件324。部分316B可对应于标头部分和/或元数据部分。

在332,内容提供者102和/或内容生成器108可利用按规程内容生成代码和/或按规程内容生成文件324来生成例如按规程生成输出340。按规程生成输出340A可以与图2的按规程生成输出部分232相同或相似。例如,可执行驻留在按规程内容生成代码和/或按规程内容生成文件324A内的一个或多个应用、可执行文件、脚本和/或规程。通过执行驻留在按规程内容生成代码和/或按规程内容生成文件324A内的一个或多个应用、可执行文件、脚本和/或规程,生成或以其他方式创建按规程生成输出340A。因此,中间文件336描绘了包括静态数据的静态文件部分304A、按规程内容生成代码和/或按规程内容生成文件324A以及按规程生成输出340A,其中部分316C可对应于标头部分和/或元数据部分。

在344,内容提供者102和/或内容生成器108可接收加密密钥342。该加密密钥可由内容提供者102维护的权利管理系统来提供。在一些实例中,加密密钥342可以是用于加密中间文件336的一个或多个部分的加密密钥;中间文件336的一个或多个部分可使用例如AES-256、DES、FIPS或其他加密算法来加密。加密密钥342可对应于单个加密密钥或者可对应于多个加密密钥。344的结果可以是中间文件,诸如加密包348。加密包348可包括与未加密部分或者明文部分304A相对应的已加密文件部分304B。加密包348可包括与未加密部分或者明文部分324A相对应的已加密部分324B。加密包348可包括与未加密部分或者明文部分340A相对应的已加密部分340B。类似于中间文件336,加密包348可包括标头部分和/或元数据部分316D。

在356,内容提供者102和/或内容生成器108可基于已加密文件部分304B、已加密部分324B和/或已加密部分340B来生成防篡改散列。在某些方面,防篡改散列可基于已加密文件部分304B、已加密部分324B、已加密部分340B和标头部分和/或元数据部分316D。因此,所生成的散列部分364可被添加到加密包348以产生中间文件360。中间文件360可包括已加密文件部分304B、已加密部分324B、已加密部分340B和标头部分和/或元数据部分316E。根据本公开的示例,中间文件可被分发为内容包。另选地或另外地,中间文件360的大小(诸如文件大小)可通过移除对应于按规程生成输出340A的已加密部分340B来减小。即,因为按规程生成输出340A可基于按规程内容生成代码和/或按规程内容生成文件324和/或静态文件部分304A来生成,所以已加密部分340B可被移除,从而导致供传输和/或存储的文件大小减小。因此,可以在422生成前PCG包368。前PCG包368可以与前PCG包204相同或相似。

根据本公开的示例,图4描绘了关于基于前PCG包368来生成按规程内容生成的附加细节。更具体地,客户端设备116A-E可经由通信接口来接收前PCG包368以供安装。在404,客户端设备116A-E可读取、存储和/或安装前PCG包368的至少一部分。例如,前PCG包368在已被存储时可对应于前PCG包408。即,已加密文件部分304B可对应于或以其他方式等同于已加密静态文件部分412A。已加密的按规程内容生成代码和/或按规程内容生成文件324B可对应于或以其他方式等同于已加密的按规程内容生成代码和/或按规程内容生成文件416A。标头部分和/或元数据部分316E可对应于或以其他方式等同于标头部分和/或元数据部分420。最后,所生成的散列部分364可对应于或以其他方式等同于所生成的散列部分424。

一旦已加密静态文件部分412A和已加密的按规程内容生成代码和/或按规程内容生成文件416A的安装已经完成,就可保留或以其他方式标识一个或多个存储位置以用于按规程生成输出。例如,存储空间432可被保留以用于基于静态文件部分412A和/或按规程内容生成代码和/或按规程内容生成文件416A来生成的按规程生成输出。由于标头和/或元数据部分420包括标识符和/或列出应被包括在后PCG包中的所有文件,因此所保留的存储空间432的大小可基于标头和/或元数据部分420中的信息。如图4所描绘的,保留存储空间432可以是中间文件428的一部分。

另外,一旦已加密静态文件部分412A以及已加密的按规程内容生成代码和/或按规程内容生成文件416A的安装已完成,就可以在436利用来自散列部分424的防篡改散列来确认静态文件部分412A以及已加密的按规程内容生成代码和/或按规程内容生成文件416A中的一者或两者。例如,可生成静态文件部分412A的一个或多个散列并将其与该静态文件部分412A的已被存储或以其他方式与散列部分424相关联的一个或多个散列相比较。如果防篡改散列匹配,则已加密静态文件部分412A的下载、传输和/或安装被认为是已被确认的。类似地,可生成已加密的按规程内容生成代码和/或按规程内容生成文件416A的一个或多个散列并将其与该已加密的按规程内容生成代码和/或按规程内容生成文件416A的已被存储或以其他方式与散列部分424相关联的一个或多个散列相比较。如果防篡改散列匹配,则已加密的按规程内容生成代码和/或按规程内容生成文件416A的下载、传输和/或安装被认为是已被确认的。

在444,可访问密钥材料440A以解密已加密的按规程内容生成代码和/或按规程内容生成文件416A的至少一部分。密钥材料440A可以是与342相同的密钥并且可由内容提供者102维护的权利管理系统来提供。在一些实例中,密钥材料440A可以是用于解密静态文件部分412A和/或按规程内容生成代码和/或按规程内容生成文件416A的一个或多个部分的加密密钥。密钥材料440A可对应于单个加密密钥或者可对应于多个加密密钥。在444,可利用密钥材料440A来解密按规程内容生成代码和/或按规程内容生成文件416A的一个或多个部分。解密已加密的按规程内容生成代码和/或按规程内容生成文件416A的结果是未加密的按规程内容生成代码和/或按规程内容生成文件416B。

然后在448可使用未加密的按规程内容生成代码和/或按规程内容生成文件416B来生成或以其他方式创建按规程生成输出456B。客户端设备116A-E可以在448读取按规程内容生成代码和/或按规程内容生成文件416B。按规程内容生成代码可以与参照图2描述的按规程内容生成部分220A相同或相似。此外且如图4所示,按规程内容生成代码和/或按规程内容生成文件416B可包括一个或多个种子部分422和/或一个或多个规程部分426。一个或多个种子部分422可以与一个或多个种子部分322相同或相似并且一个或多个规程部分426可以与一个或多个规程部分326相同或相似。因此,一个或多个种子部分422可以是可特定于或不特定于目标平台的附加数据、文件和/或组块。该一个或多个规程部分426可对应于操作种子部分422和/或其他数据460的一个或多个算法、规程、可执行文件和/或规程。其他数据460可基于已加密(或已解密)静态文件部分412A来源自静态文件。在448,可执行或以其他方式运行对种子部分422和/或其他数据460进行操作的一个或多个算法、规程、可执行文件和/或规程,并且可产生按规程生成输出456B。示出了中间文件452,该中间文件描绘了具有已加密静态文件部分412A、未加密的按规程内容生成代码和/或按规程内容生成文件416A以及未加密的按规程生成输出456B的包。

在462,可访问密钥材料440B以加密按规程内容生成代码和/或按规程内容生成文件416A以及未加密的按规程生成输出456B。密钥材料440B可以是与342和/或440A相同的密钥并且可由内容提供者102维护的权利管理系统来提供。密钥材料440B可对应于单个加密密钥或者可对应于多个加密密钥。在462加密已加密的按规程内容生成代码和/或按规程内容生成文件416B以及按规程生成输出456B的结果是后PCG包468。后PCG包468可以与图3的中间文件360相同或相似。在464,后PCG包468的一个或多个部分可利用来自散列部分424的防篡改散列来确认。例如,可生成按规程生成输出456A的一个或多个散列并将其与按规程生成输出456A的已被存储或以其他方式与散列部分424相关联的一个或多个散列相比较。如果防篡改散列匹配,则按规程生成输出的生成被认为是已被确认的。如果防篡改散列不匹配,则可下载或以其他方式从内容提供者(诸如内容提供者102)获取后PCG包468。

例如,在464防篡改散列不匹配的情况下,可再次执行图4中描绘的用于基于前PCG包内容来生成按规程生成内容的过程。替换地或者附加地,黄金标准版本中防篡改散列与黄金标准版本的防篡改散列不匹配的部分将从服务器下载并且被应用于后PCG包468(数据直接被复制)。散列随后被再次确认。因此,回退和修复过程可被执行,从而允许修复按规程生成的内容而无需依靠下载整个黄金标准版本,以使得仅需要修复散列树并且使所生成的数据与黄金标准版本的数据匹配所需的最少量的数据。替换地或附加地,驻留在内容提供者102处的整个黄金标准版本可被下载。例如,可以向内容提供者102请求黄金标准版本映像。

图5描绘了根据本公开的各示例的内容分发过程的附加细节。如先前讨论的,内容提供者102可包括内容生成器108;内容生成器108可生成前PCG包502并将前PCG包52分发至诸如端点504之类的端点设备。端点504可以对应于例如游戏控制台并且可以与先前所讨论的端点设备116A-116E中的一者或多者相同或相似。

端点504可包括管理程序部分508、系统操作系统512以及游戏或作品操作系统516。管理程序部分508可以是创建和/或运行虚拟机或虚拟环境中的操作系统的软件、固件或硬件。即,管理程序部分508可为要执行的一个或多个操作系统提供环境。管理程序部分508可以协调对一个或多个系统资源(诸如存储位置560、一个或多个处理器、一个或多个通信接口、存储器等)的访问。游戏操作系统516可以作为供作品安装和执行的空间或位置来提供。例如,游戏操作系统516可包括作品空间520和作品内容524。作品空间520可以是作品执行和存储数据、生成的内容等所需的空间。作品内容524可对应于已对照例如“黄金标准”包被确认的作品包的内容。

系统操作系统512可以协调游戏操作系统516与端点504的其他部分的交互。例如,系统操作系统512可包括被配置成解密前PCG包502的一个或多个部分的安全处理器528。此外,系统操作系统512可促成用户权利过程,以使得获取用于解密前PCG包502的正确解密密钥。此类密钥可以与用户帐户相关联(诸如当用户登录到帐户并且已经被正确验证和/或被授权访问作品和/或更新包时)。替换地或附加地,用户权利/密钥管理器532可以从与介质(诸如举例而言DVD和/或CD)相关联的外部位置获得一个或多个密钥。

根据本公开的示例,系统操作系统512可经由管理程序部分508来接收或以其他方式访问前PCG包502并将前PCG包502作为前PCG包536存储在存储部分560中。前PCG包536可以与图3中讨论的前PCG包368相同或相似。安全处理器528可解密前PCG包536的一个或多个部分并且将已解密的前PCG包536的一个或多个部分提供给游戏操作系统516。游戏操作系统516然后可利用对应于按规程内容生成代码和/或按规程内容生成文件544的未加密数据来生成按规程生成输出,如先前在图4中讨论的。当游戏操作系统516完成生成内容时,游戏操作系统516可指令安全处理器528用恰当的安全密钥来加密新生成的内容。

游戏操作系统516然后可指令安全处理器528通过基于已加密的按规程生成输出来生成防篡改散列并将所生成的防篡改散列与前PCG包502中接收到的防篡改散列相比较来验证对应于已加密的按规程生成输出的已加密的按规程生成输出556匹配在“黄金标准”映像中找到的已加密部分。即,防篡改散列552通常对应于防篡改散列424,如先前讨论的。如果防篡改散列552匹配基于已加密的按规程生成输出556所生成的防篡改散列,则按规程生成输出556内容被确定为是正确的或以其他方式被确认。因此,后PCG包564可包括相同的内容或以其他方式匹配“黄金标准”包。即,静态文件部分540、按规程内容生成代码和/或按规程内容生成文件544、按规程生成输出556、标头和/或元数据部分548以及防篡改散列552可等同于作品内容的已加密的“黄金标准”版本。

虽然安全处理器528和用户权利/密钥管理器532被描绘为是系统操作系统512的一部分或以其他方式在系统操作系统512处运行,但安全处理器528和/或用户权利/密钥管理器532可以在端点504的任何位置执行。例如,前PCG包502的解密可以在游戏操作系统516内进行;后PCG包564的加密可以在游戏操作系统516内进行。在一些示例中,游戏操作系统512可利用对应于按规程内容生成代码和/或按规程内容生成文件544的未加密数据来生成按规程生成输出,如先前在图4中讨论的。即,后PCG包564的生成可以在系统操作系统处执行。

根据本公开的示例,端点504可执行单个操作系统或以其他方式被称为通用操作环境。即,且作为示例,端点504可包括单个系统操作系统,可以在该单个操作系统处执行前PCG包502的解密,可以在该单个操作系统下利用对应于按规程内容生成代码和/或按规程内容生成文件544的未加密数据来生成按规程生成输出(如先前在图4中讨论的),并且可以在该单个操作系统下加密这一数据以生成后PCG包564。由此,如在图2、图4和图5中描述的生成后PCG文件564中包括的一个或多个步骤可以在客户端计算机、智能电话或其他设备的通用环境内进行。

图6描绘了根据本公开的示例的用于创建前PCG包的方法600的细节。方法600的各步骤的大致次序在图6中示出。一般而言,方法600开始于起始操作604并结束于生成前PCG包文件和/或“黄金标准”映像、包或文件中的一者或多者以供分发。方法600可包括更多或更少的步骤,或者可与图6中所示的步骤不同地安排各步骤的次序。方法600可作为由计算机系统执行并编码或存储在计算机可读介质上的计算机可执行指令集合来执行。此外,方法600可以由与处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、片上系统(SOC)或其他硬件设备相关联的门或电路来执行。在下文中,方法600应参考结合图1-5描述的系统、组件、模块、软件、数据结构、用户接口等来解释。

方法600开始于604,接收创建供分发的文件、包、或映像的指令。在608,可接收一个或多个静态文件。该一个或多个静态文件可位于类似区域中或以其他方式被组装到静态文件部分(诸如举例而言先前描述的静态文件部分304A和/或312中的一者或多者)中。方法600可流转至612,其中可添加按规程内容生成代码和/或按规程内容生成文件。例如,按规程内容生成代码和/或按规程内容生成文件可被添加到包括静态文件部分的文件、映像或包。按规程内容生成代码和/或按规程内容生成文件可以与按规程内容生成代码和/或按规程内容生成文件324相同或相似。例如,按规程内容生成代码和/或按规程内容生成文件可包括一个或多个种子部分和/或一个或多个规程部分。该一个或多个种子部分可以与先前描述的一个或多个种子部分322相同或相似。该一个或多个规程部分可以与先前描述的一个或多个规程部分326相同或相似。该方法然后可生成按规程生成输出的一个或多个最终输出版本。在一些实例中,按规程内容生成代码和/或按规程内容生成文件可以是因目标系统而异的,以使得第一按规程生成输出对应于特定目标系统,且第二按规程生成输出对应于第二特定目标系统。最终前PCG包可包括第一或第二按规程生成输出中的一者或多者。

该方法可移至620,其中可使用一个或多个加密密钥来加密静态文件部分、按规程内容生成代码和/或按规程内容生成文件以及按规程生成输出,如先前讨论的。在624,该方法可继续生成用于静态文件、按规程内容生成代码和/或按规程内容生成文件以及按规程生成输出的防篡改散列。这些防篡改散列可作为包元数据被存储在散列部分中。方法600然后可以在628确定到目前为止创建的包是否应被减小。如果所创建的包的大小应被减小,则方法600可继续至640,其中可以从包、文件或映像中移除按规程生成输出以创建前PCG包。在636,可将该前PCG包分发至内容提供者102的例如一个或多个服务器108。在一些实例中,在636可准备好该前PCG包以供打印和/或被打印到物理介质,诸如DVD介质。如果该文件的大小将不被减小,则可以在632将包括按规程生成输出的更大文件、包或映像作为黄金主包分发至一个或多个服务器,并且然后在636分发至内容提供者102的例如一个或多个服务器108。在一些实例中,可以在636准备好包括按规程生成输出的更大文件、包或映像以供打印和/或被打印到物理介质。方法600可在644处结束。

图7描绘了根本公开的示例的用于在客户端设备处安装前PCG包、文件或映像并且然后生成按规程生成输出的方法700的细节。方法700的各步骤的大致次序在图7中示出。一般而言,方法700以开始操作704开始并以结束操作724结束。方法700可包括更多或更少的步骤,或者可与图7中所示的步骤不同地安排各步骤的次序。方法700可作为由计算机系统执行并编码或存储在计算机可读介质上的计算机可执行指令集合来执行。此外,方法700可以由与处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、片上系统(SOC)或其他硬件设备相关联的门或电路来执行。在下文中,方法700应参考结合图1-6描述的系统、组件、模块、软件、数据结构、用户接口等来解释。

方法700开始于704,其中可以在708由客户端设备(诸如客户端设备116A-E)发送和/或接收指示。在708,客户端设备116A-E可获取前PCG包,诸如前PCG包368。可以在客户端设备116A-E处从该前PCG包368中安装一个或多个静态文件部分(诸如普通文件、包元数据和防篡改散列)。方法700还可在716保留或以其他方式标识用于按规程生成输出的空间,如先前讨论的。在720,可对照来自前PCG包的散列部分的一个或多个防篡改散列来确认静态文件数据以及一些实例中的按规程内容生成代码和/或按规程内容生成文件。即,可基于在客户端设备116A-E处安装的静态文件内容、按规程内容生成代码和/或按规程内容生成文件和/或元数据内容来生成一个或多个散列。

在成功确认之际,在724执行可包括一个或多个种子部分和/或一个或多个规程部分的按规程内容生成代码和/或按规程内容生成文件中的一者或多者以生成按规程生成输出。更具体地,规程、算法、脚本、可执行文件、应用和/或指令被运行并且可操作可被读取到客户端设备116A-E的前PCG包、文件或映像中的种子数据和/或其他数据。前PCG包中的种子数据和/或其他数据的这一读取可以在728进行。方法700然后可流转至732,其中生成按规程生成输出并将其存储在预期位置。例如,先前保留的空间或位置可包括按规程生成输出。在736,方法700可加密和/或加密按规程生成输出。方法700然后结束于740。

图8描绘了根据本公开的示例的用于确认按规程生成输出的方法800的细节。方法800的各步骤的大致次序在图8中示出。一般而言,方法800以开始操作804开始并以结束操作820结束。方法800可包括更多或更少的步骤,或者可与图8中所示的步骤不同地安排各步骤的次序。方法800可作为由计算机系统执行并编码或存储在计算机可读介质上的计算机可执行指令集合来执行。此外,方法800可以由与处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、片上系统(SOC)或其他硬件设备相关联的门或电路来执行。在下文中,方法800应参考结合图1-7描述的系统、组件、模块、软件、数据结构、用户接口等来解释。

方法800开始于804,804在方法700的步骤736处生成按规程生成输出之后。即,一旦按规程生成输出被生成,方法800就可以在804发起。在808,方法800确定后PCG包是否已被完全写入。换言之,如果按规程生成输出未被生成,则方法800可流转至步骤812,其中获取后PCG包和/或文件的已知良好版本。在一些实例中,可以只获取按规程生成输出的已知良好版本,以使得驻留在客户端设备116A-E的映像、文件或包可以简单地将这一文件添加到现有数据。一旦获取已知良好版本,方法800就可结束于820。在一些实例中,在后PCG包、文件或映像已被完全写入的情况下,方法800可继续基于按规程生成输出来生成散列并验证所生成的散列匹配在前PCG包、文件或映像中所提供的防篡改散列树中找到的散列。如果散列匹配,则方法800可继续至820。然而,如果散列不匹配,则方法800可继续至812,其中获取后PCG包和/或文件的已知良好版本,如先前描述的。在812后,方法800可继续至一个或多个错误处置步骤以确保后PCG包和/或文件的已知良好版本是有效的并且在一些实例中可返回至808和/或结束于820

图9是解说可用来实践本公开的各方面的计算设备900的物理组件(即硬件)的框图。以下描述的计算设备组件可适用于上述的计算设备(诸如客户端设备116和/或内容生成器108)。在基本配置中,计算设备900可包括至少一个处理单元902以及系统存储器904。取决于计算设备的配置和类型,系统存储器904可包括但不限于易失性存储(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪存,或者此类存储器的任何组合。系统存储器904可包括操作系统905A和905B以及一个或多个程序模块906,这些模块适用于执行本文所公开的各个方面,诸如安全处理器924、按规程生成输出确认器928和/或内容生成器932。例如,操作系统905A可适合于控制计算设备900的操作。例如,操作系统905B可适用于控制游戏和/或作品执行。此外,可结合图形库、其他操作系统、或者任何其他应用程序来实践本公开的各方面,并且这些实施例不限于任何特定的应用或系统。该基本配置在图9中由虚线908内的那些组件例示出。计算设备900可具有附加的特征或功能。例如,计算设备900也可以包括附加的数据存储设备(可移动和/或不可移动),诸如举例而言,磁盘、光盘或带。此类附加存储在图9中由可移动存储设备909和不可移动存储设备910解说。

如以上所阐述的,大量的程序模块和数据文件可被储存在系统存储器904中。尽管在处理单元902上执行,程序模块906(例如,一个或多个应用920)可执行包括但不限于在此描述的各方面的过程。根据本公开的各方面可使用的其他程序模块可包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程序等。

根据本公开的示例,在服务器上使用“黄金标准”主映像可被用来在故障情况下挽救内容,其中完整性散列不匹配所生成的数据被构想并描述。此外,已加密文件数据经由用于生成文件数据的多种不同机制中的任一种从其压缩/种子形式到准备好供应用进行高性能使用的完全展开形式的一个或多个解压和按规程生成包括但不限于:标准压缩/解压编解码器,诸如LZ压缩、算数压缩、JPEG压缩;将这些资产解压成适合供游戏作品或GPU使用的形式-例如,将以高分辨率曲线形式存储的资产网格解码成三角形网格,或者从光泽压缩图像中生成GPU高效的纹理形式(例如,JPEG压缩纹理到DXn或BCn图形格式),即时重拼(retiling)映像,或者生成或丢弃纹理链中的MIP层;在安装或更新时使用机器学习技术来重构纹理;使用机器学习技术从低熵形式生成游戏所需的任何数据;以按规程方式从随机种子中生成数据,然后对所生成的数据应用“修正”补丁以通过人工干预来定制该结果;以及使用机器学习方法来从标记语言中生成语音,并且然后应用修正以将输出定制成匹配演员的声音,所得数据小于典型的音频压缩方法在本文中被构想并描述。根据本公开的示例,以特殊安装或更新时模式启动应用(该模式指令该应用按规程从其可用输入数据中生成内容)在本文中被构想并描述。

此外,本公开的各方面可在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或在包含电子元件或微处理器的单个芯片上实现。例如,可以经由片上系统(SOC)来实践本公开的各方面,其中图9中例示的每个或许多组件可被集成到单个集成电路上。这样的SOC设备可包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元以及各种应用功能,所有这些都被集成到(或“烧录到”)芯片基板上作为单个集成电路。当经由SOC操作时,在此所述的关于客户端切换协议的能力的功能可以经由在单个集成电路(芯片)上集成有计算设备900的其他组件的专用逻辑来操作。本公开的各方面还可使用能够执行诸如例如,AND(与)、OR(或)和NOT(非)的逻辑运算的其他技术来实践,包括但不限于,机械、光学、流体和量子技术。另外,本公开的各方面可以在通用计算机或任何其他电路或系统中实现。

计算设备900也可具有一个或多个输入设备912,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等等。也可包括输出设备914,诸如显示器、扬声器、打印机等等。以上所提及的设备均为示例,并且其他设备可被使用。计算设备900可包括允许与其他计算设备950进行通信的一个或多个通信连接916A。合适的通信连接916A的各示例包括但不限于,射频(RF)发射机、接收机、和/或收发机电路系统;通用串行总线(USB)、并行、网络接口卡和/或串行端口。

如本文中所使用的术语计算机可读介质可包括计算机存储介质。计算机存储介质可包括以用于存储信息(诸如计算机可读指令、数据结构或者程序模块)的任何方法和技术实现的易失性和非易失性、可移除和不可移除介质。系统存储器904、可移动存储设备909和不可移动存储设备910都是计算机存储介质(例如,存储器存储)的示例。计算机存储介质可包括RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁存储设备,或者可被用来储存信息且可由计算设备900访问的任何其他制品。任何此类计算机存储介质都可以是计算设备900的一部分。计算机存储介质不包括载波或者其他经传播或经调制的数据信号。

通信介质可通过计算机可读指令、数据结构、程序模块或者经调制的数据信号(诸如载波或者其他传送机制)中的其他数据体现,并且包括任何信息递送介质。术语“已调制数据信号”可以描述以对信号中的信息进行编码的方式来设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质可包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声、射频(RF)、红外和其他无线介质之类的无线介质。

图10A和10B解说了可用来实践本公开的各方面的计算设备、客户端设备或移动计算设备1000,例如移动电话、智能电话、可穿戴计算机(诸如智能手表)、平板计算机、膝上型计算机等。在一些方面,客户端设备(例如,116A-116E)可以是移动计算设备。参考图10A,解说了用于实现各方面的移动计算设备1000的一个方面。在基本配置中,移动计算设备1000是具有输入元件和输出元件两者的手持式计算机。移动计算设备1000通常包括显示器1005以及允许用户将信息输入到移动计算设备1000中的一个或多个输入按钮1010。移动计算设备1000的显示器1005还可用作输入设备(例如,触摸屏显示器)。任选的侧边输入元件1015在被包括在内的情况下将允许更多的用户输入。侧输入元件1015可以是旋转开关、按钮或者任何其他类型的手动输入元件。在替代方面,移动计算设备1000可纳入更多或更少的输入元件。例如,显示器1005在一些方面中可以不是触摸屏。在又一替代方面中,移动计算设备1000是诸如蜂窝电话之类的便携式电话系统。移动计算设备1000还可包括任选的小键盘1035。可选的小键盘1035可以是物理小键盘或者在触摸屏显示器上生成的“软”键区。在各个方面中,输出元件包括用于示出图形用户界面(GUI)的显示器1005、可视指示器1020(例如,发光二极管)、和/或音频换能器1025(例如,扬声器)。在一些方面中,移动计算设备1000包括用于向用户提供触觉反馈的振动换能器。在又一方面,移动计算设备1000结合诸如音频输入(如传声器插孔)、音频输出(如耳机插孔)、以及视频输出(如HDMI端口)之类的输入和/或输出端口,用于将信号发送到外源或从外源接收信号。

图10B是示出计算设备、服务器(例如,服务器104A-104D)或移动计算设备(例如,客户端设备116A-E)的一个方面的架构的框图。即,电子设备1000可包括系统(例如,架构)1002以实现一些方面。系统1002可实现为能够运行一个或多个应用(如浏览器、电子邮件、日历、联系人管理器、消息收发客户端、游戏、以及媒体客户端/播放器)的“智能电话”。在某些方面,系统1002被集成为计算设备,诸如集成的个人数字助理(PDA)和无线电话。

一个或多个应用程序1066可被加载到存储器1062中,并且在操作系统1064上或者与其相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息收发程序,等等。系统1002还包括存储器1062内的非易失性存储区1068。非易失性存储区域1068可被用来储存持久性信息,如果系统1002断电,则该持久性信息不会丢失。应用程序1066可使用和存储非易失性存储区1068中的信息,诸如电子邮件应用所使用的电子邮件或其他消息、标题内容,等等。同步应用(未示出)同样驻留在系统1002上并且被编程为与驻留在主计算机上的对应同步应用交互以使被储存在非易失性存储区1068中的信息保持与被储存在主计算机处的对应信息同步。如应当理解,其他应用可被加载到存储器1062中并在本文所述的移动计算设备1000上运行(例如,搜索引擎、提取器模块、相关性排名模块、回答评分模块等)。

系统1002具有可被实现为一个或多个电池的电源1070。电源1070可能还包括外部电源,诸如补充电池或对电池再充电的AC适配器或供电底座(powered docking cradle)。

系统1002还可包括执行发射和接收无线电频率通信的功能的无线电接口层1072。无线电接口层1072经由通信运营商或服务供应商促成系统1002与“外部世界”之间的无线连接性。来往无线电接口层1072的传输是在操作系统1064的控制下进行的。换言之,无线电接口层1072接收的通信可经由操作系统1064传播到应用程序1066,反之亦然。

视觉指示器1020可用于提供视觉通知,和/或音频接口1074可用于经由音频换能器1025生成听得见的通知。在所解说的配置中,视觉指示器1020是发光二极管(LED)而音频换能器1025是扬声器。这些设备可被直接耦合到电源1070,使得它们在被激活时保持开启达通知机制所规定的持续时间,即使处理器1060以及其他组件可能关闭以节省电池电力。LED可被编程为保持无限开启,直到用户采取行动来指示设备的上电状态。音频接口1074被用来向用户提供可听信号以及从用户接收可听信号。例如,除了被耦合到音频换能器1025以外,音频接口1074还可被耦合到话筒以接收可听输入,诸如便于电话交谈。根据各本发明的各方面,话筒也可充当音频传感器来便于对通知的控制,如下文将描述的。系统1002可还包括允许板载相机1030的操作来记录静止图像、视频流等的视频接口1076。

实现系统1002的移动计算设备1000可具有附加特征或功能。例如,移动计算设备1000还可包括附加的数据存储设备(可移除和/或不可移除),诸如磁盘、光盘或带。此类附加存储在图10B中由非易失性存储区1068示出。

由移动计算设备1000生成或捕捉的且经系统1002存储的数据/信息可如上所述被本地存储在移动计算设备1000上,或数据可被存储在可由设备经由无线电接口层1072或经由移动计算设备1000和与移动计算设备1000相关联的一分开的计算设备之间的有线连接访问的任何数量的存储介质上,该计算设备如例如因特网之类的分布式计算网络中的服务器计算机。如应理解的,此类数据/信息可经由移动计算设备1000、经由无线电接口层1072或经由分布式计算网络来被访问。类似地,此类数据/信息可以根据公知的数据/信息转移和存储装置(包括电子邮件和协同数据/信息共享系统)容易地在计算设备之间被转移以供存储和使用。

图11示出了用于处理如以上描述的在计算系统1102(例如,内容生成器108)处从远程源接收的数据的系统的架构的一个方面。在服务器设备1102处的内容可按不同的通信信道或其他存储类型来被存储。例如,各种游戏/作品映像和按规程生成输出以及前PCG包、映像或文件可使用目录服务1122、web门户1124、邮箱服务1126、即时消息收发存储1128或社交网站1130来存储。基于用户数据表1110的统一简档API可由与服务器设备1102通信的客户端使用,和/或内容生成器可由服务器设备1102使用。服务器设备1102可通过网络1115向客户端计算设备(诸如客户端设备116A-116E)提供数据并接收来自该客户端计算设备的数据。作为示例,以上描述的客户端设备116可被具体化在个人计算机1104、平板计算设备1106和/或移动计算设备1108(例如,智能电话)中。除了接收可用于要在图形始发系统处预处理或在接收计算系统处后处理的图形数据之外,计算设备的这些配置中的任一者可获得来自存储1116的内容(诸如游戏/作品映像和/或前PCG包、映像或文件)。

以上说明、示例和数据提供了对本发明的组成部分的制造和使用的全面描述。因为可以在不背离本发明的精神和范围的情况下做出本发明的许多方面,所以本发明落在所附权利要求的范围内。

短语“至少一个”、“一个或多个”、“或”和“和/或”是开放表达,在操作上既是连接的又是分离的。例如,表述“A、B和C中的至少一个”、“A、B或C中的至少一个”、“A、B和C中的一个或多个”、“A、B或C中的一个或多个”、“A、B和/或C”和“A、B或C”中的每一者表示A单独、B单独、C单独、A和B一起、A和C一起、B和C一起、或A、B和C一起。

术语“一”或“一个”实体指的是此实体中的一个或多个。如此,术语“一”(或“一个”)、“一个或多个”和“至少一个”在本文中可被互换地使用。还应注意,术语“包括”、“包含”和“具有”可被互换地使用。

如本文所用的,术语“自动”及其变体是指在执行过程或操作时无需实质性人工输入即可完成的任何过程或操作,其通常是连续或半连续的。但是,如果输入是在过程或操作的执行之前接收到的,则处理或操作可以是自动的,即使过程或操作的执行使用了实质性或非实质性的人工输入。如果人工输入影响了过程或操作的执行方式,则此类输入被视为是实质性的。同意执行过程或操作的人工输入不被视为是“实质性的”。

本公开的示例性系统和方法已经相对于计算设备进行了描述。然而,为了避免不必要地混淆本公开,前面的描述省略了许多已知结构和设备。此省略不应被解释为对要求保护的公开范围的限制阐述了具体细节以提供对本公开的理解。然而,应当理解,可以超出本文阐述的具体细节的多种方式来实践本公开。

此外,虽然本文例示的示例性方面示出了系统的各种组件并置,但系统的某些组件可以远程地位于分布式网络(诸如LAN和/或互联网)的远处部分,或位于专用系统内。因此,应当理解,系统的各组件可被组合到一个或多个设备(诸如服务器、通信设备)中,或者并置在分布式网络(诸如模拟和/或数字电信网络、分组交换网络或电路交换网络)的特定节点上。从前面的描述可以理解,并且出于计算效率的原因,系统的组件可以布置在组件的分布式网络内的任何位置,而不影响系统的操作。

此外,应当理解,连接各元件的各种链路可以是有线或无线链路或其任何组合,或能够向所连接的元件提供数据和/或从所连接的元件传送数据的任何其他已知的或后来开发的元件。这些有线或无线链接也可以是安全链接并且可能能够传送加密信息。例如,用作链路的传输介质可以是电信号的任何合适载体,包括同轴电缆、铜线和光纤,并且可以采用声波或光波(诸如在无线电波和红外数据通信期间产生的声波或光波)的形式。

本文讨论的任何步骤、功能和操作都可被连续地且自动地执行。

虽然已经关于特定的事件序列讨论和例示了流程图,但是应当理解,对此序列的改变、添加和省略可以在不实质性影响所公开的各配置和各方面的操作的情况下发生。

本公开的多种变化和修改可被使用。可提供本公开的一些特征而不提供其他特征。

在又一配置中,本公开的系统和方法可以与专用计算机、可编程微处理器或微控制器和外围集成电路元件、ASIC或其他集成电路、数字信号处理器、硬接线电子或逻辑电路(诸如分立元件电路)、可编程逻辑器件或门阵列(诸如PLD、PLA、FPGA、PAL)、专用计算机、任何类似的装置等结合实现。一般而言,能够实现在此例示的方法的任何设备或装置可被用于实现此公开的各个方面。可用于本公开的示例性硬件包括计算机、手持设备、(例如,蜂窝式的、启用互联网的、数字的、模拟的、混合的和其他的)电话和本领域已知的其他硬件。这些设备中的一些包括处理器(例如,单个或多个微处理器)、存储器、非易失性存储器、输入设备和输出设备。此外,还可以构造包括但不限于分布式处理或组件/对象分布式处理、并行处理或虚拟机处理的替换软件实现来实现本文所描述的各方法。

在又一配置中,所公开的方法可以容易地与使用对象或面向对象软件开发环境的软件结合实现,所述对象或面向对象软件开发环境提供可在各种计算机或工作站平台上使用的可移植源代码。替换地,所公开的系统可使用标准逻辑电路或VLSI设计在硬件中部分地或全部地实现。是使用软件还是硬件来实现根据此公开的系统取决于系统的速度和/或效率要求、特定功能以及所使用的特定软件或硬件系统或微处理器或微型计算机系统。

在又一配置中,所公开的方法可以部分地在软件中实现,所述软件可以存储在存储介质上、在控制器和存储器、专用计算机、微处理器等的协作下在经编程的通用计算机上执行。在这些实例中,本公开的系统和方法可以被实现为嵌入在个人计算机上的程序(例如小程序、

尽管本公开描述了参考特定标准和协议实现的组件和功能,但是本公开不限于此类标准和协议。在此未提及的其他类似标准和协议存在并且被认为包括在本公开中。此外,本文提及的标准和协议以及本文未提及的其他类似标准和协议被具有基本相同功能的更快或更有效的等效物周期性地取代。具有相同功能的此类替换标准和协议被认为是包括在本公开中的等效物。

本公开在各种配置和方面中包括基本上如本文所描绘和描述的组件、方法、过程、系统和/或装置,包括其各种组合、子组合和子集。在理解了本公开之后,本领域技术人员将理解如何制造和使用在此公开的系统和方法。本公开在各种配置和方面中包括在没有本文中未描述和/或描述的项目的情况下或在各种配置或方面中提供设备和过程,包括在没有在先前的设备或过程中可能使用的项目的情况下,例如,为了提高性能、实现易用性和/或降低实施成本。

以上参考例如根据本公开的各方面的方法、系统和计算机程序产品的框图和/或操作图示描述了本公开的各方面。各个框中所提到的功能/动作可以不按照如任何流程图中所示出的次序而发生。例如,相继示出的两个框可实际上基本并发地执行,或者各个框有时取决于所涉及的功能性/动作也可以按相反的次序来执行。

本申请中提供的一个或多个方面的描述和说明不旨在以任何方式限制或约束如权利要求所要求保护的发明范围。本申请中提供的各方面、示例和细节被认为是足以传达所有权,且使得他人能够制作并使用所要求保护的发明的最佳模式。要求保护的公开不应被理解为限制于本申请中所提供的任何方面、示例或细节。不管是组合还是单独地示出和描述,各个(结构和方法)特征旨在选择性地包括或省略以产生具有一组特定特征的配置。在已被提供本申请的描述和说明的情况下,本领域技术人员能够想象到落本申请中所具体化的一般发明概念的更宽泛范围方面的精神内的变化、修改和替代方面并不背离要求保护的公开的更宽泛的范围。

根据本公开的至少一个示例,提供了一种生成用于加密包的内容的系统。所述系统可包括至少一个处理器以及包括指令的至少一个存储器,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:接收包括一个或多个防篡改散列部分和已加密数据的包,所述已加密数据包括一个或多个指令;以及解密所述已加密数据的包括所述一个或多个指令的部分。所述指令可使所述至少一个处理器生成基于所述一个或多个指令的执行以及数据语料库的数据,加密所生成的数据,以及利用来自所述包的所述防篡改散列部分的一个或多个防篡改散列来确认所生成的数据。

以上示例的至少一方面可包括其中利用来自所述包的所述防篡改散列部分的一个或多个防篡改散列来确认所生成的数据的所述一个或多个指令包括基于所生成的数据的已加密部分来生成散列值,接收来自所述包的所述防篡改散列部分的散列值,以及将所生成的散列值与所接收的散列值相比较。以上示例的至少一方面可包括其中所述一个或多个指令使所述至少一个处理器在所生成的散列值不匹配所接收的散列值的情况下从另一设备获取所生成的数据。以上示例的至少一方面可包括其中所述一个或多个指令使所述至少一个处理器在所生成的散列值不匹配所接收的散列值时从另一设备获取包括一个或多个防篡改散列部分和已加密数据的包,所述已加密数据包括第二所生成的数据。以上示例的至少一方面可包括其中所述一个或多个指令使所述至少一个处理器在解密包括所述数据语料库和所述一个或多个指令的所述已加密数据之前确认所接收的包。以上示例的至少一方面可包括其中所述一个或多个指令的执行生成图像数据、音频数据和/或纹理数据中的至少一者。以上示例的至少一方面可包括其中所述指令使所述至少一个处理器在与生成基于所述一个或多个指令的执行的数据的操作系统不同的操作系统中解密所述已加密数据。以上示例的至少一方面可包括其中所述指令使所述至少一个处理器基于所接收的包中的元数据部分来保留存储空间。

根据当前示例的至少一个示例,提供了一种生成用于加密包的内容的方法。该方法可包括接收包括一个或多个防篡改散列部分和已加密数据的包,所述已加密数据包括一个或多个种子部分以及一个或多个指令;解密所述已加密数据的包括所述一个或多个指令和所述一个或多个种子部分的部分;生成基于所述一个或多个指令的执行的数据,其中所述一个或多个指令对所述一个或多个种子部分进行操作;加密所生成的数据;以及利用来自所述包的所述防篡改散列部分的一个或多个防篡改散列来确认所生成的数据。

以上示例的至少一方面可包括基于所生成的数据的已加密部分来生成散列值,接收来自所述包的所述防篡改散列部分的散列值,以及将所生成的散列值与所接收的散列值相比较。以上示例的至少一方面可包括在所生成的散列值不匹配所接收的散列值的情况下从与从中生成所述散列值的设备不同的设备获取所生成的数据。以上示例的至少一方面可包括在所生成的散列值不匹配所接收的散列值的情况下从与从中生成所述散列值的设备不同的设备获取包括一个或多个防篡改散列部分和已加密数据的包。以上示例的至少一方面可包括生成图像数据、音频数据和/或纹理数据中的至少一者。以上示例的至少一方面可包括在与生成基于所述一个或多个指令的执行的数据的操作系统不同的操作系统中解密所述已加密数据。

根据本公开的至少一个示例,提供了一种生成用于加密包的安装时按规程内容的系统。该系统可包括至少一个处理器以及包括指令的至少一个存储器,所述指令在由所述至少一个处理器执行时使所述至少一个处理器接收种子数据和规程指令;执行所述规程指令以基于所述种子数据来生成内容;加密所生成的内容、所述种子数据和所述规程指令;基于已加密内容、已加密种子数据和已加密规程指令来生成一个或多个防篡改散列;以及组装安装时按规程内容文件,所述安装时按规程内容文件至少包括所述已加密种子数据、已加密规程指令以及所述一个或多个防篡改散列。

以上示例的至少一方面可包括其中所述指令使所述至少一个处理器从所述安装时按规程内容文件中排除已加密的所生成内容。以上示例的至少一方面可包括其中所述指令使所述至少一个处理器接收第一规程指令和第二规程指令,其中所述第二规程指令特定于与所述第一规程指令的目标设备不同的目标设备。以上示例的至少一方面可包括其中所述规程指令对所述种子数据进行操作以生成内容。以上示例的至少一方面可包括其中所述一个或多个规程指令的执行生成图像数据、音频数据和/或纹理数据中的至少一者。以上示例的至少一方面可包括其中所述指令使所述至少一个处理器向游戏控制台传送所述安装时按规程内容文件。

如本文基本上公开的任何一个或多个方面。

本文基本上公开的任何一个或多个方面任选地与本文基本上公开的任何一个或多个其他方面组合。

一种或多种适合于执行如本文基本公开的上述方面中的任何一者或多者的装置。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号