CN1650268A - 使用密码保护保密内容的方法和系统 - Google Patents

使用密码保护保密内容的方法和系统 Download PDF

Info

Publication number
CN1650268A
CN1650268A CNA028025946A CN02802594A CN1650268A CN 1650268 A CN1650268 A CN 1650268A CN A028025946 A CNA028025946 A CN A028025946A CN 02802594 A CN02802594 A CN 02802594A CN 1650268 A CN1650268 A CN 1650268A
Authority
CN
China
Prior art keywords
encryption
content
computer
gpu
deciphering
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
CNA028025946A
Other languages
English (en)
Other versions
CN100595736C (zh
Inventor
鲍尔·英格兰
马库斯·佩纳多
尼古拉斯·P·维尔特
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1650268A publication Critical patent/CN1650268A/zh
Application granted granted Critical
Publication of CN100595736C publication Critical patent/CN100595736C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/83Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

提供一种和计算设备的图形子系统一起加密保护保密内容的方法和系统。实现对视频存储器的内容加密的各种技术,以致未经授权的软件不能实现对所述内容的有意义访问,从而维持保密性。此外,提供一种篡改检测机制,以致当按照某一方式改变数据时,能够知晓,从而保持完整性。在各个实施例中,覆盖面和/或命令缓冲器的内容被加密,和/或GPU能够处理加密内容,同时防止非受托方、设备或软件得到所述加密内容。

Description

使用密码保护保密内容的方法和系统
相关申请的交差参考
本申请要求于2001年12月4日申请的临时申请序列号60/337,617以及于2001年12月10申请的60/339,143的优先权,并且与于2002年4月18日申请的共同转让的待审美国专利申请10/125,170相关。
版权声明和许可:
本专利文件的公开部分可能含有版权受保护的内容。版权拥有者并不反对任何人传真复制如在美国专利商标局的专利文档或记录内出现的这个专利文件或专利公开内容,但在其它方面却保留全部版权。以下标志应适用于本文件:Copyright2001,Microsoft Corp。
技术领域
本发明涉及使用密码保护保密内容的方法和系统。更具体地说,本发明涉及使用密码保护通过图形流水线(graphics pipeline)发送的内容,既保证内容的机密性,又保证对于内容的篡改保护的技术。
背景技术
现在,因特网和其它许多来源及应用提供一系列大量的用于收听、观看、处理、存储和以别的方式表示的流式和固定媒体或其它内容。但是,目前不存在以复制保护的方式捕获、记录或再现(rendering)流式或固定媒体或者内容,以致当正在处理内容时,或者当正在再现内容时,盗版者都不能在流水线的某一点接进内容流,并获得内容的副本或者改变内容的实用方法。对于过去的其它媒体再现和记录设备,例如用于电视内容的VCR,或者用于音频信号的磁带录音机,已存在这种问题,不过至少存在一个关键差异。由于事实上可无信号损失地记录数字媒体,对于版权所有者来说,这会造成他们的作品将被随意分享(被盗版),而得到不赔偿。对于VCR和磁带录音机来说,设备和传输媒体在记录过程中会引入噪声或数据的损坏。对于流式或固定数字媒体来说,至少相对于人耳及人眼能力的极限,为什么不能实现事实上无损的转换和重新传送是没有任何原因的,并且为什么不能保存并自由分发纯粹的数字数据也是没有任何原因的。从而,由于在版权所有者收费提供的数字数据和盗版者免费提供的数字数据之间只存在很小的差异,因此希望防止数字数据的自由重新分发。此外,对于希望保密的通信,例如电子商务交易来说,对于参与对话的用户来说,重要的是没有任何未经授权的第三方暗中参与所述交易。从而,对于来自受托来源的内容来说,目前不存在在用户的计算机上“安全地”处理或再现数据,而不用防止盗版或者损坏的实用方法。
特别地,一旦在主计算系统,一个或多个图形处理器(GPU)和再现设备,例如监视器之间流水线输送内容,则盗版者或者其它未经授权的第三方有多次机会进入线路或者信号,并且盗用或者破坏信号。此外,由于消息接发服务和视频会议使用户对话变得更加复杂,为起源于任何地方的保密内容提供受托流水线变得更加重要。
此外,与在现今的个人计算机(PC)中那样从CPU吸取最多计算能力相反,显然未来几代的操作系统,计算设备和应用程序会把来自GPU的更多计算能力用于商业应用。从而,确保通过“受托图形”应用程序发送给GPU的内容的安全是未来计算设备的基本特征,并且是目前的计算系统未充分解决的问题。
为受托内容提供安全流水线的问题可被看作存在两个方面:(1)必须确保在流水线内的某一薄弱环节,不能复制或查看受托内容(机密性),和(2)必须确保流水线防止未经授权地破坏流水线中的数据(受到保护)。在系统安全性方面,由于更难以证明系统的安全性,因此复杂性是一个不利条件。正如机场或其它安全场所的情况一样,系统中存在的入口和出口越多,则越难确保安全。在这方面,目前不存在借助其可在机密性和保护能力两方面信任大部分GPU功能和显示驱动器的任意方法。从而,希望实现和从受托来源接收内容的计算设备相关的受托图形环境,从而可向设备的用户保证内容不能未经授权就被复制,并且内容不能被第三方篡改或改变。
发明内容
鉴于上述内容,本发明提供一种和计算设备的图形子系统一起加密保护保密内容的方法和系统。实现对视频存储器的内容加密的各种技术,以致未经授权的软件不能实现对所述内容的有意义访问,从而满足保密性的目标。此外,提供一种篡改检测机制,以致当按照某一方式改变数据时,能够知晓,从而满足保护能力的目的。在各个实施例中,本发明说明了如何对覆盖面和/或命令缓冲器的内容加密,和/或说明了如何使GPU能够处理加密内容,同时防止非受托方、设备或软件得到所述加密内容。
本发明的方法不同地包括与受托图形系统一起加密保护保密内容的技术,所述受托图形系统具有视频存储器,图形处理器(GPU)和与GPU通信耦接的加密处理装置,所述技术包括应用程序或设备请求图形系统执行保密内容的处理或再现,其中所述请求包括应用程序或设备把话路密钥(session key)传送给图形系统,并把保密内容传送给视频存储器的加密部分,由与加密处理装置通信的GPU对视频存储器的加密部分的内容解密,GPU执行关于解密内容的处理或再现,以及从GPU输出内容。
本发明的类似方法不同地包括应用程序或设备请求图形系统执行保密内容的处理或再现,其中所述请求包括应用程序或设备把话路密钥传送给图形系统,以便由加密处理装置核实,把保密内容传送给视频存储器的加密部分,GPU的输入装置的解密机构对视频存储器的加密部分的内容解密,其中解密机构与加密处理装置通信,GPU执行关于解密内容的处理或再现,利用GPU的输出装置的加密/解密机构对内容加密,并从GPU输出加密内容。
下面说明本发明的其它特征和实施例。
附图说明
参考附图进一步描述根据本发明的加密保护保密内容的方法和系统,其中:
图1A是表示具有其中可实现本发明的各种计算设备的例证网络环境的方框图;
图1B是表示其中可实现本发明的例证非限制性计算设备的方框图;
图2是图解说明根据本发明保护的图形流水线的未受保护部分的流程图;
图3A和3B是图解说明根据本发明的第一层保密性的例证情况的方框图;
图4A-4C是图解说明根据本发明的第二层保密性的例证情况的方框图;
图5A-5B图解说明了根据本发明的AYUV/ARGB格式的例证混合(swizzling);
图6A-6B图解说明根据本发明的YUY2格式的例证混合;
图7A-7B图解说明根据本发明的压缩平面(packed planar)格式的例证混合;
图8A和8B是图解说明根据本发明的第三层保密性的例证情况的方框图;
图9A和9B是图解说明根据本发明的可应用于来自图形处理器的输出的例证加密技术的方框图。
具体实施方式
概述
本发明提供一种扩大来自于受托来源的内容和图形系统之间用于处理和/或再现内容的操作系统或其它媒介物,以便实现诸如防止篡改的机密对话之类的“受托图形”应用和防范擅自复制的收费内容的重放的系统和技术。考虑本发明的一种方式是本发明提供三“级”安全:(1)重叠面的内容的加密;(2)使GPU或者其它处理装置能够处理加密内容,而不会使不可信赖方获得所述加密内容;和(3)使命令缓冲器能够被加密。
如上所述,在系统安全性方面,由于会使得更难以证明系统的安全性,因此复杂性是一个不利条件。从而,通过认为必须把大部分GPU功能和显示驱动器看作是不可信赖的,开始本发明。随后本发明应用通过限制为了满足安全标准,要实现的硬件的范围,从而增大在机密性和保护能力方面的正确实现的机会的技术。
上面已讨论了根据本发明的一些术语。但是,为了清楚起见,现在要强调一些术语。术语“机密”指的是防止非受托第三方,例如第三方设备或软件接触受托内容信息。这种机密性的一个例子包括防止非受托第三方在沿着图形流水线的任意地方,接触加密收费内容的重放。术语“受保护”指的是防止非受托第三方,例如第三方设备或软件在未被发觉的情况下,接触或改变受托内容信息。这种保护能力的一个例子包括防止非受托第三方接触或改变可能在电子商务交易中产生的保密对话的显示。
在这方面,本发明考虑重叠窗口,例如位于收费内容视频流上面的用户界面,以及在电子商务对话中可能呈现的不能隐慝的窗口。
例证的网络环境
本领域的普通技术人员能够认识到,计算机或其它客户机或者服务器设备可被用作计算机网络的一部分,或者在分布式计算环境中应用。在这方面,本发明和包括任意数目的存储器或存储单元,以及在任意数目的存储单元或容量之间产生的任意数目的应用程序和进程的任意计算机系统有关,所述任意数目的存储器或存储单元以及任意数目的应用程序和进程会牵涉本发明的受托图形方式。本发明可应用于带有在网络环境或分布式计算环境中采用的,具有远程或本地存储器的服务器计算机和客户机计算机的环境。本发明还可应用于具有编程语言功能,产生、接收和传送与远程或本地服务有关的信息的解释和执行能力的独立计算设备。
分布式计算设施通过计算设备和系统之间的直接交换,共享计算机资源和服务。这些资源和服务包括信息的交换,超高速缓存,和文件的磁盘存储。分布式计算利用网络连通性,允许客户机补充它们的集体能力,从而有益于整个组织。在这方面,各种设备可具有能够互相作用,从而牵涉本发明的受托图形流水线的应用程序、对象或资源。
图1A是例证的组网或分布式计算环境的示意图。分布式计算环境包括计算对象10a、10b等,和计算对象或设备110a、110b、110c等。这些对象可包括程序、方法、数据仓库、可编程逻辑等等。这些对象可包括相同或不同设备,例如PDA、电视机、MP3播放机、个人计算机等的多个部分。每个对象可借助通信网络14与另一对象通信。通信网络14本身可包括向图1A的系统提供服务的其它计算对象和计算设备。根据本发明的一方面,每个对象10或110可包含能够请求受托图形资源的应用程序。
还可认识到诸如110c之类的对象可寄宿在另一计算设备10或110上。从而,虽然描绘的物理环境把连接的设备表示成计算机,不过这样的图解说明仅仅是例证性的,物理环境也可被描绘或描述成包括诸如PDA、电视机、MP3播放机之类的各种数字设备,诸如界面之类的软件对象、COM对象等等。
支持分布式计算环境的系统、组件和网络构形很多。例如,计算系统可通过有线或无线系统,通过本地网络或者分布广泛的网络连接在一起。目前,许多网络都与因特网耦接,因特网为分布广泛的计算提供基础结构,并且包含许多不同的网络。
在本地组网环境中,至少存在分别支持独特协议的四种完全不同的网络传送媒介,例如电力线,数据(无线和有线的),语音(例如电话)和娱乐媒体。大多数本地控制设备,例如照明开关和电器可使用电力线进行连通。数据服务可以宽带(例如DSL或电缆调制解调器)的形式进入本地,并且通过利用无线(例如HomeRF或者802.11b)或者有线(例如Home PNA,Cat 5,甚至电力线)连通可访问数据服务。语音通信可以有线(例如Cat 3)或者无线(例如蜂窝电话)的形式进入本地,并且通过利用Cat 3布线可在本地分布。娱乐媒体可通过卫星或电缆进入本地,并且一般利用同轴电缆在本地分布。IEEE 1394和DVI也正在显现为成群媒体设备的数字互连。所有这些网络环境和可显现为协议标准的其它环境都可互连,从而形成可通过因特网与外界相连的企业内部网。总之,对于数据的存储和传输来说,存在各种各不相同的来源,计算设备需要在数据处理流水线的所有部分保护内容的各种方法。
因特网一般指的是利用TCP/IP协议组的网络和网关的集合,在计算机组网领域中,TCP/IP协议组众所周知。TCP/IP是“传输控制协议/接口程序”的缩字母缩写词。因特网可被描述成由执行组网协议的计算机互连的地理分布遥远的计算机网络的系统,所述组网协议允许用户通过网络相互作用和共享信息。由于这种分布广泛的信息共享,迄今诸如因特网之类远程网络已发展成开放式系统,开发人员可基本上无限制地为其设计执行专门操作或者服务的应用软件。
从而,网络基础结构能够实现许许多多的网络布局,例如客户机/服务器,对等或者混合结构。“客户程序”是使用与其无关的另一类或另一组的服务的一类或一组成员。从而就计算来说,客户程序是请求由另一程序提供的服务的进程,即一般说来是一组指令或任务。客户程序在不必“知道”和其它程序或服务本身有关的任何工作细节的情况下,利用所请求的服务。在客户机/服务器结构中,特别是组网系统中,客户机一般是访问由另一计算机,例如服务器提供的共享网络资源的计算机。在图1A的例子中,计算机110a、110b等可被看作是客户机,计算机10a、10b等可被看作是服务器,这里服务器10a、10b等保存随后在客户机110a、110b等中被复制的数据。
服务器通常是可通过诸如因特网之类远程网络访问的远程计算机系统。客户程序可在第一计算机系统中处于活动状态,服务程序可在第二计算机系统中处于活动状态,通过通信媒介相互通信,从而提供分布式功能,并且允许多个客户机利用服务器的信息聚集能力。
客户机和服务器通过利用协议层提供的功能相互通信。例如,超文本传送协议(HTTP)是与万维网(WWW)一起使用的常用协议。一般来说,诸如通用资源定位符(URL)或网际协议(IP)地址之类的计算机网络地址被用于相互识别服务器或客户机。网络地址可被称为通用资源定位符地址。例如,可通过通信媒体提供通信。特别地,客户机和服务器可通过TCP/IP连接相互耦接,以便实现高容量通信。
从而图1A图解说明了服务器通过网络/总线与客户机通信的例证组网或分布式环境,本发明可用在所述组网或分布式环境中。更具体地说,根据本发明,若干服务器10a、10b等通过通信网络/总线14与若干客户机或远程计算设备110a、110b、110c、110d和110e等,例如便携式计算机、手持式计算机、瘦(thin)客户机、组网电器或者诸如VCR、TV、烤箱、灯具、加热器之类其它设备相连,所述通信网络/总线14可以是LAN、WAN、企业内部网、因特网等。从而预期本发明可应用于希望处理、保存或再现来自受托来源的保密内容的任意计算设备。
在其中通信网络/总线14是因特网的网络环境中,服务器10可以是Web服务器,客户机110a、110b、110c、110d、110e等通过若干已知协议中的任意一种,例如HTTP与所述Web服务器通信。
作为分布式计算环境的特征,服务器10也可用作客户机110。在适当的情况下,通信可以是有线的或者无线的。客户机110可通过通信网络/总线14通信,也可不通过通信网络/总线14通信,并且可具有与其相关的独立通信。例如在TV或VCR情况下,对其控制来说,可存在组网情况,也可不存在组网情况。每个客户机110和服务器10都可配备各种应用程序模块或对象135,以及相对于各种存储元件或对象的连接或访问,在所述各种存储元件或对象上可保存文件,或者文件的多个部分可被下载或移植到所述种种存储元件或对象上。从而,可在具有客户机110a、110b等和服务器10a、10b等的计算机网络环境中应用本发明,所述客户机110a、110b等可访问和与计算机网络/总线14相互作用,服务器10a、10b等可与客户机110a、110b等、其它设备111及数据库20相互作用。
例证的计算设备
图1B和下述说明用于简要概述其中可实现本发明的适宜计算环境。但是应注意,手持式、便携式和其它计算设备及计算对象预期可和本发明一起应用。虽然下面描述了通用计算机,不过这只是一个例子,本发明可和具有网络/总线互用性和交互作用的瘦客户机一起被实现。从而,可在网络宿主(hosted)服务环境中实现本发明,在所述网络宿主服务环境中,涉及很少或者最少的客户资源,例如其中客户机仅仅用作相对于网络/总线的接口,例如置于器具中的对象的网络环境。本质上,可保存数据或者可从其取回或再现数据的任意地方都是本发明的保密内容的加密保护的操作的理想或者适宜环境。
虽然没有要求,可借助操作系统,应用程序编程接口(APU)实现本发明,和/或本发明可包含在与受托内容对接的应用软件内。在各个实施例中,本发明还可应用于符合接口技术,以及下面描述的加密技术的硬件。可在计算机可执行指令的一般意义上描述软件,例如由诸如客户机工作站,服务器或者其它设备之类的一个或多个计算机执行的程序模块。一般来说,程序模块包括执行特殊任务或者实现特殊的抽象数据类型的例程、程序、对象、组件、数据结构等。通常,如同各个实施例中所需那样,可组合或者分布程序模块的功能。此外,本领域的技术人员会认识到可利用其它计算机系统结构实现本发明。适合于供本发明使用的其它众所周知的计算系统,环境和/或结构包括(但不局限于)个人计算机(PC)、自动柜员机、服务计算机、手持式或膝上型设备、多处理器系统、微处理器系统、可编程消费电子设备、网络PC、家用器具、灯具、环境控制元件、微型计算机、大型计算机等等。还可在分布式计算环境中实践本发明,在所述分布式计算环境中,任务由通过通信网络和/或总线或者其它数据传输媒介连接的远程处理设备执行。在分布式计算环境中,程序模块既可位于本地计算机存储媒介中,又可位于远程计算机存储媒介中,所述存储媒介包括存储器存储设备,客户机节点又可起服务器节点的作用。
这样,图1B图解说明了其中可实现本发明的适宜的计算系统环境100的一个例子,不过如上所述,计算系统环境100只是适宜的计算环境的一个例子,并不意味着对本发明的应用或功能范围的任何限制。计算环境100不应被理解成具有和例证的工作环境100中举例说明的任意一个组件或者组件的组合相关的任何依赖性或要求。
参考图1B,用于实现本发明的例证系统包括呈计算机110形式的通用计算设备。计算机110的组件可包括(但不限于)处理器120,系统存储器130,使包括系统存储器在内的各个系统组件与处理器120耦接的系统总线121。系统总线121可以是几种类型的总线结构中的任意一种,包括存储器总线或存储控制器,外围总线和使用各种总线结构中的任意一种的局部总线。举例来说(但是局限于),这种结构包括工业标准结构(ISA)总线,微通道结构(MCA)总线,增强ISA(EISA)总线,视频电子标准协会(VESA)局部总线,和外设部件互连(PCI)总线(也称为Mezzanine总线)。
计算机110一般包括各种计算可读媒介。计算机可读媒介可以是可被计算机110访问的任意可用媒介,并且包括易失性媒介和非易失性媒介,可卸的媒介和不可卸的媒介。举例来说(但不局限于),计算机可读媒介可包括计算机存储媒介和通信媒介。计算机存储媒介包括按照任意方法或技术实现的,用于存储诸如计算机可读指令、数据结构、程序模块或其它数据之类信息的易失性媒介和非易失性媒介,可更换媒介和不可更换媒介。计算机存储媒介包括(但不限于)RAM、ROM、EEPROM、快速存储器或者其它存储器技术,CDROM,数字通用光盘(DVD)或者其它光盘存储器,盒式磁带、磁带、磁盘存储器或者其它磁性存储设备,或者可用于保存所需信息并且可被计算机110访问的其它任意媒介。通信媒介一般在诸如载波或其它传送机制之类的调制数据信号,具体体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任意信息传送媒介。术语“调制数据信号”指的是以这样的方式设置或改变其一个或多个特性,以便在其中对信息编码的信号。举例来说(但不局限于),通信媒介包括诸如有线网络或直接有线连接之类的有线媒介,和无线媒介,例如声音、RF、红外和其它无线媒介。上述任意的组合也应包含在计算机可读媒介的范围之内。
系统存储器130包括呈易失性和/或非易失性存储器形式的计算机存储媒介,例如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)一般保存在ROM 131中,基本输入/输出系统133(BIOS)包含例如在启动过程中,帮助在计算机110内的组件之间传送信息的基本例程。RAM 132一般包含处理器120可立即访问和/或目前正被处理器120处理的数据和/或程序模块。举例来说(但是不是限制),图1B图解说明了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110还可包括其它可更换/不可更换,易失性/非易失性计算机存储媒介。举例来说,图1B图解说明了相对于不可更换的非易失性磁性媒介进行读写操作的硬盘驱动器141,相对于可更换的非易失性磁盘152进行读写操作的磁盘驱动器151,和相对于可更换的非易失性光盘156,例如CD ROM或者其它光学媒介进行读取操作的光盘驱动器155。例证的操作环境中可使用的其它可更换/不可更换的,易失性/非易失性计算机存储媒介包括(但不局限于)盒式磁带、快速存储卡、数字通用光盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141一般通过诸如接口140之类的不可更换存储器接口与系统总线121相连,磁盘驱动器151和光盘驱动器155一般通过诸如接口150之类的可更换存储器接口与系统总线121相连。
上面描述并在图1B中图解说明的驱动器及它们的相关计算机存储媒介为计算机110提供计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1B中,硬盘驱动器141被图解表示成存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意这些部件可以和操作系统134、应用程序135、其它程序模块136和程序数据137相同,也可不同。这里,操作系统144、应用程序145、其它程序模块146和程序数据147被赋予不同的数字,以便说明至少它们是不同的副本。用户可通过诸如键盘162和指示器161,通常称为鼠标、跟踪球或触摸垫之类的输入装置,把命令和信息输入计算机110。其它输入装置(未示出)可包括麦克风、操纵杆、游戏柄、卫星碟形天线、扫描仪等等。这些及其它输入装置通常通过与系统总线121耦接的用户输入接口160与处理器120相连,不过也可由其它接口和总线结构,例如并行端口、游戏端口或通用串行总线(USB)相连。诸如Northbridge之类的图形接口182也可与系统总线121相连。Northbridge是与CPU或者主处理器通信的芯片组,并且承担加速图形接口(AGP)通信的职责。一个或多个图形处理器(GPU)184可与图形接口182通信。在这方面,GPU 184一般包括单片存储器,例如寄存存储器,并且GPU 184与视频存储器186通信。但是,GPU 184只是协处理器的一个例子,从而各种协处理器可包括在计算机110中。监视器191或者其它类型的显示器也通过接口,例如视频接口190也与系统总线121相连,视频接口190再与视频存储器186通信。一般来说,正是计算设备的该部分易受攻击,因此本发明提供伴随其而来的正被处理或再现的数据的保护和机密性。除了监视器191之外,计算机还可包括可通过输出外围接口195连接的其它外围输出装置,例如扬声器197和打印机196。
通过利用相对于一个或多个远程计算机,例如远程计算机180的逻辑连接,计算机110可在网络或分布式环境中工作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或者其它常见网络节点,并且一般包括上面相对于计算机110说明的许多或者所有元件,不过图1B中只图解说明了内存存储器181。图1B中描述的逻辑组件包括局域网(LAN)171和广域网(WAN)173,但是也可包括其它网络/总线。在家庭、办公室、公司计算机网络、企业内部网和因特网中,这样的组网环境是平凡的。
当用在LAN组网环境中时,计算机110通过网络接口或适配器170与LAN 171相连。当用在WAN组网环境中时,计算机110一般包括调制解调器172或者通过WAN 173,例如因特网建立通信的其它装置。调制解调器172(可以是内置的或者外置的)可通过用户输入接口160或者其它适当的机构与系统总线121相连。在网络环境中,关于计算机110描述的程序模块或者其多个部分可保存在远程存储设备中。举例来说(但不是限制),图1B把远程应用程序185图解表示成驻留在存储器181上。要认识到所示的网络连接只是例证性的,也可使用在计算机之间建立通信链路的其它装置。
例证的分布式计算框架或结构
鉴于个人计算和因特网的会聚,已开发并且正在开发各种分布式计算框架。个人及商业用户同样配有用于应用程序和计算设备的能够无缝共同使用的,允许Web的接口,使计算活动日益面向Web浏览器或网络。
例如,MICROSOFT的。Net平台包括服务器,积木式服务,例如基于Web的数据存储和可下载的设备软件。一般来说,.Net平台提供(1)使所有的计算设备一起工作,并且在所有计算设备上,使用户信息自动被更新和同步,(2)通过大量使用XML,而不是HTML,提高Web站点的交互能力,(3)从中央出发点到用户的产品及服务的特征定制访问和传送的在线服务,以便管理各种应用程序,例如电子邮件,或者软件,例如Office.Net,(4)集中式数据存储,这将提高对信息存取效率,并且方便信息存取以及用户和设备之间信息的同步,(5)集成各种通信媒介,例如电子邮件、传真和电话的能力,(6)对于开发人员来说,产生可重用模块的能力,从而提高生产率,并降低编程错误的数目,和(7)以及其它许多跨平台综合特征。
虽然这里关于驻留在计算设备上的软件实现的方法概述了例证实施例,不过也可通过操作系统,应用编程接口(API)或者协处理器和未受侵犯内容之间的“中人(middle man)”对象,实现本发明的一个或多个部分,以致受托内容服务可被所有.Net的语言和服务执行,得到所有.Net的语言和服务的支持或者通过所有.Net的语言和服务被访问,并且在其它分布式计算框架中也一样。此外,可认识到根据本发明描述的一种或多种技术可能涉及对硬件的改变,例如对GPU的改变,以便符合所述技术。
加密保护保密内容
从而,本发明提供扩大操作系统,或者任意平台,从而实现诸如防篡改的机密对话之类的“受托图形”应用,并且能够以防范擅自复制的方式实现内容的再现的方法和系统。图2图解说明了本发明解决的问题,其中加密收费内容200被表示成正在通过受托应用软件TS或者正在由受托应用软件TS产生。伴随受托软件TS的应用而来的是,在通过再现设备295再现内容200(或者其它应用)之前,内容200会涉及GPU 265的功能。这样的内容200将从系统或主存储器230传送给视频存储器260,以便由GPU 265处理。图2中的虚线图解说明安全问题的所在。如背景技术中所述,目前不存在完全确保通过虚线围绕的部件的内容的受保护和保密传送的系统。从受托软件TS的立场来看,第一个问题是在把内容交出给GPU之前,是否可把内容托付给虚线内的组件。假定受托软件TS能够正确验证虚线内的组件,则从受托软件TS的立场来看的第二个问题是受托软件TS必须合理地确信,一旦数据被交出到虚线内,则数据不会被改变。本发明在下面描述的各个实施例中解决这两种问题。按照不同的方式,通过(1)对重叠面的内容加密;(2)使GPU能够处理加密内容,而不会使非受托应用程序或非受托方获得所述加密内容;和(3)对命令缓冲器的内容加密,实现本发明的方法和系统。
本发明解决的受托图形处理和再现问题的第一方面涉及加密(这里有时称为“密码机”)处理器和索引密钥管理的提供。普通转让的同时待审的美国专利申请No.AA/BBB,CCC(‘CCC申请),“Methods andSystems for Authentication of Components in a Graphics System”(申请日YYYY,DD月)公开如下所述的验证和图形系统有关的组件的技术。但是,要明白本发明认为验证已发生,从而如下在本发明的各个实施例中所述,任意验证技术可被用于提供受托的图形平台。
例证的验证
在这方面,保密图形卡必须能够照这样验证它们自己。特别地,受托软件必须能够区分保密图形卡和传统图形卡或者欺骗设备,例如诱骗设备。另外,受托软件必须能够向图形卡显示加密密钥,并且能够核实密钥的接收者确实是保密图形卡。为此,保密图形卡配有根据本发明的加密处理器,所述加密处理器执行验证和密钥传送的加密任务。
对于硬件来说,根据本发明提供加密处理器,在制造中使所述加密处理器个别化,并出具证明。每个加密处理器包括唯一的专用解密密钥Kpriv。虽然根据本发明预期许多不同的加密和解密算法,并且所述许多不同的加密和解密算法为加密领域中的技术人员已知,不过,这里描述的算法是RSA,密钥长度为1024位,这两者都是非限制性的设计选择,可根据应用和所需的保密等级,按照众所周知的折衷,改变算法和密钥长度。
在这方面,通过把加密处理器添加到现有芯片上,或者通过把加密处理器作为独立芯片添加到图形卡上,把加密处理器永久安装在图形卡上。加密处理器实现公共密钥加密算法,如下更详细说明的一样,并且隐藏唯一的专用密钥。在这方面,这种加密处理器可利用现今的硅技术快速进行公共密钥解密。但是,加密处理器还可包括公共密钥加速器,并且可实现对称密码(AES)和某一控制逻辑。
在一个例证的非限制性实施例中,加密处理器包括下述易失性寄存器:(1)用于话路密钥的256位寄存器。该密钥的寿命一般为受托软件的运行时间,和(2)若干索引密钥的阵列。每个密钥为128位长,不过其它选择也是适宜的。每个密钥与特定的窗口相关,并被图形卡用于对其内容解密。每个密钥的寿命由来自受托软件的指令管理。
如上所述,本发明的加密处理器永久安装在图形卡上。从而,需要一种安全地与加密处理器连系,以便利用其功能的方法。就与加密处理器连系来说,本发明至少考虑两种技术:(1)相对于受托软件TS的外部接口和(2)GPU 265的接口。前一接口-至少就其加密特征来说-必须标准化。后一接口可以是特定实现,但是应遵守下面陈述的全部准则。
对于外部接口实现来说,外部接口把专用密钥(PK)加密协议用于验证和密钥传送。按照该协议,受托软件TS利用加密处理器的公共密钥对话路密钥加密。加密处理器接收作为结果获得的密码团(cryptoblob),并用其专用密钥译解所述密码团,从而获得话路密钥。现在,受托软件和加密处理器共享机密。受托软件可使用该话路密钥向加密处理器发送指令。
在一个非限制性实施例中,加密处理器通过下述函数暴露外部接口:
函数SetSessionKey()执行初始验证步骤和密钥传送。这是访问加密处理器的公共密钥功能的唯一函数。从而在一个实施例中,本发明计划每次引导时调用该函数。下述例证的伪代码代表SetSessionKey()的一人非限制性实现:
SetSessionKey(cryptoblob){
       PKDecrypt(privateKey,cryptoblob,sessionKey);
}
在成功完成操作之后,话路密钥寄存器包含来自于密钥团的一个密钥,例如一个256位的密钥。公共密钥算法可以是,例如1024位的RSA。
一旦在受托软件和加密处理器之间确定了对称的话路密钥K,则该密钥可被用于保护往来于加密处理器的所有其它通信。受托软件和加密处理器可借助简单的Get和Set方法进行通信,考虑到机密性和完整性,所述Get和Set方法的参数得到加密保护。特别地,可按照下述非限制性方式处理每个调用的参数块B:
AES(M|HMAC(M,K1),K2),
这里:
K1是K的前半部分(位0-127)
K2是K的后半部分(位128-255)
AES(M,K)是利用CBC模式下的AES,按照密钥K对消息M加密的结果
HMAC(M,K)是利用密钥K,对于消息M的恰当散列函数计算HMAC的结果
A|B是并置A和B的结果。
该格式可用于下述函数的输入参数及输出参数:
Set([IN] BOOL needsAck,[IN]BITS128 nonce,[IN]ENUMpropertyID,[IN]BYTESEQUENCE propertyParameters,[OUT]BYTESEQUENCE ack)
这里:
needsAck是布尔值,它允许受托软件指示是否需要确认。
nonce为受托软件选择的一个128位的值。如果请求确认,则nonce可用在确认中。
propertyID识别正被设置的性质。下表1中给出了所支持性质的例证列表。
propertyParameters是特定于每个propertyID的一系列参数。
最后,Ack是操作的确认。当且仅当设置needsAck时,加密处理器才产生ack。Ack由其后跟随特定于每个propertyID的消息的nonce构成。
Property ID Needs Ack Parameters Acknowledgement
索引密钥 索引,密钥,目的 好,失败
输出锁定 {锁定,开锁} 锁定操作后的状态
L2KEYMGMT 更新频率 好,失败
表1-Get函数的propertyID列表
对于索引密钥propertyID来说,该方法把新的密钥和目的标记写入由索引识别的密钥寄存器中。
对于输出锁定propertyID来说,该方法设置输出锁定标志。当设置该标志时,屏幕几何结构(宽度、高度、颜色深度、刷新率)以及图形卡输出(VGA,DVI)不能被改变。具体地说,在设置输出锁定标志时,图形卡不会执行改变这些设置的指令。
对于L2KeyMgmt propertyID来说,该方法在根据本发明描述的第二层保护,即下面更详细说明的对输入和输出加密情况下,设置密钥更新频率。
类似于,如下提出Get函数:
Get([IN]BITS128 nonce,[IN]ENUM propertyID,[IN]BYTESEQUENCE propertyParameters,[OUT]BYTESEQUENCEresponce)
这里:
nonce是受托软件选择的用在响应中的128位的值。
propertyID识别正被设置的性质。下表2中给出了所支持的性质的列表。
propertyParamters是特定于每个propertyID的一系列参数。
Response包含操作的结果。响应由其后跟随特定于每个propertyID的消息的nonce组成。
Property ID Parameters Response
输出端口 密钥索引 VGA、AGP等
验证代码 密钥索引 X-位数字
DX-SEC版本 版本号
保密面计数 支持的保密面的数目
重叠面计算 支持的重叠面的数目
主要类型 1
几何结构 主面的宽度、高度、刷新率、颜色深度
表2-Set函数的Property ID的列表
对于输出端口,该方法返回图形卡输出的设置,例如VGA、DVI等。
对于验证代码,按照根据本发明描述的第一层保护,即覆盖图的加密,该方法返回窗口的内容的无用信息。
对于DX-SEC版本,该方法返回图形卡所支持的DX-SEC的版本。
对于保密面计数,该方法返回图形卡所支持的保密面的数目。
对于重叠面计数,该方法返回图形卡所支持的重叠保密面的数目。
对于主要类型,该方法返回1,并且提供未来的灵活性。
对于几何结构,该方法返回主面的宽度、高度、刷新率和颜色深度。
Set函数还包括设置受保护区覆盖图的位置或大小,或者应被解密的主面的一部分的位置和大小的方法。
从而,上面的SetSessionKey,Get和Set和外部接口的非限制性实施例有关。术语“内部接口”指的是加密处理器和图形卡剩余部分之间的接口。根据本发明的这种接口的细节由每个单独的图形卡的实现决定,服从下述限制:(1)加密处理器应永久安装在图形卡上,和(2)加密处理器和图形卡剩余部分之间的连接不应被暴露。
在这方面,从图形卡取下加密处理器不应是无关紧要的。如果加密处理器被实现成独立芯片,则这主要是关于把加密处理器安装在图形卡上的机械接口的限制。一般来说,加密处理器应被焊接在图形卡上。另一方面,加密处理器应驻留在和主GPU相同的芯片上。允许取下加密处理器的标准化机械接口,例如智能卡阅读器,插槽底座等的使用是不可接受的。
此外,必须不能接触加密处理器和图形卡剩余部分之间的物理连接,并且不能通过标准接口暴露所述物理连接。例如,根据本发明,该总线上的USB连接件是不可接受的。
对于密钥管理的规则来说,只可根据其相关目的参数使用各个索引密钥。在一个实施例中,目的参数的值具有下述含意:
L1STREAM:该密钥只可和下面关于本发明提供的第一层保密性,即覆盖图的加密说明的DX-SEC流密码一起使用。
L2BLOCK:该密钥只可在下面描述的本发明提供的第二层保密性,即对输入和输出加密的ECB模式下,和块密码一起使用。ECB模式下的块密钥被用于译解受托软件写入的纹理块。
在这方面,当索引已被填入新值时,不应保持密钥的任何副本。
第一层保密性-加密的覆盖图
由于视频存储器可被运行于CPU上的非受托软件映射和读取,因此视频存储器不能包含呈明文形式的信息。服从该要求的视频存储器包括用于刷新显示器的视频存储器。根据本发明满足该标准的系统的初始实现对重叠面的内容加密。随后当图像被发送给显示器时,覆盖图在传输过程中由DAC硬件解密,或者刚好在到达DAC硬件之前被解密。
图3A图解说明了这种技术的一个例证实现。来自任意地方的,易被受托应用软件210发现或产生的加密收费内容200被受托应用软件210接收。跟着发生与加密处理器220的验证交换,例如上面在例证实施例中描述的验证交换程序,或者由保密地或者通过受其它方法保护的路径传送保密密钥的任意其它技术实现。内容200从系统存储器230传到加密的覆盖面240,覆盖面240覆盖视频存储器260的主面270。结合加密处理器220,GPU 265的解密部分250对加密覆盖图240提供的加密层解密,并把内容传送给象素选择280,以便输出给数字视频接口(DVI)/数-模转换器(DAC)290,从而输出给再现设备,例如监视器。但是,图3A中描绘的系统不满足上面说明的所有标准,因为只存在一个覆盖图。为了满足受托环境所需的最小功能,例如受托窗口,本发明在一个备选实施例中实现两个覆盖图。第一个“保密”覆盖图实质上是目前存在于平台中的覆盖图,主要用于播放视频,被扩充以致其内容可被加密。第二个覆盖图是专用设计的用于呈现敏感的用户界面,例如电子商务对话。该“受保护覆盖图”总在最前面,并且是不可遮蔽的,即无颜色调节,并且优先权高于第一覆盖图。为了使费用降至最小,第二覆盖图可能受到某些限制。例如,可这样形成第二覆盖图,以致数据处于和主面相同的象素格式,并且不能被拉伸或多重缓冲。另外,受保护覆盖图的内容可由硬件核实。表3总结了保密覆盖图和受保护覆盖图之间的例证差异。
项目 保密覆盖图 受保护覆盖图
和主面相同的象素格式
可被拉伸
可被目的地(destination)调色
可被多重缓冲
总在最前面
内容可被核实
表3对比保密覆盖图和受保护覆盖
图3B表示包括保密覆盖图,例如保密覆盖图翻转链(flipping chain)310的覆盖图310a、310b和310c,和受保护覆盖图320。可能的时候,流密码被用于保密面加密,因为和块密码相比,它们实现更快并且更简单(更多细节参见附录A)。流密码根据“流中字节的位置”对数据加密。从而,本发明的第一级保密性利用位于该面左上角的象素加密密钥初始化流密码。为包含在覆盖面内的每个象素预置流密码,而不考虑象素是否将被显示。提议的系统包括两个流密码加密组件300a和300b,一个用于保密覆盖图,一个用于受保护覆盖图。一旦存在解密象素值,则硬件280选择受保护覆盖图320,保密覆盖图310(如果主面(primary)270等于颜色密钥(key)和/或如果允许颜色调节)或者主面270的象素值,并通过DVI/DAC 290把象素值发送给显示硬件。
注意对手通过任意数目的手段,可接触覆盖图,从而使显示图像看不见,或者用噪声内容替换保密内容,因为对手写入的数据也将被加密。虽然本发明并不直接防范这些攻击,不过本发明确实提供完整性检查,以便确保向最终用户呈现的是预期的内容。从而,如果输出不同于输入,则用户或受托软件210可被警告存在对内容的篡改。
对于覆盖图的软件接口来说,除了通常的覆盖图信息,例如源和目的地边界框,目的地颜色密钥等,保密覆盖图310保持规定的加密密钥索引,受保护覆盖图320另外保持规定的存储器位置,解密后的覆盖图内容的循环冗余码(CRC)应被写入所述存储器位置。
保密覆盖图接口类似于现有的覆盖图,除了翻转(flip)方法规定覆盖图后端缓冲器310a,即相对于其正在翻转数据的缓冲器的内容的加密密钥索引之外。
受保护覆盖图接口更简单,并且为在首次显示之后,要转发给存储器位置的面的CRC作为准备。标准化硬件接口控制覆盖图的位置,并且基于轮询,使CRC适用于关心的软件。例如,一个寄存器可指示CRC是否适用,另一个寄存器可使CRC能够被读取。例如,在受保护覆盖图接口方面,可利用下述例证伪代码:
HRESULT UpdateOverlay(LPPOINT ppntUL);
这里:
ppntUL指定受保护覆盖图的左上角。
在这方面,如果与完整性有关,则软件210计算预期的CRC值。
第二层保密性-加密的输入和输出
根据本发明,为了把GPU 265扩充到处理作为输入的加密内容,并发出作为输出的加密内容,加密和解密硬件被添加到纹理映射装置(在输入一侧)和字母混合装置(在输出一侧),硬件设计人员协作,遵守实现该功能方面的一些规则。由于流密码不能实现对加密数据的随机存取,因此系统使用块密码对数据加密,例如每次128位。在超高速缓冲存储器行填充(cache line fill)状态下,纹理映射装置解密,当从颜色缓冲器读取超高速缓冲存储器时,字母混合装置解密,并在写入之前,字母混合装置加密。这些操作中使用的加密密钥可以不同。
除3D再现之外的计算任务,例如视频解码是刚刚描述的范例的直接扩展。视频宏数据块代替纹理用作加密输入;正被解码的输出帧代替颜色缓冲器用作加密输出。如果当在命令流中把内容带内传送给GPU 265时,要保护所述内容,那么下面描述如何对命令缓冲器加密。
图4A描绘了刚刚描述的借助加密和解密组件440执行前端操作的系统,把加密面420用作输入,发出作为输出的加密面,即加密纹理和颜色缓冲器技术的前端。本发明还提供加密纹理400a,而纹理400b可以是视频存储器260的典型纹理。加密纹理400a输出给GPU 265的解密组件450,解密组件450和加密处理器220一起工作,对纹理解密,并且借助组件430a,对来自组件440的解密数据应用图形算法,例如阴影法等等。
就预测合成的页面翻转桌面的配置来说,刚刚描述的图4A的系统可保护整个桌面,只要DAC硬件能够如上所述对主面以及覆盖面310和320解密。注意在这种情况下,DAC硬件利用块密码,而不是流密码进行解密。这样的系统允许任意数目的保密面参与桌面,同时对它们施加任意Z轴排序,混合或者甚至3D或者效果,而不会损害保密性。必须总在最前面并且其内容必须可核实的受保护覆盖面320驻留在单独的表面中。上面描述的保密覆盖图310继续存在,直到可借助保密页面翻转桌面或者平台,用软件模拟它为止。
在一个实施例中,除了能够对主面270解密之外,系统要求GPU 265还能够对来自普通桌面应用程序,例如受托字处理器的明文加密,以致它们也能够参与桌面。图4B图解说明了这样的情况,其中包括前表面510b和后表面510a的主翻转链510被加密。从而,主面可由桌面合成器430处理,由加密/解密组件440a分别保护相对于其的输入输出。在与加密处理器220通信的情况下,解密组件500随后对前表面510b解密,以便输出给DVI/DAC 290。这使系统暴露于下面相对于确保保密性说明的某些类型的攻击之下,在所述下述说明中讨论防范这些攻击的一些策略。
图4C描绘了图4B的替换物,其中实现了对保密覆盖图翻转链310的抄录。从而,作为对主面270加密的替换,根据本发明,硬件能够实现供保密覆盖图硬件300a消耗的流密码加密,保密覆盖图硬件300a和加密处理器220一起对流密码数据解密。和利用块密码对主面加密相比,这种表示机制花费不高,但是作为设计折衷,可能不能象利用块密码对主面加密那样可升级和灵活。由于保密覆盖图310使用流密码进行加密,这种情况下合理的支持操作是‘复制’操作,‘复制’操作中,解密组件440b利用输入面510a的块密码对输入解密,并且组件440b利用覆盖图的流密码重新加密。
在每次一个加密输入就足够的情况下,这些实施例,以及它们的各种组合是实用的,只要任意数目的明文输入可和加密输入相结合,产生加密输出即可。
对于确保保密性来说,根据本发明可实现的措施有很多种。首先,上面描述的第二层保密性依赖于这样的思想,即一旦明文被解密,则明文不能泄漏出GPU 265。例如,不存在能够借助主机的中央处理器(CPU)从芯片读出明文的调试寄存器或者其它工具。除了小心进行硬件设计以避免这种泄漏之外,GPU 265指令集被设计成使得不能实现对输入的解密,又不能实现对输出的加密。此外,硬件防止明文数据的泄漏,不论是由劣种(rogue)驱动器,由对抗性代码,还是由意外引起的泄漏。
另外,硬件不可能泄漏密钥。一旦通过按照验证交换描述的加密协议,密钥被传送给GPU 265,则这些密钥只适用于加密和解密组件。
如上所述,如果GPU 265能够对明文加密,以便在主面270中显示,则这种功能被看成是系统中的弱点,因为这种加密功能是描述的其中对手能够同时获得明文和对应的加密文本的唯一机制。通过映射主面,以致CPU可看到所述主面,并且产生必须被加密的窗口,对手可构建对应于已知明文块的加密文本子集。当“有趣的”文本块的数目较小时,这些所谓的“字典攻击”效果很好。例如,对于以32bpp显示模式下黑白对话框的显示来说,由于每个块存在4个象素,这样的对话只需要显示16个块。对于已发现这16个加密文本块的对手来说,一种可能的途径是通过产生即使在被GPU 265解密之后,仍然有意义的内容,向最终用户伪选对话。由此,受保护覆盖图最适合于防范篡改的对话,因为当最终用户还没有看到预期应看到的内容时,它可使应用程序检测出。
从而,挫败希望产生字典的对手的良好策略有两种。首先,由于字典只适用于指定的密钥,因此改变密钥并对内容重新加密可迫使对手开始准备新的字典。此外,对于主面的加密来说,不需使软件能够得到密钥-它可在硬件中滚动,软件只需被告知密钥已改变。由于先前的密钥仍然存在,因此软件可使用先前的密钥对未改变的主面部分解密和重新加密。从而,加密处理器220以选前的密钥仍然存在,例如加密密钥索引的双重缓存的方式,并且以通知软件密钥已滚动的方式,定期滚动主面270的加密密钥。
另一种策略涉及在加密之前,对图像内的位置编码。例如,在对其加密之前,图像中的(x,y)象素位置(或者其它衍生值,例如图像偏移)可被异-或(XOR)成象素数据;从而可在解密之后进行操作。其结果是,表面的不同区域中的象素块被不同加密,明文-加密文本映射只对该表面中的指定位置有意义,对于攻击者来说这是无效的。
本发明还提供预定的混合(swizzled)格式。由于纹量和离屏面要求随机存取,因此必须利用块密码对它们编码。在块密码的典型块大小和用于现代的3D加速器的典型超高速缓冲存储器行大小之间存在良好的协同作用,例如如果超高速缓冲存储器行和块大小都为128位,则可在硬件中实现有效的加密和解密。甚至如果存在轻微的差别(例如128位的块大小和256位的超高速缓冲存储器行大小),硬件实现也很可能是高效的。
关于加密纹理数据的一个问题在于块加密方案要求在可被加密或解密之前,要存在相邻的字节块;并且超高速缓冲存储器行填充要求象素数据被‘混合’,即形成从图像中的(X,Y)位置到地址的变换,以致超高速缓冲存储器行填充产生2D区域的象素。至今,硬件厂家表面上揭示了线性面格式,同时在不通知应用程序的情况下,搅和图像数据。但是,由于受托软件将发出加密纹理数据,因此软件必须预先知晓混合方案,从而它能够对相邻的数据块加密,并保存2D位置。作为响应,本发明确定混合图像格式的字典,包括YUV 4∶4∶4,4∶2∶2和4∶2∶0以及RGB格式,供应用程序之用。这些格式的性能可能不象图像被混合成硬件专用格式的性能那么高,但是加密是值得的,虽然性能稍微被降低,即用保密性换取速度。
对于AYUV/ARGB(32bpp,压缩)来说,除了用于亮度(Y)和色度(U和V)样本的8位颜色通道之外,该32bpp面格式还包含一个字母通道。另一方面,它可以包含标准的ARGB 32bpp,因为两种格式都为32bPP并且都被压缩。下面的讨论假定AYUV。线性布局如图5中所示。
图像中象素(X,Y)的偏移如下:
Offset=Y*Pitch+X*4
假定128位加密块大小和超高速缓冲存储器行大小,4个象素可适合单个加密块。在产生地址之前,交织X和Y的最低有效位会导致超高速缓冲存储器行填充中改进的2D位置。
图5B中图解说明了得到的图像布局。每个编号矩形是一个象素,粗体矩形是加密块。本发明的用于这种格式的把图像中的(x,y)位置转换成偏移的混合函数的例证伪代码如下:
DWORD:
SwizzleAYUV(DWORDx,DWORDy,DWORD Pitch)
{
  //pitch is number of bytes per scanline of macro blocks
  DWORD BlockOffset=(v>>1)*Pitch+(x>>1)*(128/8);
  DWORD IntraBlockOffset=((y&2)<<2)|(x&2)<<1)|((y&1)
   <<1)|(x&1);
  return BlockOffset+IntraBlockOffset*4;
}
对于YUY2(16bpp,压缩)来说,该面格式以为2的系数对‘色度’样本U和V进行水平二次抽样。结果是平均每个象素16位的压缩图像格式。图6A中表示了该线性布局。本发明的混合格式分配4×2象素的加密块,如图6B中所示。和图5A和5B的情况相同,128位的块也被混合。注意对于图6B和对于把(x,y)坐标转换成图像偏移的下述例证混合伪代码来说,U和V被假定为具有相等的X坐标:
    DWORD

    SwizzleYUY2Y(DWORDx,DWORDy,const
SURFACEDESC&sd)

    {

     assert(x<sd.Width);

      assert(y<sd.Height)

     DWORD BlockOffset=(y>>1)*sd.Pitch+(x>>2)*(128/8);

      DWORD IntraBlockOffset=((x&2)<<1)|

        ((y&1)<<1)|

        ((x&1)<<0);

      DWORD dwRet=BlockOffset+(IntraBlockOffset<<1);

      return dwRet;

    }

    DWORD

    SwizzleYUY2U(DWORDx,DWORDy,const
SURFACEDESC&sd)

    {

    assert(x<sd.Width);

     assert(0==(x&1));

     assert(y<sd.Height)

    DWORD BlockOffset=(y>>1)*sd.Pitch+(x>>2)*(128/8);

     DWORD IntraBlockOffset=((x&2)<<1)|

       ((y&1)<<1)|

       ((x&1)<<0);

     return BlockOffset+(IntraBlockOffset<<1)+1;
        <!-- SIPO <DP n="26"> -->
        <dp n="d26"/>
   }
   DWORD
   SwizzleYUY2V(DWORDx,DWORDy,const
SURFACEDESC&sd)
   {

    assert(x<sd.Width);

     assert(0==(x&1));
     assert(y<sd.Height)

    DWORD BlockOffset=(y>>2)*sd.Pitch+(x>>3)*(512/8);

     DWORD IntraBlockOffset=((x&2)<<1)|

       ((y&1)<<1)|

       ((x&1)<<0);

     return BlockOffset+(IntraBlockOffset<<1)+3;

    }
在这方面,对于附随图5A、5B、6A和6B的伪代码来说,面间距被定义成128位块的每条扫描线的字节数。
对于压缩平面(12bpp)来说,该面格式以为2的系数水平地和垂直地对U和V二次抽样。在该表面的两个独立部分中展开亮度和色度样本。图7A中表示了压缩平面(12bpp)的线性布局。
面间距被定义成Y平面中512位块的每条扫描线的字节数。UV平面的间距为Y平面的间距的一半,因为UV平面上存在的样本为Y平面上样本的1/4,但是每个样本的颜色元素为Y平面上样本的2倍。图7B中表示了根据本发明的混合图像格式。
本发明的用于该格式的,把(x,y)坐标转换成Y、U和V元素的偏移的混合函数的例证伪代码如下:
    DWORD

    SwizzlePP12Y(DWORDx,DWORDy,const SURFACEDESC&sd)

    {

      assert(x<sd.Width);
        <!-- SIPO <DP n="27"> -->
        <dp n="d27"/>
  assert(y<sd.Height)
  DWORD BlockOffset=(y>>2)*sd.Pitch+(x>>2)*(128/8);
  DWORD IntraBlockOffset=((y&2)<<2)|

    ((x&2)<<1)|

    ((y&1)<<1)|

    (x&1);
  return BlockOffset+IntraBlockOffset;
}
DWORD
SwizzlePP12U(DWORDx,DWORDy,const SURFACEDESC&sd)
{
  DWORD PlaneOffset=(sd.Height>>3)*sd.Pitch;
  if((0!=(x&1))||(0!=(y&1)))
  _asm int 3
  x>>=1;
  y>>=1;
  DWORD BlockOffset=(y>>1)*sd.Pitch/2+(x>>2)*(128/8);
  DWORD IntraBlockOffset=((x&2)<<1)|

    ((y&1)<<1)|

    (x&1);
  return PlaneOffset+BlockOffset+(IntraBlockOffset<<1);
}
DWORD
SwizzlePP12V(DWORDx,DWORDy,const SURFACEDESC&sd)
{
  DWORD PlaneOffset=(sd.Height>>3)*sd.Pitch;
  if((0!=(x&1))||(0!=(y&1)))
  _asm int 3
  x>>=1;
        <!-- SIPO <DP n="28"> -->
        <dp n="d28"/>
      y>>=1;

      DWORD BlockOffset=(y>>1)*sd.Pitch/2+(x>>2)*(128/8);

      DWORD IntraBlockOffset=((x&2)<<1)|

        ((y&1)<<1)|

        (x&1);

      return PlaneOffset+BlockOffset+(IntraBlockOffset<<1)+1;

    }
第三层保密性-加密的命令缓冲器
根据本发明,可扩充上面关于第一层和第二层保密性说明的实施例的功能,以便除了GPU 265正在处理的图像数据外,还对提供给GPU 265的命令缓冲器加密。如果应用程序210希望保护发送给命令缓冲器中的硬件的内容,则这种功能是合乎需要的。图9A表示使用加密命令缓冲器900的视频解码,由此,内容被传递全加密纹理400a,并由解密组件450解密,以及由视频解码器430b解码。虽然可以只相对于命令缓冲器被加密,但是内容在视频存储器以及在命令缓冲器中被加密,如同由加密的解码帧420a所示。从而在类似于此的情况下,对命令缓冲器加密是恰当的,在所述情况下,宏数据块在视频存储器中,同时在命令流中发送运动矢量和其它命令。
在颜色缓冲器加密不足以保护所考虑的内容的警告下,关于加密纹理数据的可分性约束也适用于加密命令缓冲器数据。中间缓冲器,例如Z缓冲器也可被加密,以便保护系统防止明文攻击。图9B表示了根据本发明利用加密命令缓冲器的例证3D再现。如图所示,3d再现命令810在到达视频解码器430c的途中被加密。纹理数据400a被解密组件450解密,并由视频解码器430c按照命令810进行处理。随之而来的是,借助加密/解密组件830对颜色缓冲器820中的数据加密。
可利用两种途径,在命令缓冲器的消耗之前,或者在已消耗命令缓冲器之后,进行篡改检测。在一个实施例,在显示或再现内容之后,启动篡改检测。
其它备选实施例-图形卡的输出的加密
在上述各个实施例中,虽然关于图2的虚线部分证明并描述了保密性和完整性。但是还没有关于视频输出证明保密性和完整性,即,理论上,图形卡和诸如监视器之类的再现设备之间的接口,和/或再现设备本身受到攻击。
从而,在上述实施例中,如图9A中所示,在过程中的某一点,即使在视频存储器中和在图形卡处理过程中,内容受到保护,但是该数据被不用密码地发送给DVI/DAC 290。从而,在到达再现设备的途中,以及在再现设备之内时,数据可能被剽窃或者被改变。
从而,根据本发明的一个备选实施例,所述备选实施例可和这里描述的其它实施例随意组合,在再现设备中设置一个同型的加密处理器220b,补充加密处理器220a执行的功能。在这方面,在通信上与加密处理器220a耦接的加密组件910a在把数据传送给DVI/DAC组件290之前,对数据加密,通信上与加密处理器220b耦接的解密组件910b译解该数据,作为所进行的显示或再现的一部分,防止数据的剽窃。另一方面,加密组件910a可和DVI/DAC组件290包含在一起。总之,通过应用相同的加密和解密,以及密钥管理技术,可在整个图形流水线内保护内容,实现内容的加密保护保密传送和处理。
如上所述,虽然已关于各种计算设备、硬件、软件和网络结构说明了本发明的例证实施例,不过基础概念可应用于其中希望保护来自于受托来源的内容的任意计算设备或系统。从而,根据本发明的加密保护保密内容的技术可应用于各种应用程序和设备。例如,本发明的加密保护保密内容的方法可应用于计算设备的操作系统,以设备上的独立对象的形式,以另一对象的一部分的形式,以可从服务器下载的对象的形式,以分布式对象的形式等提供。虽然这里例证的编程语言、伪代码、名称和例子被选为各种选择的代表,不过,这些编程语言、伪代码、名称和例子并不意味着对本发明的限制。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。为了与计算机系统通信,最好用面向过程或对象的高级编程语言实现通过利用数据处理API,操作系统,受托应用程序等,可应用本发明的技术的一个或多个程序。但是,需要的话,也可用汇编或机器语言实现程序。总之,语言可以是被编译语言或者被解释语言,并且在本发明的各个实施例中,对GPU 265的硬件实现强加各种条件。
也可借助以通过某些传输媒介,例如通过电线或电缆,通过光纤或者借助其它形式的传输,传送的程序代码的形式体现的通信实践本发明的方法和设备,其中当程序代码被诸如EPROM,门阵列,可编程逻辑器件(PLD),客户机,视频记录器等,或者具有图形卡和上面在例证实施例中描述的加密能力的接收机器之类的机器接收,被载入所述机器中,并被所述机器执行时,所述机器变成实践本发明的设备。当在通用处理器上实现时,程序代码与处理器结合,形成调用本发明的功能的独特设备。另外,结合本发明使用的存储技术可以总是硬件和软件的组合。
虽然已结合各个附图中的优选实施例说明了本发明,但是要明白也可使用其它类似的实施例,或者可对所述实施例进行修改和添加,以便在不脱离本发明的情况下,实现本发明的相同功能。例如,虽然在网络环境,例如对等网络环境方面描述本发明的例证网络环境,不过本领域的技术人员将认识到本发明并不局限于此,如同本申请中说明的方法可应用于任意计算设备或环境(不论是有线还是无线),例如游戏控制台,手持式计算机,便携式计算机等等,并且可应用于通过通信网络连接,并跨越网络交互作用的任意数目的这种计算设备。此外,应强调的是各种计算机平台,包括手持式设备操作系统和其它应用程序专用操作系统在预期范围之内,尤其是当无线网络设备的数目继续激增时。此外,可在若干协处理芯片或设备,例如具有若干GPU的设备中,或者跨越所述若干协处理芯片或设备实现本发明,并且可跨越若干设备类似地实现存储。于是,本发明不应局限于任意单个实施例,相反本发明的宽度和范围应根据附加的权利要求限定。
附录A:流密码与块密码的比较
本附录详述了当与本文献的内容相关时,流密码和块密码之间的差别。
问题 流密码 块密码
间隔尺寸 字节 16字节(128位)
随机存取 困难/不可能 直接
密钥变换 频繁(每帧) 不频繁
复杂性 1X 流密码的4倍
IP状态 专有 公用域
一般来说,和块密码相比,流密码的实现更快速和更简单。
如同名称所暗示的,流密码对字节流加密和解密。为了对流中的第N个字节加密,密码从起点开始,并且朝着所需的偏移量每次前进一个字节进入该流中。
相反,以电子源码书方式运行的块密码可对数据中的任意块加密或解密,但是每次必须对完整的数据块加密/解密。典型的块大小为16个字节。
以这样的方式使用流密码,以致相同的数据不会被加密两次,即用于加密和解密的密钥必须频繁更换。例如,当用于收费视频播放时,每帧改变密钥就足够了。
最后要指的是,存在适用于公用域中的质量良好的块密码。

Claims (115)

1、一种与计算设备的受托图形系统一起加密保护保密内容的方法,所述受托图形系统具有视频存储器,至少一个图形处理器(GPU)和与所述至少一个GPU通信耦接的加密处理装置,所述方法包括:
应用程序和设备之一请求图形系统执行保密内容的处理和再现之一,其中所述请求包括所述应用程序和设备之一把话路密钥传送给图形系统,并把所述保密内容传送给视频存储器的至少一个加密部分;
由与所述加密处理装置通信的所述至少一个GPU对视频存储器的所述至少一个加密部分的内容解密;
所述至少一个GPU执行关于所述解密内容的处理和再现之一;和
从至少一个GPU输出所述内容。
2、按照权利要求1所述的方法,其中如果所述输出的输出不同于针对由所述至少一个GPU对所述保密内容执行的任意处理所调整的所述请求的保密内容,则向所述应用程序和设备之一警告所述差异。
3、按照权利要求1所述的方法,其中所述传送包括把所述保密内容传送给至少一个加密覆盖面,所述至少一个加密覆盖面至少重叠所述视频存储器的一个主面。
4、按照权利要求1所述的方法,其中对视频存储器的所述至少一个加密部分的内容解密包括对主面的几何部分解密,从而除几何部分之外的象素不被解密。
5、按照权利要求1所述的方法,其中通过下述之一:(A)把加密处理器添加到现有芯片上和(B)以独立芯片的形式把加密处理器添加到图形卡上,来把加密处理器永久安装在图形卡上,
从而加密处理器和图形卡剩余部分之间的物理连接不可接触,不被暴露。
6、按照权利要求3所述的方法,其中所述解密包括由与所述加密处理装置通信耦接的所述GPU的解密机构对所述至少一个加密覆盖面解密。
7、按照权利要求3所述的方法,其中所述解密包括下述之一:(A)当按照所述输出,输出内容时,在传输途中(on-the-fly)由图形系统的数-模转换(DAC)硬件对所述至少一个加密覆盖面解密,和(B)刚好在内容到达图形系统的DAC硬件之前,在传输途中对所述至少一个加密覆盖面解密。
8、按照权利要求3所述的方法,其中所述解密包括由不具有相对于主系统的反向通道的组件,在内容到达图形系统的DAC硬件之前,对所述至少一个加密覆盖面解密。
9、按照权利要求1所述的方法,还包括:
在所述输出之前,与所述加密处理装置通信的所述至少一个GPU重新加密所述内容;和
外部计算设备的至少一个第二加密处理装置对所述重新加密内容进行解密。
10、按照权利要求1所述的方法,其中内容以数字形式被传送给具有第二加密处理装置的外部设备,并且在所述外部设备上进行所述解密。
11、按照权利要求9所述的方法,其中所述外部计算设备是(A)监视器,(B)机顶盒和(C)数字信号处理(DSP)再现设备之一。
12、按照权利要求3所述的方法,其中所述传送包括把所述保密内容传送给下述之一:(A)用于保密内容的基本再现的第一加密保密覆盖图,(B)特别用于呈现敏感用户界面的第二加密受保护覆盖图,(C)用于保密内容的基本再现的主面的第一加密区,(D)主面的特别用于呈现敏感用户界面的第二加密区。
13、按照权利要求1所述的方法,其中所述解密包括计算解密数据的加密摘要,所述方法还包括:
把所述加密摘要传送给应用程序和设备之一,以便确保显示的象素是与应用程序和设备之一发出的所述请求相关而发送的象素。
14、按照权利要求12所述的方法,其中第二加密受保护覆盖图总是在前面,并且不可遮蔽,其中第二加密受保护覆盖图的内容由所述至少一个GPU核实。
15、按照权利要求12所述的方法,其中所述解密包括下述之一:(A)利用第一流密码解密组件对第一加密保密覆盖图的内容解密,(B)利用第二流密码解密组件对第二加密受保护覆盖图的内容解密,(C)利用第一流密码解密组件对主面的第一加密区的内容解密,和(D)利用第二流密码解密组件对主面的第二加密区的内容解密。
16、按照权利要求15所述的方法,其中主面中每个象素的至少一位被用于确定该象素的虚拟受保护面中的隶属关系,其中图形卡根据所述至少一位,选择该象素的恰当解密密钥。
17、按照权利要求16所述的方法,其中如果所述至少一位包含零值,则与所述至少一位相关的虚拟受保护面被认为是不要解密的区域。
18、按照权利要求15所述的方法,还包括一旦解密的象素值可用,则所述至少一个GPU的象素选择组件选择(A)第二加密受保护覆盖图,(B)第一加密保密覆盖图和(3)主面之一的象素值。
19、按照权利要求12所述的方法,其中所述请求至少包括下述之一:(A)所述至少一个加密覆盖面的源和目的地边界框,(B)所述至少一个加密覆盖面的目的地颜色密钥,(C)就第一加密保密覆盖图来说,数据将被翻转给其的覆盖图后向缓冲器的内容的加密密钥索引的说明,(D)就第二加密受保护覆盖图来说,将写入加密覆盖图内容的循环冗余码(CRC),完整性量度和摘要值至少之一的存储器位置的说明,(E)至少一个加密主面的源和目的地边界框,和(F)所述至少一个加密主面的目的地颜色密钥。
20、按照权利要求19所述的方法,其中如果所述应用程序和设备之一关心内容的完整性,则所述应用程序和设备之一至少计算CRC、完整性量度和摘要值之一。
21、按照权利要求1所述的方法,其中伴随所述请求而发送给至少一个GUP的视频解码装置的至少一个命令缓冲器被至少所述应用程序和设备之一加密,并被与所述加密处理装置通信的所述视频解码装置解密。
22、按照权利要求21所述的方法,还包括通过利用两种途径之一,(A)在命令缓冲器的消耗之前,和(B)在已消耗命令缓冲器之后,对所述至少一个命令缓冲器进行篡改检测。
23、执行按照权利要求1所述的方法的操作系统、其上保存若干计算机可执行指令的计算机可读介质、协处理设备、计算设备和传送计算机可执行指令的调制数据信号至少之一。
24、一种和计算设备的受托图形系统一起加密保护保密内容的方法,所述受托图形系统具有视频存储器,至少一个图形处理器(GPU)和与所述至少一个GPU通信耦接的加密处理装置,所述方法包括:
应用程序和设备之一请求图形系统执行保密内容的处理和再现之一,其中所述请求包括所述应用程序和设备之一把话路密钥传送给图形系统,以便由加密处理装置核实,并把所述保密内容传送给视频存储器的至少一个加密部分;
所述至少一个GPU的输入装置的解密机构对视频存储器的所述至少一个加密部分的内容解密,其中所述解密机构与所述加密处理装置通信;
所述至少一个GPU执行关于所述解密内容的所述处理和再现之一;
利用至少一个GPU的输出装置的加密/解密机构对所述内容加密;和
从至少一个GPU输出所述加密内容。
25、按照权利要求24所述的方法,其中所述输入装置是纹理映射装置,所述输出装置是字母混合装置,其中所述视频存储器的所述至少一个加密部分是加密纹理面。
26、按照权利要求24所述的方法,其中所述保密内容是纹理数据,明文和视频宏数据块之一。
27、按照权利要求24所述的方法,其中所述加密和解密分别包括利用块密码的加密和解密。
28、按照权利要求25所述的方法,其中纹理映射装置的所述解密机构在超高速缓冲存储器行填充状态下加密,其中字母混合装置的加密/解密机构在写入前加密。
29、按照权利要求25所述的方法,还包括当从视频存储器中的颜色缓冲器读取超高速缓冲存储器行时,由字母混合装置的加密/解密机构解密。
30、按照权利要求24所述的方法,还包括:
把所述加密输出内容从所述视频存储器的加密后方主面翻转到所述视频存储器的加密前方主面;
与所述加密处理装置通信的所述至少一个GPU的第二解密机构对所述加密输出内容进行第二次解密;和
第二次输出所述输出内容。
31、按照权利要求24所述的方法,其中所述输出包括把加密内容输出给保密覆盖图翻转链,所述方法还包括:
把所述加密输出内容从加密后方保密面翻转到加密前方保密面,从而所述加密/解密机构进行的所述加密包括利用流密码加密法进行的加密;和
与所述加密处理装置通信的所述至少一个GPU的流密码解密机构对所述加密输出内容进行第二次解密。
32、按照权利要求31所述的方法,还包括:
在所述加密之前,对内容中的位置编码;和
在所述第二次解密之后,对内容中的位置解码,
从而从外部不能获得所述位置,保持明文-加密文本映射的完整性。
33、按照权利要求24所述的方法,其中如果所述输出的输出不同于针对由所述至少一个GPU对所述保密内容执行的任意处理所调整的所述请求的保密内容,则向所述应用程序和设备之一警告所述差异。
34、按照权利要求24所述的方法,还包括:
在所述输出之前,与所述加密处理装置通信的所述至少一个GPU重新对所述内容加密;和
外部计算设备的至少一个第二加密处理装置对所述重新加密内容解密。
35、按照权利要求34所述的方法,其中所述外部计算设备是(A)监视器,(B)机顶盒和(C)数字信号处理器(DSP)再现设备之一。
36、按照权利要求24所述的方法,其中利用块密码对由所述应用程序和设备之一传送的加密纹理和加密离屏面编码,所述应用程序和设备之一利用预定混合格式和压缩平面格式混合块密码,所述预定混合格式把内容中的(x,y)位置转换成YUV、RGB、YUY2至少之一的偏移。
37、按照权利要求24所述的方法,其中伴随所述请求而发送给至少一个GUP的视频解码装置的至少一个命令缓冲器被至少所述应用程序和设备之一加密,并被与所述加密处理装置通信的所述视频解码装置解密。
38、按照权利要求24所述的方法,还包括通过利用两种途径之一,(A)在命令缓冲器的消耗之前,和(B)在已消耗命令缓冲器之后,对所述至少一个命令缓冲器进行篡改检测。
39、执行按照权利要求24所述的方法的操作系统、其上保存若干计算机可执行指令的计算机可读介质、协处理设备、计算设备和传送计算机可执行指令的调制数据信号至少之一。
40、至少一种计算机可读介质,所述计算机可读介质包括计算机可执行模块,所述计算机可执行模块包括与计算设备的受托图形系统一起加密保护保密内容的计算机可执行指令,所述受托图形系统具有视频存储器,至少一个图形处理器(GPU)和与所述至少一个GPU通信耦接的加密处理装置,所述计算机可执行模块包括:
由应用程序和设备之一用于请求图形系统执行保密内容的处理和再现之一的装置,其中所述请求装置包括所述应用程序和设备之一用于把话路密钥传送给图形系统的装置,和把所述保密内容传送给视频存储器的至少一个加密部分的装置;
由与所述加密处理装置通信的所述至少一个GPU对视频存储器的所述至少一个加密部分的内容解密的装置;
所述至少一个GPU执行关于所述解密内容的所述处理和再现之一的装置;和
从至少一个GPU输出所述内容的装置。
41、按照权利要求40所述的至少一种计算机可读介质,其中如果所述输出装置的输出不同于针对由所述至少一个GPU对所述保密内容执行的任意处理所调整的所述请求装置的保密内容,则向所述应用程序和设备之一警告所述差异。
42、按照权利要求40所述的至少一种计算机可读介质,其中所述传送装置包括把所述保密内容传送给至少一个加密覆盖面的装置,所述至少一个加密覆盖面至少重叠所述视频存储器的一个主面。
43、按照权利要求40所述的至少一种计算机可读介质,其中对视频存储器的所述至少一个加密部分的内容解密的所述装置包括对主面的几何部分解密的装置,从而除几何部分之外的象素不被解密。
44、按照权利要求40所述的至少一种计算机可读介质,其中通过下述之一:(A)把加密处理器添加到现有芯片上和(B)以独立芯片的形式把加密处理器添加到图形卡上,来把加密处理器永久安装在图形卡上,
从而加密处理器和图形卡剩余部分之间的物理连接不可接触,并且不被暴露。
45、按照权利要求42所述的至少一种计算机可读介质,其中所述解密装置包括由与所述加密处理装置通信耦接的所述GPU的解密机构对所述至少一个加密覆盖面解密的装置。
46、按照权利要求42所述的至少一种计算机可读介质,其中所述解密装置包括下述之一:(A)当按照所述输出装置的所述输出,输出内容时,在传输途中由图形系统的数-模转换(DAC)硬件对所述至少一个加密覆盖面解密的装置,和(B)刚好在内容到达图形系统的DAC硬件之前,在传输途中对所述至少一个加密覆盖面解密的装置。
47、按照权利要求42所述的至少一种计算机可读介质,其中所述解密装置包括由不具有相对于主系统的反向通道的组件,在内容到达图形系统的DAC硬件之前,对所述至少一个加密覆盖面解密的装置。
48、按照权利要求40所述的至少一种计算机可读介质,还包括:
在所述输出装置的所述输出之前,与所述加密处理装置通信的所述至少一个GPU对所述内容重新加密的装置;和
外部计算设备的至少一个第二加密处理装置对所述重新加密内容进行解密的装置。
49、按照权利要求40所述的至少一种计算机可读介质,其中内容以数字形式被传送给具有第二加密处理装置的外部设备,并且在所述外部设备上进行所述解密装置的所述解密。
50、按照权利要求48所述的至少一种计算机可读介质,其中所述外部计算设备是(A)监视器,(B)机顶盒和(C)数字信号处理(DSP)再现设备之一。
51、按照权利要求42所述的至少一种计算机可读介质,其中所述传送装置包括把所述保密内容传送给下述之一的装置:(A)用于保密内容的基本再现的第一加密保密覆盖图,(B)特别用于呈现敏感用户界面的第二加密受保护覆盖图,(C)用于保密内容的基本再现的主面的第一加密区,(D)主面的特别用于呈现敏感用户界面的第二加密区。
52、按照权利要求40所述的至少一种计算机可读介质,其中所述解密装置包括计算解密数据的加密摘要的装置,所述计算机可执行模块还包括:
把所述加密摘要传送给应用程序和设备之一的装置,以便确保显示的象素是与借助所述请求装置,由应用程序和设备之一发出的所述请求相关而发送的象素。
53、按照权利要求51所述的至少一种计算机可读介质,其中第二加密受保护覆盖图总是在前面,并且不可遮蔽,其中第二加密受保护覆盖图的内容由所述至少一个GPU核实。
54、按照权利要求51所述的至少一种计算机可读介质,其中所述解密装置包括下述之一:(A)利用第一流密码解密组件对第一加密保密覆盖图的内容解密的装置,(B)利用第二流密码解密组件对第二加密受保护覆盖图的内容解密的装置,(C)利用第一流密码解密组件对主面的第一加密区的内容解密的装置,和(D)利用第二流密码解密组件对主面的第二加密区的内容解密的装置。
55、按照权利要求54所述的至少一种计算机可读介质,其中主面中每个象素的至少一位被用于确定该象素的虚拟受保护面中的隶属关系,其中图形卡根据所述至少一位,选择该象素的恰当解密密钥。
56、按照权利要求55所述的至少一种计算机可读介质,其中如果所述至少一位包含零值,则与所述至少一位相关的虚拟受保护面被认为是不要解密的区域。
57、按照权利要求54所述的至少一种计算机可读介质,计算机可执行模块还包括一旦解密象素值可用,则所述至少一个GPU的象素选择组件选择(A)第二加密受保护覆盖图,(B)第一加密保密覆盖图和(3)主面之一的象素值的装置。
58、按照权利要求51所述的至少一种计算机可读介质,其中所述请求装置的所述请求至少包括下述之一:(A)所述至少一个加密覆盖面的源和目的地边界框,(B)所述至少一个加密覆盖面的目的地颜色密钥,(C)就第一加密保密覆盖图来说,数据将被翻转给其的覆盖图后向缓冲器的内容的加密密钥索引的说明,(D)就第二加密受保护覆盖图来说,将写入加密覆盖图内容的循环冗余码(CRC),完整性量度和摘要值至少之一的存储器位置的说明,(E)至少一个加密主面的源和目的地边界框,和(F)所述至少一个加密主面的目的地颜色密钥。
59、按照权利要求58所述的至少一种计算机可读介质,其中如果所述应用程序和设备之一关心内容的完整性,则所述应用程序和设备之一至少计算CRC、完整性量度和摘要值之一。
60、按照权利要求40所述的至少一种计算机可读介质,其中伴随所述请求装置的所述请求而发送给至少一个GUP的视频解码装置的至少一个命令缓冲器被至少所述应用程序和设备之一加密,并被与所述加密处理装置通信的所述视频解码装置解密。
61、按照权利要求60所述的至少一种计算机可读介质,计算机可执行模块还包括通过利用两种途径之一,(A)在命令缓冲器的消耗之前,和(B)在已消耗命令缓冲器之后,对所述至少一个命令缓冲器进行篡改检测的装置。
62、携带按照权利要求40所述的至少一种计算机可读介质的计算机可执行模块的计算机可执行指令的操作系统、协处理设备、计算设备和调制数据信号至少之一。
63、至少一种计算机可读介质,所述计算机可读介质包括计算机可执行模块,所述计算机可执行模块包括与计算设备的受托图形系统一起加密保护保密内容的计算机可执行指令,所述受托图形系统具有视频存储器,至少一个图形处理器(GPU)和与所述至少一个GPU通信耦接的加密处理装置,所述计算机可执行模块包括:
由应用程序和设备之一用于请求图形系统执行保密内容的处理和再现之一的装置,其中所述请求装置包括所述应用程序和设备之一用于把话路密钥传送给图形系统,以便被加密处理装置核实,并把所述保密内容传送给视频存储器的至少一个加密部分的装置;
所述至少一个GPU的输入装置的解密机构对视频存储器的所述至少一个加密部分的内容解密的装置,其中所述解密机构与所述加密处理装置通信;
所述至少一个GPU执行关于所述解密内容的所述处理和再现之一的装置;
利用至少一个GPU的输出装置的加密/解密加构对所述内容加密的装置;和
从至少一个GPU输出所述加密内容的装置。
64、按照权利要求63所述的至少一种计算机可读介质,其中所述输入装置是纹理映射装置,所述输出装置是字母混合装置,其中所述视频存储器的所述至少一个加密部分是加密纹理面。
65、按照权利要求63所述的至少一种计算机可读介质,其中所述保密内容是纹理数据,明文和视频宏数据块之一。
66、按照权利要求63所述的至少一种计算机可读介质,其中所述加密装置和解密装置分别包括利用块密码的加密装置和解密装置。
67、按照权利要求64所述的至少一种计算机可读介质,其中纹理映射装置的所述解密机构在超高速缓冲存储器行填充状态下加密,其中字母混合装置的加密/解密机构在写入前加密。
68、按照权利要求64所述的至少一种计算机可读介质,还包括当从视频存储器中的颜色缓冲器读取超高速缓冲存储器行时,由字母混合装置的加密/解密机构解密的装置。
69、按照权利要求63所述的至少一种计算机可读介质,还包括:
把所述加密输出内容从所述视频存储器的加密后方主面翻转到所述视频存储器的加密前方主面的装置;
与所述加密处理装置通信的所述至少一个GPU的第二解密机构对所述加密输出内容进行解密的第二装置;和
输出所述输出内容的第二装置。
70、按照权利要求63所述的至少一种计算机可读介质,其中所述输出装置包括把加密内容输出给保密覆盖图翻转链的装置,所述计算机可执行模块还包括:
把所述加密输出内容从加密后方保密面翻转到加密前方保密面的装置,从而所述加密/解密机构进行的所述加密包括利用流密码加密法的加密装置;和
与所述加密处理装置通信的所述至少一个GPU的流密码解密机构对所述加密输出内容进行解密的第二装置。
71、按照权利要求70所述的至少一种计算机可读介质,计算机执行模块还包括:
在所述加密装置进行的所述加密之前,对内容中的位置编码的装置;和
在所述第二解密装置进行的所述解密之后,对内容中的位置解码的装置,
从而从外部不能获得所述位置,保持明文-加密文本映射的完整性。
72、按照权利要求63所述的至少一种计算机可读介质,其中如果所述输出装置的输出不同于针对由所述至少一个GPU对所述保密内容执行的任意处理所调整的所述请求装置的保密内容,则向所述应用程序和设备之一警告所述差异。
73、按照权利要求63所述的至少一种计算机可读介质,计算机可执行模块还包括:
在所述输出装置进行的所述输出之前,与所述加密处理装置通信的所述至少一个GPU重新对所述内容加密的装置;和
外部计算设备的至少一个第二加密处理装置对所述重新加密内容解密的装置。
74、按照权利要求73所述的至少一种计算机可读介质,其中所述外部计算设备是(A)监视器,(B)机顶盒和(C)数字信号处理器(DSP)再现设备之一。
75、按照权利要求63所述的至少一种计算机可读介质,其中利用块密码对由所述应用程序和设备之一传送的加密纹理和加密离屏面编码,所述应用程序和设备之一利用预定混合格式和压缩平面格式混合块密码,所述预定混合格式把内容中的(x,y)位置转换成YUV、RGB、YUY2至少之一的偏移。
76、按照权利要求63所述的至少一种计算机可读介质,其中伴随所述请求装置的所述请求而发送给至少一个GUP的视频解码装置的至少一个命令缓冲器被至少所述应用程序和设备之一加密,并被与所述加密处理装置通信的所述视频解码装置解密。
77、按照权利要求63所述的至少一种计算机可读介质,计算机可执行模块还包括通过利用两种途径之一,(A)在命令缓冲器的消耗之前,和(B)在已消耗命令缓冲器之后,对所述至少一个命令缓冲器进行篡改检测的装置。
78、携带按照权利要求63所述的至少一种计算机可读介质的计算机可执行模块的计算机可执行指令的操作系统、协处理设备、计算设备和调制数据信号至少之一。
79、一种计算设备,所述计算设备包括与计算设备的受托图形系统一起加密保护保密内容的装置,所述受托图形系统具有视频存储器,至少一个图形处理器(GPU)和与所述至少一个GPU通信耦接的加密处理装置,所述计算设备包括:
由应用程序和设备之一请求图形系统执行保密内容的处理和再现之一的装置,其中所述请求装置包括由所述应用程序和设备之一用于把话路密钥传送给图形系统的装置,和把所述保密内容传送给视频存储器的至少一个加密部分的装置;
由与所述加密处理装置通信的所述至少一个GPU对视频存储器的所述至少一个加密部分的内容解密的装置;
由所述至少一个GPU执行关于所述解密内容的所述处理和再现之一的装置;和
从至少一个GPU输出所述内容的装置。
80、按照权利要求79所述的计算设备,其中如果所述输出装置的输出不同于针对由所述至少一个GPU对所述保密内容执行的任意处理所调整的所述请求装置的保密内容,则向所述应用程序和设备之一警告所述差异。
81、按照权利要求79所述的计算设备,其中所述传送装置包括把所述保密内容传送给至少一个加密覆盖面的装置,所述至少一个加密覆盖面至少重叠所述视频存储器的一个主面。
82、按照权利要求79所述的计算设备,其中对视频存储器的所述至少一个加密部分的内容解密的所述装置包括对主面的几何部分解密的装置,从而除几何部分之外的象素不被解密。
83、按照权利要求79所述的计算设备,其中通过下述之一:(A)把加密处理器添加到现有芯片上和(B)以独立芯片的形式把加密处理器添加到图形卡上,来把加密处理器永久安装在图形卡上,
从而加密处理器和图形卡剩余部分之间的物理连接不可接触,并且不被暴露。
84、按照权利要求81所述的计算设备,其中所述解密装置包括由与所述加密处理装置通信耦接的所述GPU的解密机构对所述至少一个加密覆盖面解密的装置。
85、按照权利要求81所述的计算设备,其中所述解密装置包括下述之一:(A)当按照所述输出装置的所述输出,输出内容时,在传输途中由图形系统的数-模转换(DAC)硬件对所述至少一个加密覆盖面解密的装置,和(B)刚好在内容到达图形系统的DAC硬件之前,在传输途中对所述至少一个加密覆盖面解密的装置。
86、按照权利要求81所述的计算设备,其中所述解密装置包括由不具有相对于主系统的反向通道的组件,在内容到达图形系统的DAC硬件之前,对所述至少一个加密覆盖面解密的装置。
87、按照权利要求79所述的计算设备,还包括:
在所述输出装置的所述输出之前,与所述加密处理装置通信的所述至少一个GPU对所述内容重新加密的装置;和
外部计算设备的至少一个第二加密处理装置对所述重新加密内容进行解密的装置。
88、按照权利要求79所述的计算设备,其中内容以数字形式被传送给具有第二加密处理装置的外部设备,并且在所述外部设备上进行所述解密装置的所述解密。
89、按照权利要求87所述的计算设备,其中所述外部计算设备是(A)监视器,(B)机顶盒和(C)数字信号处理(DSP)再现设备之一。
90、按照权利要求81所述的计算设备,其中所述传送装置包括把所述保密内容传送给下述之一的装置:(A)用于保密内容的基本再现的第一加密保密覆盖图,(B)特别用于呈现敏感用户界面的第二加密受保护覆盖图,(C)用于保密内容的基本再现的主面的第一加密区,(D)主面的特别用于呈现敏感用户界面的第二加密区。
91、按照权利要求79所述的计算设备,其中所述解密装置包括计算解密数据的加密摘要的装置,所述计算设备还包括:
把所述加密摘要传送给应用程序和设备之一的装置,以便确保显示的象素是与借助所述请求装置,由应用程序和设备之一发出的所述请求相关而发送的象素。
92、按照权利要求90所述的计算设备,其中第二加密受保护覆盖图总是在前面,并且不可遮蔽,其中第二加密受保护覆盖图的内容由所述至少一个GPU核实。
93、按照权利要求90所述的计算设备,其中所述解密装置包括下述之一:(A)利用第一流密码解密组件对第一加密保密覆盖图的内容解密的装置,(B)利用第二流密码解密组件对第二加密受保护覆盖图的内容解密的装置,(C)利用第一流密码解密组件对主面的第一加密区的内容解密的装置,和(D)利用第二流密码解密组件对主面的第二加密区的内容解密的装置。
94、按照权利要求93所述的计算设备,其中主面中每个象素的至少一位被用于确定该象素的虚拟受保护面中的隶属关系,其中图形卡根据所述至少一位,选择该象素的恰当解密密钥。
95、按照权利要求94所述的计算设备,其中如果所述至少一位包含零值,则与所述至少一位相关的虚拟受保护面被认为是不要解密的区域。
96、按照权利要求93所述的计算设备,还包括一旦解密象素值可用,则由所述至少一个GPU的象素选择组件选择(A)第二加密受保护覆盖图,(B)第一加密保密覆盖图和(3)主面之一的象素值的装置。
97、按照权利要求90所述的计算设备,其中所述请求装置的所述请求至少包括下述之一:(A)所述至少一个加密覆盖面的源和目的地边界框,(B)所述至少一个加密覆盖面的目的地颜色密钥,(C)就第一加密保密覆盖图来说,数据将被翻转给其的覆盖图后向缓冲器的内容的加密密钥索引的说明,(D)就第二加密受保护覆盖图来说,将写入加密覆盖图内容的循环冗余码(CRC),完整性量度和摘要值至少之一的存储器位置的说明,(E)至少一个加密主面的源和目的地边界框,和(F)所述至少一个加密主面的目的地颜色密钥。
98、按照权利要求97所述的计算设备,其中如果所述应用程序和设备之一关心内容的完整性,则所述应用程序和设备之一至少计算CRC、完整性量度和摘要值之一。
99、按照权利要求79所述的计算设备,其中伴随所述请求装置的所述请求而发送给至少一个GUP的视频解码装置的至少一个命令缓冲器被至少所述应用程序和设备之一加密,并被与所述加密处理装置通信的所述视频解码装置解密。
100、按照权利要求99所述的计算设备,还包括通过利用两种途径之一,(A)在命令缓冲器的消耗之前,和(B)在已消耗命令缓冲器之后,对所述至少一个命令缓冲器进行篡改检测的装置。
101、一种计算设备,所述计算设备包括计算机可执行模块,所述计算机可执行模块包括与计算设备的受托图形系统一起加密保护保密内容的计算机可执行指令,所述受托图形系统具有视频存储器,至少一个图形处理器(GPU)和与所述至少一个GPU通信耦接的加密处理装置,所述计算设备包括:
由应用程序和设备之一用于请求图形系统执行保密内容的处理和再现之一的装置,其中所述请求装置包括所述应用程序和设备之一用于把话路密钥传送给图形系统,以便被加密处理装置核实,并把所述保密内容传送给视频存储器的至少一个加密部分的装置;
由所述至少一个GPU的输入装置的解密机构对视频存储器的所述至少一个加密部分的内容解密的装置,其中所述解密机构与所述加密处理装置通信;
由所述至少一个GPU执行关于所述解密内容的所述处理和再现之一的装置;
利用至少一个GPU的输出装置的加密/解密机构对所述内容加密的装置;和
从至少一个GPU输出所述加密内容的装置。
102、按照权利要求101所述的计算设备,其中所述输入装置是纹理映射装置,所述输出装置是字母混合装置,其中所述视频存储器的所述至少一个加密部分是加密纹理面。
103、按照权利要求101所述的计算设备,其中所述保密内容是纹理数据,明文和视频宏数据块之一。
104、按照权利要求101所述的计算设备,其中所述加密装置和解密装置分别包括利用块密码的加密装置和解密装置。
105、按照权利要求102所述的计算设备,其中纹理映射装置的所述解密机构在超高速缓冲存储器行填充状态下加密,其中字母混合装置的加密/解密机构在写入前加密。
106、按照权利要求102所述的计算设备,还包括当从视频存储器中的颜色缓冲器读取超高速缓冲存储器行时,由字母混合装置的加密/解密机构解密的装置。
107、按照权利要求101所述的计算设备,还包括:
把所述加密输出内容从所述视频存储器的加密后方主面翻转到所述视频存储器的加密前方主面的装置;
由与所述加密处理装置通信的所述至少一个GPU的第二解密机构对所述加密输出内容解密的第二装置;和
输出所述输出内容的第二装置。
108、按照权利要求101所述的计算设备,其中所述输出装置包括把加密内容输出给保密覆盖图翻转链的装置,所述计算机可执行模块还包括:
把所述加密输出内容从加密后方保密面翻转到加密前方保密面的装置,从而所述加密/解密机构进行的所述加密包括利用流密码加密法的加密装置;和
由与所述加密处理装置通信的所述至少一个GPU的流密码解密机构用于对所述加密输出内容解密的第二装置。
109、按照权利要求108所述的计算设备,还包括:
在所述加密装置进行的所述加密之前,对内容中的位置编码的装置;和
在所述第二解密装置进行的所述解密之后,对内容中的位置解码的装置,
从而从外部不能获得所述位置,保持明文-加密文本映射的完整性。
110、按照权利要求101所述的计算设备,其中如果所述输出装置的输出不同于针对由所述至少一个GPU对所述保密内容执行的任意处理所调整的所述请求装置的保密内容,则向所述应用程序和设备之一警告所述差异。
111、按照权利要求101所述的计算设备,计算机可执行模块还包括:
在所述输出装置进行的所述输出之前,由与所述加密处理装置通信的所述至少一个GPU重新对所述内容加密的装置;和
外部计算设备的至少一个第二加密处理装置对所述重新加密内容解密的装置。
112、按照权利要求111所述的计算设备,其中所述外部计算设备是(A)监视器,(B)机顶盒和(C)数字信号处理器(DSP)再现设备之一。
113、按照权利要求101所述的计算设备,其中利用块密码对由所述应用程序和设备之一传送的加密纹理和加密离屏面编码,所述应用程序和设备之一利用预定混合格式和压缩平面格式混合块密码,所述预定混合格式把内容中的(x,y)位置转换成YUV、RGB、YUY2至少之一的偏移。
114、按照权利要求101所述的计算设备,其中伴随所述请求装置的所述请求而发送给至少一个GUP的视频解码装置的至少一个命令缓冲器被至少所述应用程序和设备之一加密,并被与所述加密处理装置通信的所述视频解码装置解密。
115、按照权利要求101所述的计算设备,计算机可执行模块还包括通过利用两种途径之一,(A)在命令缓冲器的消耗之前,和(B)在已消耗命令缓冲器之后,对所述至少一个命令缓冲器进行篡改检测的装置。
CN02802594A 2001-12-04 2002-12-03 使用密码保护保密内容的方法和系统 Expired - Fee Related CN100595736C (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US33761701P 2001-12-04 2001-12-04
US60/337,617 2001-12-04
US33914301P 2001-12-10 2001-12-10
US60/339,143 2001-12-10
US10/124,922 2002-04-18
US10/124,922 US7203310B2 (en) 2001-12-04 2002-04-18 Methods and systems for cryptographically protecting secure content
PCT/US2002/038827 WO2003048939A1 (en) 2001-12-04 2002-12-03 Methods and systems for cryptographically protecting secure content

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2006101365893A Division CN101008967B (zh) 2001-12-04 2002-12-03 使用密码保护保密内容的方法和系统

Publications (2)

Publication Number Publication Date
CN1650268A true CN1650268A (zh) 2005-08-03
CN100595736C CN100595736C (zh) 2010-03-24

Family

ID=27383184

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2006101365893A Expired - Fee Related CN101008967B (zh) 2001-12-04 2002-12-03 使用密码保护保密内容的方法和系统
CN02802594A Expired - Fee Related CN100595736C (zh) 2001-12-04 2002-12-03 使用密码保护保密内容的方法和系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2006101365893A Expired - Fee Related CN101008967B (zh) 2001-12-04 2002-12-03 使用密码保护保密内容的方法和系统

Country Status (12)

Country Link
US (1) US7203310B2 (zh)
EP (1) EP1343321B1 (zh)
JP (1) JP4522645B2 (zh)
CN (2) CN101008967B (zh)
AR (1) AR037628A1 (zh)
AT (1) ATE420533T1 (zh)
AU (1) AU2002359611A1 (zh)
CA (1) CA2434328C (zh)
DE (1) DE60230716D1 (zh)
MX (1) MXPA03002376A (zh)
TW (1) TWI269169B (zh)
WO (1) WO2003048939A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102385760A (zh) * 2010-08-27 2012-03-21 国际商业机器公司 用于保护模型数据的方法及系统
CN109589608A (zh) * 2018-12-19 2019-04-09 网易(杭州)网络有限公司 保护游戏数据的方法和装置

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6966837B1 (en) 2001-05-10 2005-11-22 Best Robert M Linked portable and video game systems
GB2379299B (en) * 2001-09-04 2006-02-08 Imagination Tech Ltd A texturing system
US20060075507A1 (en) * 2001-09-06 2006-04-06 Sonic Solutions Secure protocols for use with microsoft directshow filters
US7840803B2 (en) 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
GB0212308D0 (en) * 2002-05-28 2002-07-10 Symbian Ltd Trusted user interface for a secure mobile wireless device
US20030226029A1 (en) * 2002-05-29 2003-12-04 Porter Allen J.C. System for protecting security registers and method thereof
US7561715B2 (en) * 2002-08-28 2009-07-14 Koninklijke Philips Electronics N.V. Method and arrangement for watermark detection
JP2004133087A (ja) * 2002-10-09 2004-04-30 Sony Corp ブロック暗号方法およびブロック暗号回路
US20100017627A1 (en) 2003-02-07 2010-01-21 Broadon Communications Corp. Ensuring authenticity in a closed content distribution system
US8131649B2 (en) 2003-02-07 2012-03-06 Igware, Inc. Static-or-dynamic and limited-or-unlimited content rights
US7370319B2 (en) * 2003-02-11 2008-05-06 V.I. Laboratories, Inc. System and method for regulating execution of computer software
US8225290B2 (en) * 2003-02-11 2012-07-17 V. i. Laboratories, Inc. Systems and methods for regulating execution of computer software
US20040264927A1 (en) * 2003-06-30 2004-12-30 Microsoft Corporation Modular architecture to unify the playback of DVD technologies
US7949132B2 (en) 2003-07-01 2011-05-24 Microsoft Corporation Modular architecture to unify the playback of DVD technologies
JP2007519278A (ja) * 2003-07-04 2007-07-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ コピープロテクトソフトウェアを実行するための装置
US7703141B2 (en) 2004-03-11 2010-04-20 Microsoft Corporation Methods and systems for protecting media content
JP4698982B2 (ja) * 2004-04-06 2011-06-08 株式会社日立製作所 暗号処理を行うストレージシステム
US20060242406A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US9264265B1 (en) * 2004-09-30 2016-02-16 Nvidia Corporation System and method of generating white noise for use in graphics and image processing
CN102572820B (zh) * 2004-11-02 2015-11-11 苹果公司 与正交频分复用一起使用的方法及其基站和无线终端
EP1842203A4 (en) * 2004-11-12 2011-03-23 Verayo Inc KEYS OF VOLATILE DEVICES, AND THEIR APPLICATIONS
US20060184785A1 (en) * 2005-02-16 2006-08-17 David Carroll Challener Apparatus, system, and method for securing I/O communications between a blade and a peripheral interface device of a blade-based computer system
US9363481B2 (en) * 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US8249140B2 (en) 2005-12-30 2012-08-21 Intel Corporation Direct macroblock mode techniques for high performance hardware motion compensation
WO2007087559A2 (en) 2006-01-24 2007-08-02 Pufco, Inc. Signal generator based device security
US7916864B2 (en) * 2006-02-08 2011-03-29 Nvidia Corporation Graphics processing unit used for cryptographic processing
US7746350B1 (en) * 2006-06-15 2010-06-29 Nvidia Corporation Cryptographic computations on general purpose graphics processing units
US7890747B2 (en) * 2006-07-06 2011-02-15 Accenture Global Services Limited Display of decrypted data by a graphics processing unit
US20080097971A1 (en) * 2006-10-18 2008-04-24 Telcordia Applied Research Center Taiwan Company Peer-to-peer based secondary key search method and system for cluster database
CN101632084B (zh) 2007-03-13 2012-05-02 Nxp股份有限公司 对至少二维的数据集的加密和解密
US8538015B2 (en) 2007-03-28 2013-09-17 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US20080263366A1 (en) * 2007-04-19 2008-10-23 Microsoft Corporation Self-verifying software to prevent reverse engineering and piracy
US8594322B2 (en) * 2007-07-10 2013-11-26 Stmicroelectronics S.R.L. Encoding/decoding apparatus
US8924309B2 (en) 2007-08-08 2014-12-30 Imation Corp. Method of providing assured transactions by watermarked file display verification
US20090067629A1 (en) * 2007-09-06 2009-03-12 Paltronics, Inc. Table-based encryption/decryption techniques for gaming networks, and gaming networks incorporating the same
CN101796837B (zh) 2007-09-11 2012-12-19 Lg电子株式会社 安全签名方法、安全认证方法和iptv系统
ATE544123T1 (de) * 2007-09-19 2012-02-15 Verayo Inc Authentifizierung mit physikalisch unklonbaren funktionen
US20090079746A1 (en) 2007-09-20 2009-03-26 Apple Inc. Switching between graphics sources to facilitate power management and/or security
EP2213044B1 (en) * 2007-10-19 2020-05-06 DataLocker Inc. Method of providing assured transactions using secure transaction appliance and watermark verification
JP5266330B2 (ja) * 2007-11-01 2013-08-21 エルジー エレクトロニクス インコーポレイティド データ処理方法及びiptv受信デバイス
US8478959B1 (en) 2007-11-13 2013-07-02 Nvidia Corporation Method and system for protecting content in graphics memory
US9307179B1 (en) * 2007-11-13 2016-04-05 Nvidia Corporation Method and system for protecting content in graphics memory
US9069990B2 (en) * 2007-11-28 2015-06-30 Nvidia Corporation Secure information storage system and method
JP5052367B2 (ja) * 2008-02-20 2012-10-17 株式会社リコー 画像処理装置、認証パッケージインストール方法、認証パッケージインストールプログラム、及び記録媒体
US8646052B2 (en) * 2008-03-31 2014-02-04 Intel Corporation Method and apparatus for providing a secure display window inside the primary display
US8156565B2 (en) * 2008-04-28 2012-04-10 Microsoft Corporation Hardware-based protection of secure data
US8393008B2 (en) * 2008-05-21 2013-03-05 Microsoft Corporation Hardware-based output protection of multiple video streams
US9817680B1 (en) 2008-08-04 2017-11-14 Open Invention Network, Llc Application configuration tool
US8736626B2 (en) * 2008-08-26 2014-05-27 Matrox Graphics Inc. Method and system for cryptographically securing a graphics system
US9240927B2 (en) 2009-02-26 2016-01-19 Qualcomm Incorporated Methods and apparatus for enhanced overlay state maintenance
US8521821B2 (en) * 2009-03-17 2013-08-27 Brigham Young University Encrypted email based upon trusted overlays
TW201040678A (en) * 2009-05-13 2010-11-16 Acrosser Technology Co Ltd Multi-point universal encryption transmission interface apparatus
JP5018919B2 (ja) * 2010-03-19 2012-09-05 コニカミノルタビジネステクノロジーズ株式会社 情報処理装置、コンテンツ管理方法およびコンテンツ管理プログラム
US8886935B2 (en) * 2010-04-30 2014-11-11 Kabushiki Kaisha Toshiba Key management device, system and method having a rekey mechanism
FR2971599B1 (fr) * 2011-02-11 2013-03-15 Jean Luc Leleu Procede de transaction securisee a partir d'un terminal non securise
US8560453B2 (en) 2011-06-30 2013-10-15 Intel Corporation Method and apparatus for dynamic, real-time ad insertion based on meta-data within a hardware based root of trust
CN102238360B (zh) * 2011-07-15 2013-11-13 深圳市环球数码科技有限公司 一种用于防止盗版视频的方法和设备
CN103959238B (zh) 2011-11-30 2017-06-09 英特尔公司 使用gpu/cpu体系结构的rsa的高效实现
GB2511668A (en) * 2012-04-12 2014-09-10 Supercell Oy System and method for controlling technical processes
US20140012704A1 (en) 2012-07-05 2014-01-09 Google Inc. Selecting a preferred payment instrument based on a merchant category
US20140090033A1 (en) * 2012-09-21 2014-03-27 Amazon Technologies, Inc. Context Aware Content Distribution
US9092767B1 (en) * 2013-03-04 2015-07-28 Google Inc. Selecting a preferred payment instrument
US9111123B2 (en) 2013-06-28 2015-08-18 International Business Machines Corporation Firmware for protecting data from software threats
US9507961B2 (en) * 2013-07-01 2016-11-29 Qualcomm Incorporated System and method for providing secure access control to a graphics processing unit
US9501668B2 (en) * 2013-09-25 2016-11-22 Intel Corporation Secure video ouput path
WO2015102564A1 (en) * 2013-12-30 2015-07-09 Empire Technology Developement LLC Information rendering scheme
EP2891997A1 (en) * 2014-01-06 2015-07-08 Fujitsu Limited Methods and apparatus for including a confidential structural component in a third party remote product simulation
US9858572B2 (en) 2014-02-06 2018-01-02 Google Llc Dynamic alteration of track data
US9318221B2 (en) 2014-04-03 2016-04-19 Winbound Electronics Corporation Memory device with secure test mode
KR102218202B1 (ko) 2014-08-01 2021-02-23 삼성전자주식회사 반도체 장치
WO2017214617A1 (en) * 2016-06-10 2017-12-14 Gilbarco Inc. Fuel dispenser utilizing tokenized user guidance and prompting for secure payment
US11443072B2 (en) * 2018-06-29 2022-09-13 Microsoft Technology Licensing, Llc Peripheral device with resource isolation
US11126757B2 (en) 2018-10-19 2021-09-21 Microsoft Technology Licensing, Llc Peripheral device
US11233652B2 (en) 2019-01-04 2022-01-25 Baidu Usa Llc Method and system to derive a session key to secure an information exchange channel between a host system and a data processing accelerator
EP3794772B1 (en) 2019-01-04 2024-08-07 Baidu.com Times Technology (Beijing) Co., Ltd. Data processing accelerator having security unit to provide root trust services
WO2020140258A1 (en) 2019-01-04 2020-07-09 Baidu.Com Times Technology (Beijing) Co., Ltd. An attestation protocol between a host system and a data processing accelerator
EP3811272B1 (en) 2019-01-04 2023-10-04 Baidu.com Times Technology (Beijing) Co., Ltd. Method and system for managing memory of data processing accelerators
CN112334902A (zh) * 2019-01-04 2021-02-05 百度时代网络技术(北京)有限公司 建立主机系统与数据处理加速器之间的安全信息交换信道的方法
WO2020140268A1 (en) 2019-01-04 2020-07-09 Baidu.Com Times Technology (Beijing) Co., Ltd. Method and system for providing secure communications between a host system and a data processing accelerator
EP3794444A4 (en) 2019-01-04 2022-01-12 Baidu.com Times Technology (Beijing) Co., Ltd. METHOD AND SYSTEM FOR THE PROTECTION OF DATA PROCESSED BY DATA PROCESSING ACCELERATORS
EP3794477B1 (en) 2019-01-04 2023-05-10 Baidu.com Times Technology (Beijing) Co., Ltd. Method and system for validating kernel objects to be executed by a data processing accelerator of a host system
US11374734B2 (en) * 2019-01-04 2022-06-28 Baidu Usa Llc Method and system for key distribution and exchange for data processing accelerators
EP3811271B1 (en) 2019-01-04 2023-02-15 Baidu.com Times Technology (Beijing) Co., Ltd. A data processing accelerator having a local time unit to generate timestamps
JP7300845B2 (ja) 2019-02-15 2023-06-30 三菱重工業株式会社 制御装置、産業用制御システムおよび暗号鍵寿命延長方法
US11188659B2 (en) * 2019-09-11 2021-11-30 International Business Machines Corporation Concurrent enablement of encryption on an operational path at a host port
US11496314B2 (en) * 2019-12-18 2022-11-08 Intel Corporation Integrity protected command buffer execution
CN114124364B (zh) * 2020-08-27 2024-05-24 国民技术股份有限公司 密钥安全处理方法、装置、设备及计算机可读存储介质
CN113127034B (zh) * 2021-04-09 2024-02-09 山东英信计算机技术有限公司 一种基于bmc对板卡进行更新的方法、系统、设备及介质
FR3129747B1 (fr) 2021-11-29 2024-09-06 Commissariat Energie Atomique Dispositif d’affichage a dechiffrement local des donnees numeriques

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5175830A (en) * 1989-06-16 1992-12-29 International Business Machines Corporation Method for executing overlays in an expanded memory data processing system
EP0410777B1 (en) 1989-07-28 1996-11-06 Texas Instruments Incorporated Video graphics display memory swizzle logic circuit and method
EP0610581A3 (en) * 1993-01-29 1994-12-28 Ibm Process for displaying flow data, produced by a parallel processing computer.
US6101276A (en) * 1996-06-21 2000-08-08 Compaq Computer Corporation Method and apparatus for performing two pass quality video compression through pipelining and buffer management
US5825879A (en) * 1996-09-30 1998-10-20 Intel Corporation System and method for copy-protecting distributed video content
US5920861A (en) 1997-02-25 1999-07-06 Intertrust Technologies Corp. Techniques for defining using and manipulating rights management data structures
US5898779A (en) * 1997-04-14 1999-04-27 Eastman Kodak Company Photograhic system with selected area image authentication
US6167136A (en) * 1997-05-16 2000-12-26 Software Security, Inc. Method for preventing copying of digital video disks
JP4273535B2 (ja) * 1998-05-12 2009-06-03 ソニー株式会社 データ伝送制御方法、データ伝送システム、データ受信装置及びデータ送信装置
US6330624B1 (en) 1999-02-09 2001-12-11 International Business Machines Corporation Access limiting to only a planar by storing a device public key only within the planar and a planar public key only within the device
JP2000279637A (ja) 1999-03-30 2000-10-10 Square Co Ltd ゲーム装置、ゲーム表示制御方法、およびコンピュータ読取り可能な記録媒体
US6289455B1 (en) 1999-09-02 2001-09-11 Crypotography Research, Inc. Method and apparatus for preventing piracy of digital content
JP2001103280A (ja) * 1999-09-30 2001-04-13 Canon Inc 情報処理方法とその装置
US6449719B1 (en) * 1999-11-09 2002-09-10 Widevine Technologies, Inc. Process and streaming server for encrypting a data stream
US6704868B1 (en) * 1999-11-12 2004-03-09 International Business Machines Corporation Method for associating a pass phase with a secured public/private key pair
JP2001333425A (ja) * 2000-05-18 2001-11-30 Canon Inc 動画像出力装置、動画像再生装置、携帯端末、及びそれらの制御方法並びに記憶媒体
EP1133190A1 (en) 2000-03-06 2001-09-12 Canon Kabushiki Kaisha Moving image generation apparatus, moving image playback apparatus, their control method, and storage medium
US20030079222A1 (en) * 2000-10-06 2003-04-24 Boykin Patrick Oscar System and method for distributing perceptually encrypted encoded files of music and movies
US6957340B1 (en) * 2000-11-28 2005-10-18 Xilinx, Inc. Encryption key for multi-key encryption in programmable logic device
US7184546B2 (en) 2001-02-13 2007-02-27 Arkion S.L. Method based on an algorithm capable of being graphically implemented to be used for the generation of filtering of data sequences and crytographic applications
US20020150248A1 (en) * 2001-03-06 2002-10-17 Kovacevic Branko D. System for digital stream reception via memory buffer and method thereof
US7218739B2 (en) 2001-03-09 2007-05-15 Microsoft Corporation Multiple user authentication for online console-based gaming
US7055038B2 (en) 2001-05-07 2006-05-30 Ati International Srl Method and apparatus for maintaining secure and nonsecure data in a shared memory system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102385760A (zh) * 2010-08-27 2012-03-21 国际商业机器公司 用于保护模型数据的方法及系统
CN109589608A (zh) * 2018-12-19 2019-04-09 网易(杭州)网络有限公司 保护游戏数据的方法和装置

Also Published As

Publication number Publication date
JP2003284024A (ja) 2003-10-03
MXPA03002376A (es) 2003-07-28
CN101008967B (zh) 2012-08-29
EP1343321A1 (en) 2003-09-10
EP1343321B1 (en) 2009-01-07
CN101008967A (zh) 2007-08-01
JP4522645B2 (ja) 2010-08-11
AR037628A1 (es) 2004-11-17
CN100595736C (zh) 2010-03-24
TWI269169B (en) 2006-12-21
TW200301857A (en) 2003-07-16
US7203310B2 (en) 2007-04-10
WO2003048939A1 (en) 2003-06-12
DE60230716D1 (de) 2009-02-26
CA2434328A1 (en) 2003-06-12
AU2002359611A1 (en) 2003-06-17
US20030140241A1 (en) 2003-07-24
CA2434328C (en) 2011-04-19
ATE420533T1 (de) 2009-01-15

Similar Documents

Publication Publication Date Title
CN1650268A (zh) 使用密码保护保密内容的方法和系统
CN1474281A (zh) 图形系统中认证组件的方法和系统
CN100350395C (zh) 保护视频卡输出的系统和方法
US7758422B2 (en) Hard drive authentication
US20030235304A1 (en) Methods and systems providing per pixel security and functionality
CN1402138A (zh) 著作权保护系统、记录设备及解密设备
US9531916B2 (en) Preventing pattern recognition in electronic code book encryption
TW583614B (en) Copyright protection system and method thereof
US20070169068A1 (en) Function calling method for computer system, computer system, and library
US20160182952A1 (en) Protected Media Decoding System Supporting Metadata
CN1921387A (zh) 认证处理方法以及认证处理装置
US20100053180A1 (en) Method and system for cryptographically securing a graphics system
CN1441590A (zh) 硬盘组件
US8452986B2 (en) Security unit and protection system comprising such security unit as well as method for protecting data
RU2308077C2 (ru) Способы и системы для криптографической защиты охраняемого содержимого
TW201328283A (zh) 符合scorm標準之數位版權管理系統及其隨機加密方法

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150507

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150507

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100324

Termination date: 20191203

CF01 Termination of patent right due to non-payment of annual fee