CN1474281A - 图形系统中认证组件的方法和系统 - Google Patents

图形系统中认证组件的方法和系统 Download PDF

Info

Publication number
CN1474281A
CN1474281A CNA031231829A CN03123182A CN1474281A CN 1474281 A CN1474281 A CN 1474281A CN A031231829 A CNA031231829 A CN A031231829A CN 03123182 A CN03123182 A CN 03123182A CN 1474281 A CN1474281 A CN 1474281A
Authority
CN
China
Prior art keywords
key
graphics card
encryption processor
equipment
application software
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.)
Pending
Application number
CNA031231829A
Other languages
English (en)
Inventor
P・英格兰
P·英格兰
M·佩纳多
韦尔特
N·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 Corp
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 CN1474281A publication Critical patent/CN1474281A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/606Protecting data by securing the transmission between two devices or processes

Abstract

对可信图形系统的使用提供认证组件的方法和系统。对一种系统提供认证图形卡的技术,该系统用密码保密经图形流水线发送的内容,使得应用软件或设备能对可信图形平台指明该应用软件或设备是可信图形平台的可信用户,并使得该图形平台能通知可信的应用软件或设备该图形平台可受其委托。

Description

图形系统中认证组件的方法和系统
版权声明及许可
本专利文件的一部分说明可能包含属于版权保护的材料。版权的拥有者不反对任何人复制专利文件或专利说明,只要它出现在专利商标事务所的专利文件或记录中,但在其他地方保留所有版权的专利。下面的标志将施加于此文件:Copyright2001,Microsoft Corp。
相关申请
本专利申请涉及共同转让待审的名为“用于密码保护保密内容的方法和系统”的美国专利申请号10/124,99(2002年4月18日提交)。
技术领域
本发明涉及对可信图形系统的使用认证组件的方法和系统。具体说来,本发明涉及对用密码保密通过图形流水线发送的内容的系统认证图形卡的技术。
背景技术
因特网以及许多其他信息源和应用软件提供大量的流动和固定的媒体或其他内容,用于听、视、处理、存储或演示。但是当前没有实用的方法以保护版权的方式捕捉、记录或演示流动的或固定的媒体或内容,使得盗版者在内容处理或演示时不能沿流水线在某个点上窃取该信息流也不能占有版权或更改内容。此问题已存于过去的媒体的演示和记录设备,如电视内容的VCR或音频信号的磁带记录仪,但至少有一个关键差别。因为数字媒体内容能实际上没有信息损失地记录,对版权的拥有者就面临一个“危险”,他们的工作被自由地共享而没有补偿。对VCR和磁带记录仪,设备和传输媒体将噪声或受损数据引入记录过程。对流动或固定的数字媒体,没有理由不能实现实际上无损的转换和再传送,至少对人的耳朵和眼睛的能力的范围是如此,也没有理由纯粹的数字数据不能存储及自由地发布。因此,总希望防止数字数据的不加约束的重新发布,因为在版权拥有者为费用能提供的与盗版者为费用能提供的之间只有很小的差别。此外,对于象电子商务交易那样希望能够保密的通讯,对参与此对话的用户重要的是没有未授权的第三者暗中参与此交易。因此,关于受托源的内容,当前没有实用的方法在用户的计算机上“安全”地处理数据而不要防止盗版或破坏。
尤其是,一旦内容在主计算系统、一个或多个图形处理器(GPU)和如监视器那样的演示设备之间进行流水线处理,盗版者或其他未经授权的第三者就有若干机会预占线路或信号,并盗版或破坏此信号。此外,当用户的对话经消息服务和视频会议成为更复杂时,对保密的内容从来源处提供可靠的线路成为今后会越发重要。
而且清楚的是,新一代的操作系统,计算设备和应用软件程序将对业务应用软件从GPU使用更多的计算能力,而不是象今天这样从个人计算机(PC)获得更多的计算能力。因此,保证经“可信图形“应用软件发送内容将是对未来计算设备的基本特征,且这是由现在的计算系统尚未充分说明的特征。
对受托内容提供安全的流水线的问题能看成是两重的:(1)必须保证受托内容在流水线期间不能被拷贝或在某薄弱环节观看(机密性)。(2)必须保证,该流水线防止未经授权地破坏流水线中的数据(保护的)。在系统安全的前后关系中,复杂性是不利条件,因为它使得更难以证明系统的安全性。好象飞机场或其他保安场合,在系统中有更多的入口与出口,就更难以保证安全。在这方面,目前没有办法使得大部分的GPU功能和显示驱动器在机密性和可保护性方面是可信的。共同转让待审的名为“Methods and Systems forCryptographically Protecting Secure Content”的美国专利申请号10/124,922(2002年4月18日提交)讲授的系统和方法,提供那样的可信的图形平台。
然而,关于那样的可信的图形平台,在传输、处理和/或演示内容之前存在一个重要的问题,与可信的图形平台互动的可信的应用软件或服务当前没有足够方法确保与其互动的图形平台是可信的,而且当前对一个应用软件没有安全且足够的方法通知图形平台,它是可信的应用软件,使得它能利用可信的图形平台的可信的服务。因而需要改进的方法,用于对使用可信图形平台进行认证。
发明内容
考虑上述因素,本发明提供一种对可信图形系统的使用认证组件的方法和系统。对一种系统提供认证图形卡的技术,该系统用密码保密经图形流水线发送的内容,使得应用软件或设备能向可信的图形平台指明该应用软件或设备是图形平台的可信用户,并使得该图形平台能通知该可信应用软件或设备该图形平台能受其委托。
方法包括各种技术,用于提供与使用具有图形卡的可信的图形平台有关的认证,技术包括由应用软件或设备请求验证图形卡是安全的图形卡,并响应该请求,由在通讯上和安全上连结图形卡的密码处理器产生会话密钥,且将该会话密钥发送给该应用软件或设备。
系统包括包含应用软件或设备的计算设备,具有GPU的图形卡和在通讯上及安全上与该GPU连接的密码处理器,其中该应用软件或设备请求验证该图形卡是安全的图形卡,由此,响应该请求,该密码处理器产生会话密钥并将该会话密钥发送到该应用软件或设备。
附图说明
将参考附图进一步叙述按本发明认证与使用可信的图形系统相关的组件的方法和系统,附图中:
图1A是方框图,示出具有可以实现本发明的各种计算设备的示例性网络环境。
图1B是方框图,示出可以实现本发明的示例性的非限定性计算设备。
图2是流程图,示出图形流水线的未保护部分,它按本发明加保护。
图3A和3B是方框图,示出按本发明的第一层安全性的示例性方面。
图4A到4C是方框图,示出按本发明的第二层安全性的示例性方面。
图5A到5B示出按本发明AYUV/ARGB格式的示例性混搅(Swizzling)。
图6A到6B示出按本发明YOY2格式的示例性混搅。
图7A到7B示出按本发明包装的二维格式的示例性混搅。
图8A到8B是方框图,示出按本发明的第三层安全性示例性方面。
图9A到9B方框图,示出按本发明的示例性加密技术,它能应用软件于从图形处理器的输出。
具体实施方式
概况
本发明提供系统和技术,用于为认证而增强操作系统或在从可信源来的内容和图形系统之间的其他中介物,使得能由‘可信图形’应用软件实现内容的处理和/或演示,如防窜改机密对话和回放防非授权复制的收费内容。观察可信的图形平台的一个方法是它提供了“层”安全:(1)覆盖表面的内容的加密,(2)启用GPU或其他协处理设备,以便在加密内容上操作,并使其不能为不信任方法用,和(3)启用被加密的命令缓冲器。本发明提供与那样的可靠的图形平台相关的认证服务。
如上所述,在系统安全方面复杂性是不利条件,因为使得更难以证明系统的安全性。结果,可信的图形平台认为丰富的GPU功能及显示驱动器是不可信的。通过限制满足安全准则能使用的硬件范围,可信的图形平台增加了在机密性和可保护性方面正确实现的机会。上面已讨论了本发明的某些方面。然而为了清楚起见,现在将强调某些内容。机密的内容涉及防止如第三方设备及软件那样的不可信的第三方来获得对保密内容信息的访问。那样机密性的例子包括防止不可信的第三方在沿着图形流水线的任何处获得对回放加密的收费视频内容的访问。保护的内容涉及防止如第三方设备或软件那样的不可信第三方访问或改变保密的内容信息而不被检测到。那样可保护性的例子包括防止不可信的第三方访问或更换在电子商务交易期间可能发生的秘密对话的显示。
在这方面,可信的图形平台考虑如在收费内容视频流的顶部的用户接口那样的重叠窗口以及在电子商务对话期间可能出现的不能隐匿的窗口。然而,在可信的图形平台能操作之前,按本发明有一个机构,它保证使用可信图形平台的应用软件和设备以及可信图形平台本身是整个可信的系统的真实的部分。本发明提供实现那样的认证的系统和技术。下面叙述细节和实施例。
示例性网络环境
本专业熟练人士认识到,能利用计算机或其他客户或服务器设备作为计算机网络或分布式计算环境的一部分。在这方面,本发明适合于任何具有任何数目内存或存储单元,和任何数目应用软件和过程的计算机系统,这些应用软件和过程发生在任何数目存储单元或卷,并隐含用于可信图形范围的认证技术。本发明可应用软件于带有在网络环境中采用的服务器计算机及客户计算机,或具有当地及远端存储器的分布式计算环境。本发明也能用于具有编程语言功能,解释和执行能力的单独计算机,以产生、接收并发送与远端及本地服务有关的信息。
分布式计算通过在计算设备及系统之间的直接交换便于共享计算机的资源及服务。这些资源及服务包括信息交换、高速缓冲存储和用于文件的盘存储。分布式计算得益于网络互连,允许客户均衡他们的集体能力以利于整个企业。在这方面,各种设备能具有应用软件,对象或资源,它们能互动,以隐含本发明对可信的图形流水线的认证技术。
图1A提供示例性网络化或分布式计算环境。分布式计算环境包括计算对象10a,10b等和计算对象或设备110a,110b,110c等。这些对象能包括程序、方法、数据存储、可编程逻辑等。对象可包括如PDA、电视、MP3播放器、电视、个人电脑等。每个对象能经过通讯网络14与另一个对象通讯。此网络本身能包括向图1A的系统提供服务的其他计算对象及计算设备。按本方面的一个方面,每个对象10或110能包含对可信的图形流水线请求本发明的认证技术的应用软件。
可以看到,如110c那样的对象能以另一个计算设备10或110为主机。这样,虽然画出的物理环境能将连结的设备示作计算机,那样的图示仅是示例性的,物理环境能另外地画成或描述成包括如PDA、电视、MP3播放器那样的各种数字设备和如接口、COM对象等软件对象。
有各种系统、组件和网络配置支持分布式计算环境。计算系统能借助有线或无线系统,经当地网络或广泛分布的网络互相连结。当前,许多网络连到因特网,它对广泛的分布式计算提供基础设施,并包容许多不同的网络。
在家庭连网环境,至少有4种根本不同的网络传输媒体,它们每个支持单独的协议,如电源线、数据(无线和有线)、语音(如电话)和娱乐媒体。大多数如电灯开关及电器那样的家用控制设备使用电源线连接。数据服务能作为宽带(如DSL或电缆调制解调器)进入家庭,并在家中使用无线(如HomeRF或802.11b)或有线(如家庭PNA,Cat5,甚至电源线)连结访问。语音通话量能有线地(如Cat3)或无线地(如移动电话)进入家庭,并使用Cat3连线在家庭内分布。娱乐媒体能通过卫星或有线电视进入家庭,且通常在家里使用同轴电缆分布。IEEE1394和DVI也作为对媒体设备群的数字互连出现。所有这些网络环境以及作为协议标准出现的其他环境可以互连以形成能借助因特网连接外部世界的内部网。简言之,各种根本不同的源存在于数据的存储和发送,结果进一步,计算设备需要在数据处理流水线的所有部分保护内容的方法。
因特网通常看作使用TCP/IP协议组的网络和网关的集成,它是计算网络行业内熟知的。TCP/IP是“Transport Control Protocol/Internet Protocol一传输控制协议/网间协议”的缩写。因特网能描述成由执行网络协议的计算机互连的地理分布式远程计算机网络的系统,它允许用户在网络上互动并共享信息。由于那样广泛范围的信息共享,如因特网那样的远程网迄今已大体演变成开放系统,对于开发者能基本上无限制地设计软件应用软件,用以完成特定的操作和服务。
因此,网络基础设施启用如客户/服务器、对等、或混合架构那样网络拓扑的一个主机。“客户”是使用与其无关的另外的类或组的服务的类或组的成员。因此,在计算中客户是一个过程,即粗略地看是一组指令或任务,它请求由另外程序提供的服务。客户过程使用所请求的服务而不必“知道”有关其他程序或服务本身的运作细节。在客户/服务器架构中,尤其在连网系统中,客户常常是访问由如服务器那样的另外计算机提供的共享网络资源的计算机。在图1A的例中,计算机110a,110b等能看作客户,而计算机10a,10b等能看成服务器,服务器10a,10b维护数据,这些数据随后在客户机110a,110b等中复制。
服务器通常是经如因特网那样的远程网络能访问的远程计算机系统。客户过程能在第一计算机系统激活,而服务器过程在第二计算机系统激活,经通讯媒体互相通讯,从而提供分布式功能,并允许多个客户利用服务器的信息聚集能力。
利用由协议层提供的功能客户和服务互相通讯。例如,超文本传输协议(HTTP)是结合万维网(WWW)使用的公共协议。通常使用如统一资源定位符(URL)那样的计算机网络地址或互连网协议(IP)地址互相识别服务器或客户计算机。网络地址能称为统一资源定位符地址。例如,能经通讯媒体提供通讯。尤其是客户和服务器能经TCP/IP互连,用于大容量通讯。
因此,图1A示出服务器经网络/总线与客户计算机通讯的示例性连网或分布式环境,在那里能使用本发明。更详细地,一系列服务器10a,10b等通过如LAN、WAN、企业内部网、因特网等那样的通讯网络/总线14按本发明与一系列客户或远端计算设备110a,110b,110c,110d,110e等互连,如与便携电脑、手持电脑、瘦客户、互联网电器、或如VCR,TV、电炉、电灯、加热器等那样的其他设备互联。因此,可以预期,本发明能应用软件于任何计算设备,希望与其连结来处理存储或演示从可信源来的保密内容。
例如在通讯网络/总线14是因特网的网络环境中,服务器10能是Web服务器,客户110a,110b,110c,110d,110e等经如HTTP那样的若干的众知的协议与其通讯。作为分布式计算环境的特征,服务器10也能用作客户110。通讯可为有线或无线,这因地制宜。客户设备110可经或不经通讯网络/总线14通讯,并可以具有有关的独立通讯。例如,在TV或VCR的情况,对于控制可以是连网的也可不是。每个客户计算机110和服务器计算机10能装有各种应用软件程序模块或对象135,并连结或访问各种类型的存储单元或对象,经过这些存储文件或下载或移植部分文件。因此,本发明能用于那样一个计算机环境,此环境具有能访问计算机网络/总线14并与之互动的客户计算机110a,110b等和能与客户机110a,110b和其他设备111及数据库70互动的服务器计算机。
示例性计算设备
图1B和下面的讨论试图提供可实现本发明的合适的计算环境的简明叙述。然而可以理解,考虑所有类型手持的、便携的和其他计算设备及计算对象适合于结合本发明使用。虽然下面叙述通用计算机,这仅是一个例子,本发明可用具有网络/总线可交互操作性及交互作用的瘦客户实现。因此,本发明能在连网的主机服务的环境中实现,其中包含很小或最小的客户资源,如那样的环境,其中客户设备只作为到网络/总线的接口,如放在设备中的部件。主要是希望数据能存入任何地方或从那里检索或演示数据,希望一个合适的环境,用于本发明的认证技术的操作。
虽然不是必须,本发明能通过操作系统、应用软件程序设计接口(API)实现,并且/或者包括在应用软件软件中,该软件面向应用软件本发明的认证技术。在各种实施例中,本发明还应用软件到硬件,它符合下面所述的接口和加密技术。软件可以在计算机可执行指令的一般环境叙述,如准备在由如客户工作站、服务器或其他设备那样一台或多台计算机执行的程序模块。通常,程序模块包括例行程序、程序、对象、组件、数据结构等,它们完成特定的任务或实现特定的抽象数据类型。通常,在各个实施例中程序模块的功能随意地组合或分布。而且本专业熟练人士得知,本发明能用其他计算机系统配置实施。其他适用于本发明的众知的计算系统、环境、和/或配置包括个人电脑(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)通常存储在ROM131。RAM132通常包含立即由处理单元120访问和/或操作的数据和/或程序模块。例如,图1B示出操作系统134、应用软件程序135、其他程序模块136和程序数据137,但不限于此。
计算机110也能包括其他可拆卸/不可拆卸的易失/非易失性的计算机存储媒体。仅作为例子,图1B示出从不可拆卸的非易失性磁媒体读写的硬盘驱动器141、从可拆卸非易失性磁盘152读写的磁盘驱动器151和从如CD ROM或其他光媒体那样可拆卸的非易失性光盘156读写的光驱动器155。在示例性操作环境中能使用的其他可拆卸/不可拆卸、易失/非易失性的计算机存储媒体包括盒式磁带、闪存卡、数字通用光盘、数字视频带、固态RAM、固态ROM等。磁盘驱动器141通常通过如接口140那样的不可拆卸存储器接口连接到系统总线121,而磁盘驱动器151及光盘驱动器155通常由如接口150那样的可拆卸存储器接口连接到系统总线121。
上面讨论并在图1B中示出的驱动器和它们相关的计算机存储媒体提供了对计算机可读指令、数据结构、程序模块和其他用于计算机110的数据的存储。例如,在图1B,硬盘被示作存储操作系统144、应用软件程序145、其他程序模块146和程序数据147。注意,这些组件与操作系统134、应程程序135、其他程序模块136和程序数据135或者相同或者不同。这里对操作系统144,应用软件程序145,其他程序模块146,和程序数据147标记不同的标号,至少表示它们是不同的拷贝。用户能通过如键盘162和通常称为鼠标、跟踪球或触摸垫那样的定位设备161输入命令和信息到计算机110。其他输入设备(未示出)包括麦克风、游戏杆、游戏垫、卫星天线、扫描器等。这些和其他输入设备常通过连接到系统总线121的用户接口160连接到处理单元121,但可以借助如并行端口、游戏端口或通用串行总线(USB)那样的其他接口和总线结构连接。如Northbridge那样的图形接口182也能连接到系统总线121。Northbridge是与CPU或主处理单元120通讯的芯片组,并认为专门用于加速图形端口(AGP)通讯。一个或多个图形处理单元(GPU)184能与图形接口通讯。在这方面,GPU184通常包括如寄存器那样的芯片上存储器,且GPU184与视频存储器186通讯。但是GPU184仅是协处理器的一个例子,在计算机110中可包括各种协处理设备。监视器191或其他类型的显示设备也经如视频接口190那样的接口连接系统总线121,它转而与视频存储器186通讯。通常,这是计算设备中易受攻击的部分,因而本发明提供在那里处理及演示的数据的保护及机密性。除监视器191以外,计算机还能包括如扬声器197和打印机196那样的外围输出设备,它们能通过输出外围接口195连接。
计算机110能使用到如远端计算机180那样的一个或多个远程计算机的逻辑连接,在连网分布式环境内运行。远端计算机180能是个人计算机、服务器、路由器、网络PC、对等设备或其他通用网络节点,并通常包括上述关于计算机110的多个或所有单元,虽然在图1B中只示出存储设备181。在图1B中画出的逻辑连结包括局域网(LAN)171和广域网(WAN)173,但还可包括其他网络/总线。那样的网络环境在家里、办公室、企业范围计算机网络、企业内部网和因特网中是常见的。
在使用LAN网络环境时,计算机110通过网络接口或适配器170连接到LAN171。在使用WAN网络环境时,计算机110通常包括调制解调器172或其他设备,建立在诸如因特网那样的WAN173的通讯。内置或外置的调制解调器172能经用户输入接口160或其他合适的机制连结到系统总线121。在连网环境中,相对于计算机110画出的程序模块或其部分能存储在远端存储设备。例如,图1B示出驻留在存储设备181的远端应用软件程序185。可以理解,示出的网络连接是示例性的,能使用其他方法在计算机之间建立通讯链路。
示例性分布式计算机架构或体系结构
考虑到个人计算机和因特网的发展,已经开发或正在开发各种分布式计算架构,个人或企业的用户装有对应用软件及计算设备能无缝互操作且启用Web的接口,使计算活动更面向Web浏览器或连网应用软件。
例如,MICROSOFT.NET平台包括服务器、积木式服务,如基于Web的数据存储和可下载的设备软件。一般说来,.NET平台提供1)使全范围计算设备一起工作并使用户信息自动更新及整体同步的能力,2)通过大量使用XML代替HTML,使网站互动能力能提高,3)其特征为自定义接入和从中心起点对用户提供产品和服务的在线服务,以管理各种应用软件(如电子邮件)或软件(如Office.NET),4)集中化数据存储,增加了访问信息的有效性和方便性,并增加了用户和设备中信息的同步,5)对诸如电子邮件、传真和电话各种通讯媒体的综合能力,6)对开发者增加可再使用模块,增加生产力并减少编程错误的数量和7)许多其他平台间综合集成特性。
虽然这里的示例性实施例通常结合由驻留在计算设备上的软件实现的方法叙述,本发明的一个或多个部分也能经操作系统、应用软件程序设计接口(API)或在协处理器和不可损害的内容之间的“中间人”(“middle man”)对象实现,使得可信的内容服务也能通过所有.NET的语言和服务的支持和介入并在其他分布式计算架构中完成。此外,可以理解,按本发明叙述的一个或多个技术能包含硬件的改变,如改变GPU以适应该技术。
用密码保护安全的内容
‘ZZZ应用软件的可信图形平台为增强操作系统或任何平台提供方法和系统,以启用如防篡改、机密对话的“可信图形”应用软件,并以防止非授权复制的方式启用内容的播放。图2示出由本发明解决的问题,其中示出加密的收费内容200,它们经过或由信任的软件应用软件TS产生。由于使用信任的软件TS,内容200在用演示设备295演示(或其他应用软件)内容200之前包含了GPU265的功能。那样的内容200将从系统或主存储器230传送到视频存储器由GPU265处理。图2中的虚线示出安全问题所在处。在技术背景中已提到,没有当前的系统能适当地保证,通过由虚线围绕的单元内容受保护且机密的传输。从信任软件TS的观点,由本发明解决的第一问题是在将内容交到GPU之前,在虚线以前的组件对内容是否可信。假设信任的软件TS能正确认证虚线内的部件,则从该TS和由’ZZZ专利申请提出的观点提出的第二问题是信任的软件TS必须合理地保证,一旦数据送到虚线之内,该数据将不被更改。本发明在下面叙述的各种实施例中针对这两类问题。首先叙述提供按本发明的认证服务的系统和方法。然后借助下列办法以各种方法实现可信图形平台的方法和系统:1)加密覆盖表面的内容,2)使GPU能在加密内容上操作而对不可信的应用软件或部门不可用,和3)加密命令缓冲器的内容。
图形卡的认证
本发明提到的可信图形处理和演示的问题的第一方面涉及加密处理器和索引密钥管理的措施。
在这方面,安全图形卡必须能这样地认证本身。尤其是,信任的软件必须能够从传统的图形卡或欺骗设备(诸如电子欺骗)区分出安全的图形。此外,信任的软件必须能够揭示对图形卡的加密密钥,并能验证,密钥的接收者确认是安全的图形卡。为此目的,安全图形卡装备有按本发明的密码处理器,完成认证和密钥传输的加密任务。
在硬件方面,按本发明提供加密处理器,它在制造期间被个性化和认证。每个密码处理器包含单独的私有解密密钥Kpriv。虽然按本发明考虑许多在密码专业所众知的许多不同的加密和解密算法,在上下文中这里叙述的算法是RSA,且密钥长度是1024位,这两方面不限制设计选择,设计能根据所需的应用软件和安全等级按照众知的权衡方法定制。
在这方面,加密处理器永远附着于图形卡,或者将其加到现有的芯片中,或者作为分开的芯片加到卡上。加密处理器实现如下面详述的公开密钥加密算法并隐藏独特的私有密钥。在这方面,那样的加密处理器能用当今的硅片技术迅速地完成公开密钥解密。然而,加密处理器也能包括公开密钥加速器,并实现对称密码(AES)和某些控制逻辑。
在某些示例性非限制性实施例中,加密处理器包括下列易失性寄存器:1)用于会话密钥的256位寄存器S。此密钥的寿命通常是信任的软件的运行时间,和2)多个索引密钥的数组。虽然其他选择也能是合适的,每个密钥为128位。每个密码与特定窗口有关,并且图形卡用于解密其内容,每个密钥的寿命由信任的软件的指令操纵。
如上提到,本发明的加密处理器永久地附着于图形卡。因此,需要安全地与加密处理器连接的措施以便使用其功能。关于与加密处理器的接口,本发明至少考虑两项技术:a)到信任软件TS的外部接口和b)到GPU265的接口。前者接口(至少加密方面)必须是标准化的。后一接口可专门实现,但必须遵照下面陈述的总方针。
关于外部接口实施中,外部接口使用用于认证和密钥传输的私有密钥(PK)解密协议。在此协议下,信任软件TS用加密处理器的公开密钥加密会话密钥。加密处理器接收最终的加密团(cryptoblob)并用其公开密钥解密,从而获得会话密钥。现在信任软件和加密处理器共享秘密。信任软件能使用此会话密钥发出指令到加密处理器。
在一个非限定性实施例中,通过下列功能由加密处理器揭示外部接口:
函数SetSessionKey()完成初始的认证步骤和密钥传输。这是访问加密处理器的公开密钥功能的唯一函数。因此在一个实施例中,本发明在每次自举时试图调用此函数。下面的示例性伪代码表示SetSessionKey()的一种非限制性实现:
SetSessionKey(cryptoblob){PKDecrypt(private Key,cryptoblob,session key);}
在成功地完成操作之后,session Key寄存器包含从加密泡来的密钥,如256位密钥。例如,公开密钥算法能是1024位RSA。
一旦在信任软件和加密处理器之间建立了对称会话密钥K,此密钥能用于保密以后对加密处理器的所有来往的通讯。信任软件和加密处理器能借助简单的Get和Set方法通讯,为了机密性和完整性其参数受密码的保护。尤其是每次调用的参数块B能以下述非限制性方法处理:
AES(M|HMAC(M,K1),K2),
其中
K1是K的前一半(位0到127)
K2是K的后一半(位128到255)
AES(M,K)是AES在CBC方式下用密码K加密消息M的结果
HMAC(M,K)是通过合适的散列函数上,用密钥K对消息M计算HMAC的结果
A|B是级联A和B的结果。
此格式能用于下列函数的输入参数和输出参数:
Set(【IN】BOOL needs Ack,【IN】BITS128 nonce,【IN】ENUM propertyID,【IN】BYTESEQUENCE property Paramters,【OUT】BYTESEQUENCE ack)其中
Needs Ack是布尔值,它使信任软件指出是否需要确认。
Nonce是由信任软件选取的128位值。若需要确认,nonce能用于确认。
Property ID识别正设置的特性,下文表1中给出所支持特性的示例性表。
Property Parameters是对每个property ID指定的参数序列。
最后,ACK是操作的确认。当且仅当needs ACK被设置时加密处理器产生ACK。ACK由nonce及随后的对每个property ID指定的消息组成。
Property ID 需要Ack     参数     确认
  索引密钥     是 索引,密钥,目的 正确,有误
  输出锁定     是   {锁定,解锁} 锁定操作后的状态
  L2KEYMGMT     是     更新频率 正确,有误
              表1  Get函数的property ID的表
对于索引密钥的property ID,此方法向由索引识别的密钥寄存器写入新密钥和目的标签。
对于输出锁定property ID,此方法设置输出锁定标志。当此标志被设定时,屏幕几何结构(宽、高、彩色深度、刷新速率)和图形卡输出(VGA,DVI)不能改变。具体是,当锁定标志被设定时,图形卡不执行改变这些设定的指令。
对于L2KeyMgmt的property ID,此方法在按本方面叙述的第二层保护下,即下面将详述的输入和输出加密下,设定更新频率。
类似地,如下地给出Get函数:
Get(【IN】BITS128 nonce,【IN】ENUM property ID,【IN】BYTESEQUENCEpropertyParamters,【OUT】BYTESEQUENCE response)其中
nonce是由信任软件选择用于响应的128位值。
property ID识别要设定的特性,在下面图2中给出所支持的特性的表。
property Parameters是指定每个property ID的一串参数。
Response包含操作的结果,由nonce及随后的对每个property ID指定的消息组成。
  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方式的成块密码来加密由信任软件写的文本块。
在这方面,当索引被新值填入时不保持密钥的拷贝。
另一种密钥建立机制是建立在用于密钥传输的平台硬件中的可信路径。例如,若请求认证安全图形卡的软件或硬件事先得知,可信的平台保证写到地址如OX12345678的总是被映射到视频卡密钥存储器,则加密处理器不必要安全地发送会话密钥,即因为替代地可使用此“封闭路径”。此另选方法能使用小的安全通讯机制来自举大量安全通道。那样的安全通讯机制能是低带宽连接。
进一步的实现是说,大量数据传输机制是受保护的。例如,在下述安全覆盖系统中,安全的应用软件或设备使用保护的路径直接发送视频数据到视频卡,以避免我们借助使用a)加密处理器或b)上述对密钥交换的安全路径的安全密钥交换步骤。
下面叙述如在‘ZZZ专利申请中叙述的可信的图形平台并包括加密覆盖部分、加密输入和输出并加密命令缓冲。下面叙述那样的可信图形平台是为示例性目的,可以理解,本发明的认证技术可应用软件到可信的图形平台的各种实现中。
第一安全层一加密覆盖部分
因为视频存储器能由在CPU上运行的不可信的软件读出,视频存储器不能保持明文方式的信息。服从于此要求的视频存储器包括用于刷新显示的视频存储器。满足此准则的系统的初始实现加密覆盖表面的内容。然后覆盖由DAC硬件在进行中解密,或当图形被送到显示器时在刚达到DAC硬件之前解密。
图3A示出那样技术的示例性实施例。加密收费内容200,即从任何处发现或产生对信任软件应用软件210的事件,由可信的应用软件210接收。用加密处理器220的认证交换保证在上面示例性实施例中的所述认证交换过程或者由任何用于安全密钥传输技术认证交换过程,此保证通过加密码或者经过用其他方法保护的路径实现。内容200从系统存储器230送到加密的覆盖表面240,后者覆盖了视频存储器260的基本表面270。结合加密处理器220,GPU265的解密部分解密由加密覆盖240提供的加密层并将内容提供给象素选择280,用于输出到数字视频接口(DVI)/数模转换器(DAC)290,经转换后再输出到如监视器那样的演示设备。但是,图3A画出的系统不满足所有上述准则,因为只有一个覆盖。为了满足对如可信窗口那样的可信环境的功能的最小底线要求,在另一个实施例中启用了两个覆盖。第一个“机密”覆盖基本上是当今存在于平台中的覆盖,主要用于回放的增强的视频,使得其内容能加密。第二个覆盖专门针对现在敏感的用户接口设计,如电子商务对话。此“保护的覆盖”总在最前面且不隐匿,即无彩色密钥并具有高于第一覆盖的优先。第二覆盖受到某些限制,使成本最低。例如,可以提供第二覆盖,使得数据具有与基本表面相同的象素格式,且不能伸展或多重缓存。此外,保护的覆盖的内容能由硬件验证。表3示出在机密覆盖与保护覆盖之间的示例性差别。
         项目   机密覆盖 保护覆盖
  像素格式与基本面相同     是     否
        能伸展     否     是
  目的处可带彩色密钥     是     否
      能多重缓存     是     否
    是否总在最前面     否     是
      能验证内容     否     是
               表3  机密覆盖和保护覆盖的对比
图3B示出一系统,它包括机密覆盖,如机密覆盖交换链的覆盖310a,310b和310c,以及保护覆盖320。若可能,使用流密码于安全表面加密,因为它们比块密码更快且实现更简单(细节见附录A)。流密码根据“字节在流中的位置”加密数据。因此,第一安全级用在表面的左上角带有起动象素加密密钥的流密码。不论象素是否显示,流密码对包含在覆盖表面中的每个象素进行。提出的系统包含两个流密码解密组件300a和300b,分别对应机密覆盖和保护覆盖。一旦解密的象素值可用,硬件280选择保护覆盖320、机密覆盖310(若基本表面270等于彩色密钥和/或若彩色加密钥启用)或基本表面270的象素值,并将象素值经DVI/DAC290送到显示硬件。
注意,盗密方能通过一系列方法获得对覆盖的访问,或者使显示图形不可见或者用噪声内容替代安全的内容,因为由盗密方写的数据也将被解密。虽然现在描述的可信的图形平台不直接抵御这些攻击,它确实提供完整的校验,以保证期望的内容提供给最终用户。因此,若输出有些不同于输入,用户或信任软件210能警觉到有对内容的窜改。
关于对覆盖的软件界面,除了如源和目的的边界框、目的的彩色密钥等那样一般的覆盖信息外,机密覆盖310还保持指定加密密钥,而保护覆盖320额外保持指定解密覆盖内容的循环冗余码(CRC)写入的存储器位置。
机密覆盖界面类似于现有的覆盖,区别在于交换方法指定覆盖的后端缓存区310a(即数据被交换到的缓冲区)的内容的加密密钥索引。
保护覆盖界面更简单,并使得对该表面的CRC的措施,在其被首次显示之后进到存储器位置。标准的硬件接口控制覆盖的位置,并使CRC对在轮询基础上关心的软件可用。例如,一个寄存器能指出CRC是否可用,而另一个使CRC能读出。例如,能结合保护覆盖界面使用下述示例性伪码:
FRESULT Update Overlay(LPPOINT ppnt UL);
其中:
ppnt UL指定保护覆盖的左上角。
在这方面,软件210计算CRC值,若它关系到完整性,它是所期望的。
第二层安全-加密的输入和输出
为增强GPU265将加密内容处理成输入,并将加密内容作为输出发出,将加密和解密硬件加入到纹理映射单元(在输入侧)和字母混合单元(在输出侧),而且硬件设计者在实现此功能中协同工作以遵循某些规则。因为流密码不能随机访问加密数据,系统使用块密码加密数据如每次加密128位。纹理映射单元在满的缓存器行上解密,而字母混合单元在从彩色缓存器读出高速缓存线时解密,并在写以前加密。在这些操作中使用的加密密钥能是不同的。
除如视频解密那样3D演示之外的计算任务,是刚叙述的样式的直接扩展。代替纹理,视频宏功能块用作加密的输入;且代替彩色缓冲器,要解密的输出帧用于加密的输出。若内容在命令流中以带内方式传给GPU265时是要保护的,下面将叙述如何能加密命令缓冲器。
图4A画出刚叙述的系统,它完成前端操作,取加密表面420作为输入并发送加密的表面作为输出,即经过加密和解密组件440的加密纹理和彩色缓冲技术的前端。还提供加密的纹理400a,其中纹理400b可为视频存储器260的通常纹理。加密的纹理400a输出到GPU265的解密组件450,它与加密处理器一起工作解密纹理,并用组件430a对从组件440来的解密数据施加图形算法,诸如作明暗处理等。
期望配置合成的页式交换桌面系统,刚叙述的图4A的系统能保护整个桌面系统,只要DAC硬件解密基本表面270以及上述的覆盖表面310和320。注意到,在那样情况DAC硬件使用块密码解密而不是流密码。那样的系统使任意多的机密表面带着任意的Z排序,混合或施加给它们的3D或其他效果参加到桌面系统,而不牺牲安全性。保护覆盖表面320,必须永远居首位,且其内容必须可验证,驻留在分开的表面中。上述机密覆盖310一直保持到它能由安全的页面交换桌面系统或平台在软件中模拟。
在一个实施例中,除了能够解密基本表面270以外,系统需要GPU265也能够如可信的文字处理器那样的普通桌面应用软件软件加密明文,所以它们也期望在桌面系统中。图4B示出那样的情景,其中包括前端510b和后端510a的主交换链510被加密。因此,基本表面能由桌面的排字软件430操作,由加密/解密组件440a分别对到那里的输出/输入保护。在与加密处理器220的通讯中,解密组件550随后解密前端表面510b,用于输出到DVI/DAC290。这就将系统暴露给某些类型的攻击,下面将关于保证安全性细述这些攻击,并讨论防止这些攻击的某些策略。
图4c画出图4b的另选方案,其中实现对机密的覆盖交换链310的录制。因此,作为加密基本表面270的另选方案,硬件能使由机密的覆盖硬件300a对用于消费的流密码加密,此硬件与加密处理器220一起解密流密码数据。此表现机制比用块密码加密基本表面节省,但可能不如设计折衷考虑那样可伸缩及灵活。因为机密覆盖310使用流密码加密,在此方面所支持的合理操作是“拷贝”操作,其中由解密组件440b使用输入表面510b的块密码解密并使用覆盖的流密码由组件440b重加密。
这些实施例和各种组合是有用的,例如若任何数目的明文输入与加密的输入结合产生加密的输出,一次一个加密输入是足够的。
关于持久的安全性,有一系列可实现的手段。首先,上述的第二层安全依赖的概念为:明文一旦被解密不能泄漏出GPU265。例如,不存在排错寄存器或其他设备使得明文能由主机的中央处理单元(CPU)从芯片读出。除了为避免那样的泄漏所作仔细的硬件设计外,GPU265指令组设计成不可能启用解密输入而不启用加密输入。此外,硬件防止明文数据泄漏,无论是由诈骗的发起者,由盗密方的码,或无意的原因。
此外,硬件能不泄漏密钥。一旦密钥经按照认证交换描述的密码协议提交给GPU265,它们只能为加密和解密组件所用。
如上述讨论,若GPU265能加密用于在基本表面270中显示的明文,此设备认为是系统中易受攻击者,因为此加密设备仅是那样描述的机制,其中盗密者能具有明文及同时可用的对应密文。借助映射基本表面,使其能由CPU看到,并建立必须加密的窗口,盗密者能够造对应于已知明文块的密文块的子集。当感兴趣的块数目小的时候,这样所谓的“词典攻击”工作得最好。例如,对以32bpp显示方式显示黑白对话框,因为每块有4个象素,只需要16块来显示那样的对话。对发现16个密文块的盗密者的一个可能的途径是通过建立即使在由GPU265解密以后仍有意义的内容,对最终用户歪曲对话。为此理由,保护的覆盖最好地适用于防窜改对话,因为在终端用户看不到所期望的时它使应用软件程序能检测到。
有两种好的策略来挫败希望建立词典的盗密者。首先,因为词典只对给定的密钥好用,改变密钥并重加密内容迫使盗密者用新的词典开始。此外,对基本表面的加密,不需要使密钥对软件可用——它能在硬件中滚动,而只需要通知软件,密钥已被更改。因为以前的密钥仍然可用,始终能用以前的密钥解密并重加密尚未改变的基本表面的部分。因而,加密处理器220对基本表面270以那样方法周期地滚动加密密钥,使得以前的密钥仍然可用,(如用加密密钥索引的双重缓冲),并设法通知软件,密钥已被滚动。
另外的策略涉及在加密前编码在图形中的位置。例如,图形中的(x,y)象素位置(或如图形偏置那样的某些导出值)能在加密前异或(XOR)到象素数据中;然后在解密后能够接触该造作。结果,对在该表面的不同区域中的象素的块被不同地加密,而明文——密文的映射只是对攻击者不可用的表面的给定位置有意义。
也提供预定的混搅格式。因为纹理和离屏外表面需要随机访问,它们必须用块密码解密。在通常用于块密码的块尺寸与对现代3D加速器的常用的高速缓存线尺寸之间协作良好,例如,若高速缓存线及块的尺寸均为128位,则在硬件中能实现有效的加密和解密。即使有微小差别(如块尺寸为128位而高速缓存线尺寸为256位),硬件实现看来也是有效的。
加密的纹理数据的一个问题是块加密方案需要邻接的字节块在其加密或解密前可用;并且高速缓存线装填需要象素数据被混搅,即从图形中(x,y)位置翻译到的地址形成得高速缓存线装填产生2D的象素区域。至今,硬件供应商暴露可在混搅图形数据时的假想的线性表面格式而没有关于应用软件的知识。然而,因为信任软件发出加密的纹理数据,软件必须具有扰乱方案的先验知识,使得它能加密邻接的数据块,并保存2D的位置。作为响应,定义混搅的图形格式的词典,包括YUV4:4:4,4:2:2,和4:2:0和RGB格式,为应用软件软件使用。这些格式的性能有可能不如图形被混搅到针对硬件的格式那样高,除非加密以性能略为下降为代价,即在交换中的安全性以速度为代价。
关于AYUV/ARGB(32bpp,装成包),此32bpp表面格式除了对照度(Y)和色度(U和V)样本的8位彩色通道外还包含字母通道。另外,它能包含标准的ARGB32bpp,因为两种格式均是32bpp并装成包。下面讨论假设AYUV。其线性布置如图5A。
在图形中象素(X,Y)的偏置如下所示:
偏置=Y*间距+X*4
假设128位的加密块尺寸和高速缓存线尺寸,4个象素配合到单个块中。在产生地址前将X和Y的低数据位交叉将导致在高速缓存线装填中改善的2D位置。按照该格式,这些块线性排列。
图5B示出最终的图形布置。每个带序号的矩形是一个象素,而粗线矩形是加密的块。对于将图形中(x,y)位置转换到偏置的这种格式,混搅函数的示例性伪码,如下所示
DWORD
SwizzleAYUV(DWORD x,DWORD y,DWORD Pitch)
{
 ∥pitch is number of bytes per scanline of macro blocks
 DWORD BlockOffset=(y>>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,装成包)此表面格式用1/2的比率对“色度”样本U和V进行水平二次采样。结果是平均到每象素16位的包图形格式。
线性布置示于图6A。混搅格式分配4*2象素的加密块,如图6B所示。如图5A和5B,128位的块也被混搅。注意,根据图6B和将(x,y)座标对翻译成图形偏置的下面示例性混搅伪码,认为U和V具有偶数的X个座标:
   DWORD

    SwizzleYUY2Y(DWORD x,DWORD y,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(DWORD x,DWORD y,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;

    }

    DWORD

    SwizzleYUY2V(DWORD x,DWORD y,const SURFACEDESC& sd)

    {
        <!-- SIPO <DP n="23"> -->
        <dp n="d23"/>
      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),此表面格式用1/2的比率水平及垂直地二次采样U和V,照度和色度的样本排列在表面的两个分开的部分。在图7A中示出包平面(12bpp)的线性排列。
表面间距定义成在Y平面512位的块的每行扫描线的字节数。UV平面的间距是Y平面间距的一半,因为有1/4的样本数,但是每个样本有2倍的彩色单元。图7B中示出最终的混搅的图形格式。
对于将(x,y)座标翻译成对Y、U和V单元的偏置的这种格式,混搅函数的示例性伪码如下所示:
    DWORD

    SwizzlePP12Y(DWORD x,DWORD y,const SURFACEDESC& sd)

      {

        assert(x<sd.Width);

        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(DWORD x,DWORD y,const SURFACEDESC& sd)
        <!-- SIPO <DP n="24"> -->
        <dp n="d24"/>
    {

       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(DWORD x,DWORD y,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)+1;

      }
第三层安全——加密的命令缓冲器
上述关于第一层和第二层安全的实施例的设备能增强,以便除了GPU265操作的图形数据外,还加密受到GPU265作用的命令缓冲器。若应用软件210希望保护命令缓冲器中带内发送到硬件的内容,需要此功能。图9A示出使用加密的命令缓冲器900的视频解码,据此,将内容被传给加密的纹理400a并由解密组件450解密和由视频解码器430b解码。虽然可能只对命令缓冲器加密,如加密的解码帧420a所示,内容在视频存储器及在命令缓冲器中加密。因此在类似于此的情况加密命令缓冲器是合适的,其中宏功能块在视频存储器,而移动向量和其他命令发送到此命令流。
对加密的纹理数据的最基本约束也适用于加密的命令缓冲数据,但有一警告,彩色缓冲器的加密对保护所讨论的内容没有足够的保护。如Z缓冲器那样的中间缓冲器也能被加密以保护系统免受明文的攻击。已说明,3D演示命令810在到视频解码器430c的途中被加密。纹理数据400a由解密组件450解密并按命令810由视频解码器430c处理。随后,在彩色缓冲器810的数据由加密/解密组件830加密。
在命令缓冲器被用完之前或之后能作窜改检测,在命令缓冲器被完用后使用两次通过。在一个实施例中,在内容显示或演示之后能作窜改检测。
另一些实施例——图形卡输出的加密
在每个上述实施例中,虽然机密性和完整性已被证明,并对于图2中的虚线部分作了叙述,对于视频输出机密性和完整性尚未被证明,即理论上,在图形卡和演示设备(如监视器)之间的接口和/或演示设备本身能遭受攻击。
因此,在上述实施例中,如图9所示在过程的某点(即使内容在视频存储器中受保护)和在图形卡处理过程中,数据明文送到DVI/DAC290。结果,数据能在到演示设备的途中以及在演示设备中被盗版或更改。
因此,按照另选的实施例,它能可选地与这里叙述的其他实施例组合,在演示设备提供一姐妹加密处理器220b,以补充由加密处理器220a完成的功能。在这方面,通讯上与加密处理器220a连接的加密组件910a将数据在传到DVI/DAC组件290之前进行加密,而通讯上与加密处理器220b连接的解密组件910b解码作为显示或演示的部分发生的数据,防止数据被盗版。加密组件910可选地与DVI/DAC组件290包括在一起。简言之,应用软件同样的加密和解密及密钥管理技术,内容能通过整个图形流水线被保护,用于用密码保护内容的安全传输及处理。
如上所述,虽然结合各种计算设备、硬件、软件和网络体系结构叙述了本发明的示例性实施例,基本的概念可应用软件于任何希望保护从可信源来的内容的计算设备或系统。因此,结合按照本发明的可信图形系统的使用,认证组件的技术能应用软件于各种应用软件场合及设备。例如,结合本发明的可信图形系统的使用认证组件的方法的各部分能应用软件到计算设备的操作系统,作为设备的分开的对象,作为另外对象的部分,作为从服务器的下载对象,作为分布式对象等来提供。虽然这里选择示例性编程语言、伪码、名称和例子作为各种选择的代表,语言、伪码、名称和例子不受限制。
这里叙述的各种技术能根据情况结合硬件或软件或两者的组合实现。因此,本发明的方法及装置或某些方面或其部分能采取包容在如软盘、CD-ROM、硬盘或其他机器可读存储媒体那样的实质性媒体中的程序码(即指令)的形式,其中每当该程序编码被加载到如计算机那样的机器,并由它执行,该计算机就变成实施本发明的装量。在程序码在可编程计算机上执行的情况,计算设备通常包括处理器,由该处理器可执行的存储媒体(包括易失和非易失存储器和/或存储单元)、至少一个输入设备和至少一个输出设备。如通过使用数据处理API、操作系统、可信的应用软件等一个或多个利用本发明的技术的程序,最好以高级的过程语言或面向对象的编程语言实现以便与计算机系统通讯。然而,若希望,程序能以汇编或机器语言实现。在任何情况,语言能是被翻译或被解释的语言,且在本发明的各种实施例中对GPU265的硬件实现施加了条件。
本发明的方法和装置可以经以程序码的形式体现的通讯来实践,程序码经某些传输媒体发送,如经电线或电缆,穿过光纤或经其他发送形式发送,其中当程序码被如EPROM、门阵列、可编程逻辑设备(PLD)等那样的机器接收、加载和执行时,客户计算机、视频记录仪等或具有图形卡和上述在示例性实施例中描述的加密能力的接收机器成为实施本发明的装置。当在通用处理器上实现时,程序码结合处理器,提供工作上调用本发明功能的独特装置。此外,结合本发明使用的任何存储技术可以不变地是硬件和软件的结合。
虽然本发明已结合各种图的较佳实施例加以描述,可以理解,可使用其他类型的实施例,或对描述的实施例能作出修改及增加,而没有偏离地完成本发明的同样的功能。例如,虽然本发明的示例性网络环境在如对等的连网环境那样的情况下描述,本专业熟练者认识到,本发明不限于此,而且在本应用软件情况中描述的方法能应用软件到任意的计算设备或环境,如游戏操纵台、手持计算机、便携机等,而不管是有线或无线连网,该方法能应用软件到任何数量经通讯网络连接,并经过网络互动的计算设备。此外应该强调,尤其在无线连网设备的数目继续激增时,可以期待有各种计算机平台,包括手持设备操作系统和其他针对应用软件的操作系统。再则,本发明可以在多个协处理芯片或设备中通过这些设备实现,如具有多个GPU的设备,而且这里实现的存储可类似地在多个设备间实现。此外,实现本发明的认证技术的应用软件或设备甚至不需要在具有被认证的图形平台的同一计算设备中。此外,按本发明的图形卡能是可拆卸的卡,如加速图形端口(AGP)卡,或“集成卡”,即植入芯片组的卡。因此,本发明不应限于任何单个实施例,但在宽度和范围上应按照附后的权利要求来解释。
附录A:流密码与块密码
此附录详述了流密码和块密码之间有关本文件的内容的差别。
    问题     流密码     块密码
    粒度     字节   16字节(128位)
  随机访问   困难/不可能     简单
  密钥变化   频繁(每帧)     不频繁
  复杂度      1X    4X流密码
  IP状态     专用     公用
作为规则,流密码比块密码更快更简单地实现。
如名称的含义那样,流密码加密和解密字节流。为解密在流中第N个字节,密码在起点开始,依次前进一个字节,达到所希望的流中偏移。
相反,以电子码本方式运行的块密码能加密或解密数据中任意的块,但必须一次加密/解密完整的块。典型的块大小是16个字节。
流密码的使用方式使得同一数据永不加密码两次,即用于加密和解密的密钥必须频繁改变。例如在用于收费电视回放时,每帧一次地改变密钥是足够了。
最后注意,有质量好的块密码,可公用。

Claims (71)

1.一种结合使用具有图形卡的可信的图形平台提供认证的方法,包括:
由图形卡的应用软件或设备之一请求验证该图形卡是安全的图形卡;
响应所述的请求,由通讯上安全地与图形卡连接的加密处理器产生一个会话密钥;和
发送所述的会话密钥达到应用软件和设备之一。
2.根据权利要求1的方法,其特征在于还包括:
对与图形卡资源请求有关的图形卡揭示所述会话密钥。
3.根据权利要求1的方法,其特征在于每个加密处理器是个体化的,并在制造期间认证。
4.根据权利要求1的方法,其特征在于每个加密处理器包括一个独特的专用解密密码。
5.根据权利要求1的方法,其特征在于该加密处理器通过下列方法之一永久地附着到图形卡:(1)将加密处理器加到现有的芯片中,和(2)将加密处理器作为分开的芯片加到图形卡;
由此,在加密处理器和图形卡的其余部分之间的物理连接是不可访问和不显露的。
6.如权利要求1的方法,其特征在于加密处理器包括(1)用于会话密钥的多位易失寄存器S和(2)多个索引密钥的数组。
7.根据权利要求6的方法,其特征在于会话密钥的寿命是应用软件和设备之一的运行时间,而多个密钥的每个密钥的寿命由从应用软件和设备之一来的指令操纵。
8.根据权利要求6的方法,其特征在于所述多个索引密钥的每个(1)与包括所述应用软件和设备之一的主机系统的指定窗口关联,并且(2)由图形卡使用来解密该窗口的内容。
9.根据权利要求1的方法,其特征在于所述请求包括经下列之一与加密处理器接口:(1)到所述应用软件和设备之一的外部接口,和(2)到图形卡的图形处理单元(GPU)的内部接口。
10.根据权利要求9的方法,其特征在于所述与外部接口的连接包括使用私有密钥协议于认证及密钥传输,所述认证及密钥传输包括:
由所述应用软件和设备之一用加密处理器的公开密钥加密会话密钥,以建立会话密钥加密团;
加密处理器接收该会话密钥加密团;
由加密处理器用该加密处理器的公开密钥解密该会话密钥加密团;
由此,所述应用软件和设备之一与加密处理器共享秘密,使所述应用软件和设备之一能使用所述的会话密钥发送指令到加密处理器。
11.根据权利要求10的方法,其特征在于由加密处理器通过一组函数显露外部接口,所述函数组包括:
Set Session Key函数,它调用所述接收,进行接收及解密,由此使用所述会话密钥保密所有进一步的加密处理器与所述应用软件和设备之一之间的来往通讯;
Set函数;
Get函数;
其中,所述应用软件和设备之一借助Set函数和Get函数与所述加密处理器通讯,为了机密性和完整性其参数受密码的保护。
12.根据权利要求11的方法,其特征在于所述Get函数至少包括下列之一:(1)索引密钥特性ID方法,它将新密钥和目的标签写入由该索引识别的密钥寄存器,(2)输出锁定特性ID方法,它设置固定屏幕几何结构及图形卡输出的锁定标志,和(3)L2KeyMgmt特性ID方法,它对于由包括所述安全的图形卡和加密处理器的可信图形平台提供的视频存储器加密保护的层,设置密钥更新频率。
13.根据权利要求11的方法,其特征在于所述Set函数至少包括下列之一:(1)输出端口方法,它返回图形卡的至少一个输出的设置,(2)认证码方法,它返回按照包括所述安全的图形卡及加密处理器的可信图形平台的第一保护层返回窗口的内容的散列,(3)DX-SEC版本方法,它返回由图形卡支持的DX-SEC的版本,(4)安全表面计数法,它返回由图形卡支持的安全表面的数目,(5)覆盖表面计数法,它返回由图形卡支持的覆盖的安全表面的数目,(6)基本类型法它对图形卡的未来方法提供灵活性,(7)几何结构方法,它返回可信图形平台的视频存储器的基本表面的宽,高,刷新速度和彩色深度,(8)设置受保护的覆盖的一个区域的至少一个位置和尺寸的方法,和(9)设置要解密的基本表面的一部分的至少一个位置和尺寸的方法。
14.根据权利要求9的方法,其特征在于与内部接口的所述连接包括在加密处理器和所述图形卡之间的连接,由此,在不破坏图形卡的情况下(1)加密处理器永久地固定在图形卡上,并且(2)在加密处理器和图形卡的其余部分之间的连接不显露。
15.根据权利要求14的方法,其特征在于(1)加密处理器被焊在图形卡上,或(2)加密处理器驻留在GPU的同一芯片上。
16.根据权利要求6的方法,其特征在于所述多个索引密钥的每个索引密钥按照与所述索引密钥关联的目的参数只使用一次,其中当索引密钥被新的值填入后,以前密钥的值被舍弃,不可检索。
17.根据权利要求16的方法,其特征在于目的参数值包括:
与结合覆盖表面的加密采用的DX-SEC流密码一起使用的L1STREAM密钥;和
与用于解密纹理块的块密码一起使用的L2BLOCK密钥;它由所述应用软件和设备之一写出。
18.一种已调数据信号,其特征在于,载送用于完成权利要求1的方法的计算机可执行指令。
19.一种计算机设备,其特征在于,包括用于完成权利要求1的方法的装置。
20.一种计算机设备,其特征在于,包括:
应用软件和设备之一,和
具有至少一个GPU和一个与所述至少一个GPU通讯上安全地连接的加密处理器的图形卡;
其中所述应用软件和设备之一请求图形卡验证图形卡是否安全图形卡,并随后响应所述请求,加密处理器产生会话密钥并将所述会话密钥发送到该应用软件和设备之一。
21.根据权利要求20的计算设备,其特征在于所述会话密钥对与图形卡资源请求有关的图形卡揭示所述会话密钥。
22.根据权利要求20的计算设备,其特征在于每个加密处理器是个体化的,并在制造期间被认证。
23.如权利要求20的计算设备,其特征在于每个加密处理器包括一个独特的专用解密密钥。
24.根据权利要求20的计算设备,其特征在于加密处理器用下列方法之一永久地附着到图形卡:(1)将加密处理器加到现有芯片,和(2)将加密处理器作为分开的芯片加到图形卡;
由此,在加密处理器和图形卡的其余部分的物理连接是不可访问且不暴露的。
25.根据权利要求20的计算设备,其特征在于该加密处理器包括(1)用于会话密钥的多位易失寄存器S和(2)多个索引密钥的数组。
26.根据权利要求25的计算设备,其特征在于会话密钥的寿命是应用软件和设备之一的运行时间,而多个密钥的每个密钥的寿命由从应用软件和设备之一的指令操纵。
27.如权利要求25的计算设备,其特征在于所述多个索引密钥的每一个(1)与包括所述应用软件和设备之一的主机系统的特定窗口关联,并且(2)由图形卡用于解密该窗口的内容。
28.如权利要求20的计算设备,其特征在于所述应用软件和设备之一通过下列途径之一与加密处理器接口:(1)到所述应用软件和设备之一的外部接口,和(2)到图形卡上图形处理器(GPU)的内部接口。
29.如权利要求28的计算设备,其特征在于所述应用软件和设备之一使用用于认证和密钥传输的私有密钥加密协议与外部接口连接,所述认证和密钥传输包括:
由所述应用软件和设备之一用加密处理器的公开密钥加密会话密钥以建立会话密钥团;
由加密处理器接收会话密钥加密团;和
由加密处理器用加密处理器的私有密钥解密该会话密钥加密团,从而获得会话密钥;
由此,所述应用软件和设备之一和加密处理器共享秘密,使所述应用软件和设备之一能使用所述会话密钥发送指令到该加密处理器。
30.根据权利要求29的计算设备,其特征在于通过一组函数由加密处理器暴露外部接口,所述函数组包括
Set Session Key函数,它调用所述接收,进行接收及解密,由此,使用所述会话密钥保密所有进一步的加密处理器与所述应用软件和设备之一之间的来往通讯;
Set函数;
Get函数;
其中,所述应用软件和设备之一借助Set函数和Get函数与所述加密处理器通讯,为了机密性和完整性其参数受密码的保护。
31.根据权利要求30的计算设备,其特征在于所述Get函数至少包括下列之一:(1)索引密钥特性ID方法,它将新密钥和目的标签写入由该索引识别的密钥寄存器,(2)输出锁定特征ID方法,它设置固定屏幕几何结构及图形卡输出的锁定标志,和(2)L2KeyMgmt特性ID方法,它对于由包括所述安全图形卡和加密处理器的可信图形平台提供的视频存储器加密保护的层设置密钥更新频率。
32.如权利要求30的计算设备,其特征在于所述Set函数至少包括下列之一:(1)输出端口方法,它返回图形卡的至少一个输出的设置,(2)认证码方法,它返回按照包括所述安全图形卡及加密处理器的可信的图形平台的第一层保护返回窗口内容的散列,(2)DX-SEC版本方法,它返回由图形卡支持的DX-SEC的版本,(3)安全表面计数法,它返回由图形卡支持的安全表面的数目,(4)覆盖表面计数法,它返回由图形卡支持的覆盖的安全表面的数目,(5)基本类型法,它对图形卡的未来方法提供灵活性,(6)几何结构方法,它返回可信图形平台的视频存储器的基本表面的宽、高、刷新速度和彩色深度,(7)设置受保护的覆盖的一个区域的至少一个位置和尺寸的方法,和(8)设置要解密的基本表面的一部分的至少一个位置和尺寸的方法。
33.根据权利要求28的计算设备,其特征在于所述与内部接口的连接包括在加密处理器和所述图形卡之间的连接,由此,在不破坏图形卡的情况下,(1)加密处理器永久地固定在图形卡上并且(2)在加密处理器和图形卡的其余部分之间的连接不暴露。
34.根据权利要求33的计算设备,其特征在于(1)加密处理器被焊在图形卡上,或(2)加密处理器驻留在GPU的同一芯片上。
35.根据权利要求25的计算设备,其特征在于所述多个索引密钥的每个索引密钥按照与所述索引密钥关联的目的参数只使用一次,其中当索引密钥被新的值填入后,以前密钥的值被舍弃,不可检索。
36.如权利要求35的计算设备,其特征在于目的参数值包括
与结合覆盖表面加密采用的DX-SEC流密码一起使用的L1STREAM密钥,和
与用于解密纹理块的块密码一起使用的L2BLOCK密钥;后一密钥由所述应用软件和设备之一写出。
37.一种结合使用具有图形卡的可信图形平台提供认证的方法,包括:
由图形卡的应用软件或设备之一请求验证该图形卡是否是安全的图形卡;
响应所述请求,经过在可信图形平台中建立用于密钥传输的安全通讯机制发送会话密钥到应用软件和设备之一;
由此,该应用软件和设备之一事先知道由安全图形卡对同一地址空间的写入被映射到图形卡的密钥存储器。
38.根据权利要求37的方法,其特征在于安全通讯机制是低带宽连接。
39.一种结合使用具有图形卡的可信图形平台提供认证的方法,包括:
由应用软件和设备之一通过经保护的路径向可信图形平台发送块加密数据请求验证该图形卡是否是安全的图形卡;
响应所述请求,使用密码处理设备解密该块加密数据,从而验证该图形卡是安全图形卡;
通知所述应用软件和设备之一,该图形卡是安全的图形卡。
40.一种计算机可读媒体,该媒体的至少一个存储多个计算机可执行指令,其特征在于,所述多个计算机可执行指令包括:
由图形卡的应用软件和设备之一请求验证该图形卡是安全图形卡的手段;
响应所述请求手段,由通讯上安全地连接该图形卡的加密处理器产生会话密钥的手段;
发送所述会话密钥到该应用软件和设备之一的手段。
41.根据权利要求40的至少一个计算机可读媒体,其特征在于还包括:
对与图形卡资源请求有关的图形卡揭示所述会话密钥的手段。
42.根据权利要求40的至少一个计算机可读媒体,其特征在于每个加密处理器包括一个独特的专用解密密钥,并且个体化,在制造期间被认证。
43.根据权利要求40的至少一个计算机可读媒体,其特征在于该加密处理器通过下的方法之一附着到图形卡:(1)将加密处理器加到现有的芯片,和(2)将加密处理器作为分开的芯片加到图形卡;
由此,在加密处理器和图形卡的其余部分之间的物理连接是不可访问和不暴露的。
44.根据权利要求40的至少一个计算机可读媒体,其特征在于该加密处理器包括(1)用于会话密钥的多位易失寄存器S和(2)多个索引密钥的数组。
45.根据权利要求44的至少一个计算机可读媒体,其特征在于该会话密钥的寿命是应用软件和设备之一的运行时间,而多个密钥多个密钥的每个密钥的寿命由从应用软件和设备之一来的指令操纵。
46.根据权利要求44的至少一个计算机可读媒体,其特征在于所述多个索引密钥的每个(1)与包括所述应用软件和设备之一的主机系统的指定窗口关联,并且(2)由图形卡用于解密该窗口的内容。
47.根据权利要求40的至少一个计算机可读媒体,其特征在于所述请求手段包括经下列之一与加密处理器接口的手段:(1)到所述应用软件和设备之一的外部接口,和(2)到图形卡的图形处理单元(GPU)的内部接口。
48.根据权利要求47的至少一个计算机可读媒体,其特征在于所述与外部接口连接的手段包括使用私有密钥协议于认证及密钥传输,所述认证及密钥传输包括:
由所述应用软件和设备之一用加密处理器的公开密钥加密会话密钥,以建立会话密钥加密团的手段;
由加密处理器接收该会话密钥加密团的手段;
由加密处理器用该加密处理器的公开密钥解密该会话密钥加密团的手段;
由此,所述应用软件和设备之一与加密处理器共享秘密,使所述应用软件和设备之一能使用所述会话密钥发送指令到加密处理器。
49.根据权利要求48的至少一个计算机可读媒体,其特征在于由加密处理器通过一组函数显露外部接口,所述函数组包括:
Set Session Key函数,它调用所述接收,进行接收及解密,由此,使用所述会话密钥保密所有进一步的加密处理器与所述应用软件和设备之一之间的来往通讯;
Set函数;
Get函数;
其中,所述应用软件和设备之一借助Set函数和Get函数与所述加密处理器通讯,为了机密性和完整性其参数受密码的保护。
50.根据权利要求49的至少一个计算机可读媒体,其特征在于所述Get函数至少包括下列之一:(1)索引密钥特性ID方法,它将新密钥和目的标签写入由该索引识别的密钥寄存器,(2)输出锁定特性ID方法,它设置固定屏幕几何结构及图形卡输出的锁定标志,和(2)L2KeyMgmt特性ID方法,它对于由包括所述安全图形卡和加密处理器的可信图形平台提供的视频存储器加密保护的层设置密钥更新频率。
51.根据权利要求49的至少一个计算机可读媒体,其特征在于所述Set函数至少包括下列之一:(1)输出端口方法,它返回图形卡的至少一个输出的设置,(2)认证码方法,它返回按照包括所述安全的图形卡及加密处理器的可信图形平台的第一层保护返回窗口内容的散列,(2)DX-SEC版本方法,它返回由图形卡支持的DX-SEC的版本,(3)安全表面计数法,它返回由图形卡支持的安全表面的数目,(4)覆盖表面计数法,它返回由图形卡支持的覆盖的安全表面的数目,(5)基本类型法,它对图形卡的未来方法提供灵活性,(6)几何结构方法,它返回可信图形平台的视频存储器的基本表面的宽,高,刷新速度和彩色深度,(7)设置受保护的覆盖的一个区域的至少一个位置和尺寸的方法,和(8)设置要解密的基本表面的一部分的至少一个位置和尺寸的方法。
52.根据权利要求47的至少一个计算机可读媒体,其特征在于所述与内部接口的连接包括在加密处理器和所述图形卡之间的连接,由此,在不破坏图形卡的情况下,(1)加密处理器永久地固定在图形卡上并且(2)在加密处理器和图形卡的其余部分之间的连接不显露。
53.如权利要求52的至少一个计算机可读媒体,其特征在于(1)加密处理器被焊在图形卡上,或(2)加密处理器驻留在GPU的同一芯片上。
54.根据权利要求44的至少一个计算机可读媒体,其特征在于所述多个索引密钥的每个索引密钥按照与所述索引密钥相关的目的参数只使用一次,其中当索引密钥被新的值填入后,以前密钥的值被舍弃,不可检索。
55.根据权利要求54的至少一个计算机可读媒体,其特征在于目的参数值包括:
与结合覆盖表面的加密采用的DX-SEC流密码一起使用的L1STREAM密钥,和
与用于解密纹理块的块密码一起使用的L2BLOCK密钥;后一密钥由所述应用软件和设备之一写出。
56.一种计算机设备的操作系统,其特征在于,包括:
由图形卡的应用软件或设备之一请求验证该图形卡是否是安全图形卡的手段;
响应所述请求手段的请求,由通讯上安全地与图形卡连接的加密处理器产生一个会话密钥的手段;
发送所述会话密钥到应用软件和设备之一的手段。
57.根据权利要求56的操作系统,其特征在于还包括:对与图形卡资源请求有关的图形卡揭示所述会话密钥的手段。
58.根据权利要求56的操作系统,其特征在于每个加密处理器包括一个独特的专用解密密钥,并且个体化,在制造期间被认证。
59.根据权利要求56的操作系统,其特征在于加密处理器通过下列方法之一永久地附着到图形卡:(1)将加密处理器加到现有的芯片,和(2)将加密处理器作为分别的芯片加到图形卡;
由此,在加密处理器和图形卡的其余部分之间的物理连接是不可访问和不显露的。
60.根据权利要求56的操作系统,其特征在于加密处理器包括(1)用于会话密钥的多位易失寄存器S和(2)多个索引密钥的数组。
61.根据权利要求60的操作系统,其特征在于会话密钥的寿命是应用软件和设备之一的运行时间,而多个密钥多个密钥的每个密钥的寿命由从应用软件和设备之一来的指令操纵。
62.根据权利要求60的操作系统,其特征在于所述多个索引密钥的每个(1)与包括所述应用软件和设备之一的主机系统的指定窗口有关,并且(2)由图形卡使用来解密该窗口的内容。
63.根据权利要求56的操作系统,其特征在于所述请求手段包括经下列之一与加密处理器接口的手段,(1)到所述应用软件和设备之一的外部接口,和(2)到图形卡的图形处理单元(GPU)的内部接口。
64.根据权利要求63的操作系统,其特征在于与外部接口连接的所述手段包括使用私有密钥协议于认证及密钥传输,所述认证及密钥传输包括:
由所述应用软件和设备之一用加密处理器的公开密钥加密会话密钥,以建立会话密钥加密团的手段;
由加密处理器接收该会话密钥加密团的手段;
由加密处理器用该加密处理器的公开密钥解密该会话密钥加密团的手段;
由此,所述应用软件和设备之一与加密处理器共享秘密,使所述应用软件和设备之一能使用所述会话密钥发送指令到加密处理器。
65.根据权利要求64的操作系统,其特征在于由加密处理器通过一组函数显露外部接口,所述的函数组包括:
Set Session Key函数,它调用所述接收,进行接收及解密,由此,使用所述会话密钥保密进一步的加密处理器与所述应用软件和设备之一之间的来往通讯;
Set函数;
Get函数;
其中,所述应用软件和设备之一借助Set和Get函数与所述加密处理器通讯,为了机密性和完整性其参数受密码的保护。
66.如权利要求65的操作系统,其特征在于所述Get函数至少包括下列之一:(1)索引密钥特性ID方法,它将新密钥和目的标签写入由该索引识别的密钥寄存器,(2)输出锁定特性ID方法,它设置固定屏幕几何结构及图形卡输出的锁定标志,和(2)L2KeyMgmt特性ID方法,它对于由包括所述安全图形卡和加密处理器的可信图形平台提供的视频存储器加密保护的层设置密钥更新频率。
67.根据权利要求65的操作系统,其特征在于所述Set函数至少包括下列之一:(1)输出端口方法,它返回图形卡的至少一个输出的设置,(2)认证码方法,它返回按照包括所述安全图形卡及加密处理器的可信图形平台的第一层保护返回窗口内容的散列,(2)DX-SEC版本方法,它返回由图形卡支持的DX-SEC的版本,(3)安全表面计数法,它返回由图形卡支持的安全表面的数目,(4)覆盖表面计数法,它返回由图形卡支持的覆盖的安全表面的数目,(5)基本类型法,它对图形卡的未来方法提供灵活性,(6)几何结构方法,它返回可信图形平台的视频存储器的基本表面的宽,高,刷新速度和彩色深度,(7)设置受保护的覆盖的一个区域的至少一个位置和尺寸的方法,和(8)设置要解密的基本表面的一部分的至少一个位置和尺寸的方法。
68.根据权利要求63的操作系统,其特征在于所述与内部接口的连接包括在加密处理器和所述图形卡之间的连接,由此,在不破坏图形卡的情况下,(1)加密处理器永久地固定在图形卡上,并且(2)在加密处理器和图形卡的其余部分之间的连接不显露。
69.根据权利要求68的操作系统,其特征在于(1)加密处理器被焊在图形卡上,或(2)加密处理器驻留在GPU的同一芯片上。
70.根据权利要求60的操作系统,其特征在于所述多个索引密钥的每个索引密钥按照与所述索引密钥相关的目的参数只使用一次,其中当索引密钥被新的值填入后,以前密钥的值被舍弃,不可检索。
71.根据权利要求70的操作系统,其特征在于目的参数值包括:
与结合覆盖表面的加密采用的DX-SEC流密码一起使用的L1STREAM密钥;和
与用于解密纹理块的块密码一起使用的L2BLOCK密钥;后一密钥由所述应用软件和设备之一写出。
CNA031231829A 2002-04-18 2003-04-18 图形系统中认证组件的方法和系统 Pending CN1474281A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/125,170 2002-04-18
US10/125,170 US7380130B2 (en) 2001-12-04 2002-04-18 Methods and systems for authentication of components in a graphics system

Publications (1)

Publication Number Publication Date
CN1474281A true CN1474281A (zh) 2004-02-11

Family

ID=22418498

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA031231829A Pending CN1474281A (zh) 2002-04-18 2003-04-18 图形系统中认证组件的方法和系统

Country Status (15)

Country Link
US (1) US7380130B2 (zh)
EP (1) EP1355218A3 (zh)
JP (1) JP4807925B2 (zh)
KR (1) KR101030354B1 (zh)
CN (1) CN1474281A (zh)
AU (1) AU2003203718B2 (zh)
BR (1) BR0300935A (zh)
CA (1) CA2425478A1 (zh)
MX (1) MXPA03003317A (zh)
MY (1) MY144077A (zh)
NO (1) NO327641B1 (zh)
PL (1) PL359753A1 (zh)
RU (1) RU2310227C2 (zh)
TW (1) TWI265418B (zh)
ZA (1) ZA200302657B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101129014B (zh) * 2005-04-04 2011-11-16 思科技术公司 用于建立多个会话的系统和方法
CN106789985A (zh) * 2016-12-08 2017-05-31 武汉斗鱼网络科技有限公司 基于gpu算法的客户端验证方法及系统

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849301B2 (en) * 2001-12-12 2010-12-07 Intel Corporation Providing a user input interface prior to initiation of an operating system
US6908032B1 (en) * 2002-01-22 2005-06-21 Diebold, Incorporated Automated teller machine, software and distribution method
US6779717B1 (en) * 2002-01-22 2004-08-24 Diebold Self-Service Systems A Division Of Diebold, Incorporated Automated teller machine, software and distribution method
US6854645B1 (en) 2002-01-22 2005-02-15 Diebold, Incorporated Automated teller machine, software and distribution method
US7474312B1 (en) * 2002-11-25 2009-01-06 Nvidia Corporation Memory redirect primitive for a secure graphics processing unit
US8141159B2 (en) * 2002-12-31 2012-03-20 Portauthority Technologies Inc. Method and system for protecting confidential information
US8749561B1 (en) 2003-03-14 2014-06-10 Nvidia Corporation Method and system for coordinated data execution using a primary graphics processor and a secondary graphics processor
JP2006279644A (ja) * 2005-03-30 2006-10-12 Fujitsu Ltd 暗号化システム、暗号化装置、復号化装置、暗号化・復号化方法、暗号化方法および復号化方法
JP4116024B2 (ja) * 2005-07-29 2008-07-09 株式会社ソニー・コンピュータエンタテインメント ペリフェラルの使用管理方法、電子システム及びその構成装置
US20070189520A1 (en) * 2006-01-10 2007-08-16 Utbk, Inc. Systems and Methods to Facilitate Transition from Communication to Commerce
US8775704B2 (en) 2006-04-05 2014-07-08 Nvidia Corporation Method and system for communication between a secondary processor and an auxiliary display subsystem of a notebook
US8261064B2 (en) * 2007-02-27 2012-09-04 L-3 Communications Corporation Integrated secure and non-secure display for a handheld communications device
US8019151B2 (en) * 2007-06-11 2011-09-13 Visualization Sciences Group, Inc. Methods and apparatus for image compression and decompression using graphics processing unit (GPU)
US8564598B2 (en) * 2007-08-15 2013-10-22 Nvidia Corporation Parallelogram unified primitive description for rasterization
US7929707B1 (en) * 2007-09-06 2011-04-19 Elcomsoft Co. Ltd. Use of graphics processors as parallel math co-processors for password recovery
US20090067629A1 (en) * 2007-09-06 2009-03-12 Paltronics, Inc. Table-based encryption/decryption techniques for gaming networks, and gaming networks incorporating the same
IL187043A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Secure pipeline manager
US20090172331A1 (en) * 2007-12-31 2009-07-02 Balaji Vembu Securing content for playback
US8646052B2 (en) * 2008-03-31 2014-02-04 Intel Corporation Method and apparatus for providing a secure display window inside the primary display
US20090319933A1 (en) * 2008-06-21 2009-12-24 Microsoft Corporation Transacted double buffering for graphical user interface rendering
US8736617B2 (en) * 2008-08-04 2014-05-27 Nvidia Corporation Hybrid graphic display
US20100186095A1 (en) * 2009-01-20 2010-07-22 Microsoft Corporation Method and system for gap based anti-piracy
US9075559B2 (en) * 2009-02-27 2015-07-07 Nvidia Corporation Multiple graphics processing unit system and method
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
US9135675B2 (en) * 2009-06-15 2015-09-15 Nvidia Corporation Multiple graphics processing unit display synchronization system and method
US8766989B2 (en) * 2009-07-29 2014-07-01 Nvidia Corporation Method and system for dynamically adding and removing display modes coordinated across multiple graphics processing units
US8780122B2 (en) * 2009-09-16 2014-07-15 Nvidia Corporation Techniques for transferring graphics data from system memory to a discrete GPU
US9111325B2 (en) * 2009-12-31 2015-08-18 Nvidia Corporation Shared buffer techniques for heterogeneous hybrid graphics
US20110169844A1 (en) * 2009-09-16 2011-07-14 Nvidia Corporation Content Protection Techniques on Heterogeneous Graphics Processing Units
US20110161675A1 (en) * 2009-12-30 2011-06-30 Nvidia Corporation System and method for gpu based encrypted storage access
CN102695023A (zh) * 2011-03-23 2012-09-26 宏碁股份有限公司 视频信号处理系统与方法
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
US20130166922A1 (en) * 2011-12-23 2013-06-27 Ati Technologies Ulc Method and system for frame buffer protection
CN104169940B (zh) * 2011-12-29 2017-09-12 英特尔公司 将公司数字信息限制在公司界限内的方法
CN103327485A (zh) * 2012-03-23 2013-09-25 辉达公司 无线传输内容的方法及系统
US8910307B2 (en) 2012-05-10 2014-12-09 Qualcomm Incorporated Hardware enforced output security settings
US20140012704A1 (en) 2012-07-05 2014-01-09 Google Inc. Selecting a preferred payment instrument based on a merchant category
US9092767B1 (en) 2013-03-04 2015-07-28 Google Inc. Selecting a preferred payment instrument
CN105378679A (zh) * 2013-03-28 2016-03-02 爱迪德技术有限公司 用于媒体路径安全的方法和系统
US9818379B2 (en) 2013-08-08 2017-11-14 Nvidia Corporation Pixel data transmission over multiple pixel interfaces
US9858572B2 (en) 2014-02-06 2018-01-02 Google Llc Dynamic alteration of track data
US9729320B2 (en) * 2014-02-25 2017-08-08 Cavium, Inc. Apparatus and method for software enabled access to protected hardware resources
US9426130B2 (en) 2014-07-21 2016-08-23 Xiaomi Inc. Methods, devices and systems for anti-counterfeiting authentication
CN104158659B (zh) * 2014-07-21 2015-11-11 小米科技有限责任公司 防伪验证方法、装置和系统
US9558373B2 (en) * 2014-12-08 2017-01-31 Nxp Usa, Inc. 3D graphics system using encrypted texture tiles
FR3038420B1 (fr) * 2015-06-30 2017-08-25 Oberthur Technologies Dispositif et procede de traitement cryptographique de donnees
CN105187922A (zh) * 2015-07-27 2015-12-23 天脉聚源(北京)科技有限公司 一种更新互动信息的方法及装置
TWI572219B (zh) * 2015-11-09 2017-02-21 Chaoyang Univ Of Tech Wireless control device with safety encryption protection
US10511578B2 (en) * 2016-03-04 2019-12-17 Intel Corporation Technologies for secure content display with panel self-refresh
RU2634179C1 (ru) 2016-12-12 2017-10-24 Акционерное общество "Лаборатория Касперского" Способ и система для доверенного доведения информации до пользователя
TWI648979B (zh) * 2017-08-02 2019-01-21 中華電信股份有限公司 Authentication method and system thereof
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

Family Cites Families (26)

* 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
US5596718A (en) * 1992-07-10 1997-01-21 Secure Computing Corporation Secure computer network using trusted path subsystem which encrypts/decrypts and communicates with user through local workstation user I/O devices without utilizing workstation processor
US5559889A (en) * 1995-03-31 1996-09-24 International Business Machines Corporation System and methods for data encryption using public key cryptography
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
US6289451B1 (en) * 1997-04-18 2001-09-11 Sun Microsystems, Inc. System and method for efficiently implementing an authenticated communications channel that facilitates tamper detection
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 ソニー株式会社 データ伝送制御方法、データ伝送システム、データ受信装置及びデータ送信装置
JP3380194B2 (ja) 1998-10-16 2003-02-24 松下電器産業株式会社 デジタル著作物保護システム
US6138239A (en) * 1998-11-13 2000-10-24 N★Able Technologies, Inc. Method and system for authenticating and utilizing secure resources in a computer system
US6289459B1 (en) * 1999-01-20 2001-09-11 Intel Corporation Processor unique processor number feature with a user controllable disable capability
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
US6289455B1 (en) * 1999-09-02 2001-09-11 Crypotography Research, Inc. Method and apparatus for preventing piracy of digital content
GB9922665D0 (en) * 1999-09-25 1999-11-24 Hewlett Packard Co A method of enforcing trusted functionality in a full function platform
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
US7007304B1 (en) * 2000-09-20 2006-02-28 Intel Corporation Method and apparatus to improve the protection of information presented by a computer
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
US20020150248A1 (en) * 2001-03-06 2002-10-17 Kovacevic Branko D. System for digital stream reception via memory buffer and method thereof
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
GB2377137B (en) * 2001-06-27 2004-10-20 Hewlett Packard Co Network appliances
GB2382419B (en) * 2001-11-22 2005-12-14 Hewlett Packard Co Apparatus and method for creating a trusted environment
US7216369B2 (en) * 2002-06-28 2007-05-08 Intel Corporation Trusted platform apparatus, system, and method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101129014B (zh) * 2005-04-04 2011-11-16 思科技术公司 用于建立多个会话的系统和方法
CN106789985A (zh) * 2016-12-08 2017-05-31 武汉斗鱼网络科技有限公司 基于gpu算法的客户端验证方法及系统
CN106789985B (zh) * 2016-12-08 2019-11-12 武汉斗鱼网络科技有限公司 基于gpu算法的客户端验证方法及系统

Also Published As

Publication number Publication date
KR101030354B1 (ko) 2011-04-20
TW200404212A (en) 2004-03-16
KR20030082930A (ko) 2003-10-23
RU2310227C2 (ru) 2007-11-10
AU2003203718B2 (en) 2010-01-28
NO327641B1 (no) 2009-09-07
NO20031581L (no) 2003-10-20
BR0300935A (pt) 2004-08-17
US7380130B2 (en) 2008-05-27
AU2003203718A1 (en) 2003-11-06
US20030200435A1 (en) 2003-10-23
TWI265418B (en) 2006-11-01
JP4807925B2 (ja) 2011-11-02
PL359753A1 (en) 2003-10-20
MY144077A (en) 2011-08-15
ZA200302657B (en) 2003-10-14
MXPA03003317A (es) 2004-10-29
EP1355218A3 (en) 2005-01-26
JP2004007603A (ja) 2004-01-08
EP1355218A2 (en) 2003-10-22
CA2425478A1 (en) 2003-10-18
NO20031581D0 (no) 2003-04-08

Similar Documents

Publication Publication Date Title
CN1474281A (zh) 图形系统中认证组件的方法和系统
CN1650268A (zh) 使用密码保护保密内容的方法和系统
CN100350395C (zh) 保护视频卡输出的系统和方法
TW583614B (en) Copyright protection system and method thereof
CN1934564A (zh) 使用证书撤销列表进行数字权限管理的方法和设备
CN1502186A (zh) 在计算机网络中有控制地分发应用程序代码和内容数据
CN1898624A (zh) 在使用授权证书时维护私密性
JPH08166879A (ja) 提供用ソフトウェアの安全性強化方法及び装置
CN1531253A (zh) 在drm结构中登记/子登记数字权利管理(drm)服务器
CN1605203A (zh) 用于加密数据访问控制的远程管理的互动协议
CN1258359A (zh) 给对象签名和签章的方法和设备
CN103237010B (zh) 以加密方式提供数字内容的服务器端
KR100447777B1 (ko) 키 스트록 데이터의 해킹 방지 방법 및 이를 기록한컴퓨터로 읽을 수 있는 기록매체
KR20140051483A (ko) 오브젝트 특성에 따라 적응적으로 화면 정보 데이터를 보호하는 방법 및 장치
JP2009187140A (ja) アクセス制御装置、アクセス制御方法およびプログラム
RU2308077C2 (ru) Способы и системы для криптографической защиты охраняемого содержимого
JP2009200989A (ja) データ入力支援のための配信側プログラム、入力側プログラム、配信側装置、入力側装置及びデータ入力支援システム
CN1209241A (zh) 对在一个程序和至少一个用户装置间计算机辅助数字通信加密保护的方法
JPH11289323A (ja) データ伝送システム
TWI474704B (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication