CN100350395C - 保护视频卡输出的系统和方法 - Google Patents

保护视频卡输出的系统和方法 Download PDF

Info

Publication number
CN100350395C
CN100350395C CNB031452574A CN03145257A CN100350395C CN 100350395 C CN100350395 C CN 100350395C CN B031452574 A CNB031452574 A CN B031452574A CN 03145257 A CN03145257 A CN 03145257A CN 100350395 C CN100350395 C CN 100350395C
Authority
CN
China
Prior art keywords
data
video card
safety zone
key
safety
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.)
Expired - Lifetime
Application number
CNB031452574A
Other languages
English (en)
Other versions
CN1470998A (zh
Inventor
G·F·埃文斯
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 CN1470998A publication Critical patent/CN1470998A/zh
Application granted granted Critical
Publication of CN100350395C publication Critical patent/CN100350395C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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/84Protecting input, output or interconnection devices output devices, e.g. displays or monitors
    • 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

Landscapes

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

Abstract

本发明所述各种方法和系统是为了向在主机上执行的软件提供安全信道。所述方法和系统用来提供侵袭模型的解决方案,在该侵袭模型中,在主机上执行的非法软件企图不正当的获取或操作数据。某些实施例可提供能保密的像素数据(即不可信任软件应用程序不能从显示屏上读出数据)。另外,其它的实施例可通过探测像素数据是否已被不正当操作,来保持像素数据的完整性。各种实施例是基于设在视频卡上视频处理链很后面的解密引擎,从而拒绝对已解密像素数据的程序访问。

Description

保护视频卡输出的系统和方法
技术领域
本发明涉及用视频卡处理数据的方法和系统。
背景技术
通常,驻留在计算机中的内容可能遭到希望窃取或修改其内容的个人的侵袭。举例来说,考虑内容作者的情况,如电影公司或在网络上发表内容的用户。通常,这些人会发表些对用户观看方式加以限制的视频内容。该内容通常可在诸如个人计算机之类的计算机上观看或演示。每年,某些肆无忌惮的个人和组织花费大量的时间、精力和金钱,试图窃取或不正当的获取这样的视频内容。另外,考虑到电子商务软件的情况,如其可使个人处理银行交易。在显示器上显示的用户回顾和操作数据可能遭到在用户计算机上执行的非法软件应用程序(rogue software applications)的侵袭。也就是,一旦在诸如个人计算机这样的计算机上接收到有关内容,非法程序或装置则往往试图不正当地的获取这些内容。
保证内容安全的一个解决方案可包括多种基于软件的数字权限管理(DRM)解决方案。这里的问题是无论基于软件的、抗篡改(tamper-resistant)的、“难以观测”,且进行软件表现的DRM系统有多好,最终,信息都会被写出到视频卡,从而可以看到甚至被其它的软件复制。这就表现出了其弱点。这样,处理视频内容的视频卡可能会成为软件侵袭的目标。
图1示出了包括插入到一般计算机端口总线连接器102的一种示例性视频(图形)卡100。视频卡100也包括容纳与监视器相连电缆的监视器连接器104(例如,15引脚的插头(plug))。视频卡100可包括能用来将视频图像发送到LCD、平板监视器(flat panel monitors)和类似装置的数字视频输出插座(socket)106。
现代视频卡包括四个主要的组件:图形处理器单元(GPU)108、视频存储器110、随机存取存储数模转化器(RAMDAC)112和可包括在视频BIOS 114中的驱动软件。
GPU 108是控制分辨率、颜色深度所有方面、以及与显示屏上呈现图像相关联所有元件素的专用图形处理芯片。计算机的中央处理单元或CPU(未显示)发送一组绘图指令和数据,这些指令和数据由图形卡的专用驱动器(proprietary driver)进行编译,并被该卡的GPU 108执行。GPU 108执行的操作包括位图传送和描绘、窗口大小调整和定位(repositioning)、绘制直线、字体的比例缩放以及绘制多边形等。GPU 108被设计为在硬件中处理这些任务,速度比在系统CPU中运行软件的速度要快得多。然后,GPU将帧数据(frame data)写入帧缓冲器(或板上视频存储器110)中。GPU大大减轻了系统CPU的工作负载。
保存视频图像的存储器也被称作为帧缓冲器,通常做在视频卡本身上面。在本例中,帧缓冲器以存储器110的形式在视频卡上实现。早期的系统在标准DRAM中实现视频存储器。然而,这需要连续刷新数据,以防止该数据丢失,而且在该刷新过程中不能进行修改。特别是因为现代图形卡所需要的时钟速度非常快,其结果是导致了性能的严重退化。
在视频卡本身上实现视频存储器的优点是可依照其特定的任务定制视频存储器,而且这在真正意义上促进了新存储技术的兴起:
·视频RAM(VRAM):一种特殊类型的双端口DRAM,它可以同时写出和读入。同时,它的刷新频率比普通DRAM低得多,所以该视频RAM的性能要好得多;
·视窗RAM(WRAM):由Matrox千年卡使用,WRAM也是双端口,它的运行速度比常规VRAM稍许快一点:
·EDO DRAM:其提供比DRAM高的带宽,也可比通常的DRAM具有更高的时钟频率,EDO DRAM可更有效的管理读/写循环;
·SDRAM:类似于EDO RAM,但是存储器和图形芯片在用来闭锁(latch)数据的共用时钟频率上运行,这就使使SDRAM的运行速度比常规EDO RAM更快;
·SGRAM:与SDRAM相同,但是SGRAM也支持块写和每位写(write-per-bit)操作,这样,图形芯片上就有了支持该增强特性的更好性能;
·DRDRAM:直接RDRAM是全新的通用存储结构,它具有优于常规DRAM20倍的性能。
有些设计将图形电路集成到母板本身,并使用系统RAM的一部分作为帧缓冲器。这称为“统一存储器结构”,使用它只是为了降低成本,该机构可能导致劣化的图形性能。
视频存储帧缓冲器中的信息是所出现在显示屏上的图像,并被存储为数字位图。但是虽然视频存储器包括数字信息,其输出媒体——监视器——却可能使用模拟信号。该模拟信号不只是需要“开”和“关”信号,因为它被用来确定电子枪在何处、何时、用何种强度横向并向下扫描监视器前端。这就是如下所述RAMDAC 112出场的所在。某些RAMDAC也支持数字视频接口(DVI),对诸如LCD监视器等的数字显示器输出。在这种配置下,RAMDAC将内部数字信息转换为数字显示器可理解的形式。
由于RAMDAC将内部数字数据转换为显示器可理解的形式,所以RAMDAC扮演了“显示转换器”的角色。
即使对特定的分辨率来说,不需要用足安装在视频卡上的全部视频存储器,剩余部分存储器通常使用来为GPU 108进行信息高速缓存。例如,共用图形项目的缓存——如文本字体和图标或图像——避免了图形子系统在每次一个新字母被写入或图标被移动时都要来加载这些内容,因此改善了性能。缓存的图像可被用来将由GPU提供的图像顺序排成一队,从而空出CPU可执行其它的任务。
RAMDAC 112以每秒许多次的频率读取视频存储器中的内容,将该内容转换为信号,并将该信号通过视频电缆发送至监视器。对模拟显示器而言,通常有对CRT使用来创建完整的颜色谱的三原色分别设有数模转换器(DAC)。对数字显示器而言,RAMDAC输出单RGB数据流,由输出装置编译和显示。目的是为了创建单像素颜色而需要进行恰当混合。RAMDAC 112可转换信息的速度和GPU 108本身的设计规定了图形卡所能支持的刷新速率范围。根据其内部结构,RAMDAC 112还确定了所给分辨率中可用的颜色数目。
总线连接器102可支持一个或多个用来连接视频卡的总线。例如,加速图形端口(AGP)总线可使视频卡直接访问系统存储器。直接存储器访问使峰值带宽(peak bandwidth)高于外围组件互接(PCI)总线很多倍。这就使系统CPU在视频卡上的GPU访问系统存储器时,CPU执行其它的任务。
在操作中,存储括在板上视频存储器中的数据可供给到计算机系统存储器中,并可当作系统存储器的一部分一样管理,包括诸如计算机存储管理器使用的虚拟存储器管理技术。此外,当视频卡图形操作需要存储括在系统存储器中的数据时,该数据可通过总线(如PCI或AGP总线)发送到视频卡,并保存在板上视频存储器110中。在那里,可以上述方式由GPU 108存取和操作该数据。
本发明的产生出自提供保护数据的方法和系统的需要。具体地说,本发明内容涉及提供对软件侵袭有抵抗力的方法和系统,尤其是对在用户机器上执行的非法应用程序发动的侵袭有抵抗力的方法和系统。
发明简述
这里描述的各种方法和系统旨在为在主机上执行的软件提供安全信道(secure channel)。本方法和系统用来提供对侵袭模型的解决方案,在该侵袭模型中,在主机上执行的非法软件企图不正当的获取或者对数据进行操作。某些实施例可提供能被保密的像素数据(即不可信任的软件应用程序不能从显示屏上读到数据)。另外,其它的实施例可通过探测像素数据是否被进行了不正当操作来保持像素数据的完整性。
各实施例的基础是视频卡上处于视频处理链很后面的解密引擎,从而拒绝对已解密像素数据的程序访问(programmatic access)。
附图说明
图1所示是可用于计算机系统的视频或图形卡各种组件示例的框图。
图2是可使用依照所述实施例的视频卡的计算机系统示例的框图。
图3是依照一个实施例的视频或图形卡的不同组件示例的框图。
图4是具有安全和非安全区域的主表面(primary surface)示例的框图。
图5是说明依照一个实施例的方法步骤的流程图。
图6是说明依照一个实施例的方法步骤的流程图。
图7是具有安全和非安全区域的主表面的框图示例。
图8是具有重叠窗口显示屏的框图。
图9是像素数据和相关联的辅助功能表格示例。
图10是说明依照一个实施例方法步骤的流程图。
图11是一个实施例每像素密匙表格(per-pixel key table)示例。
图12是说明依照一个实施例方法步骤的流程图。
图13是依照一个实施例的表格示例。
具体实施方式
计算机系统示例
图2所示是一个合适计算环境200的例子,在这个环境中,我们可实行下述的系统和涉及到的方法。
应当理解,计算环境200仅为合适计算环境的其中一例,而且并未有意暗示对使用范围或媒体处理系统的功能有任何限制。也不应当解释成该计算环境200对涉及计算环境200中所述的任何一个组件或其组合有依赖关系或有所要求。
所述的各种实施例可在许多其它通用或专用计算系统环境或配置中运行。我们所熟知的适合使用媒体处理系统的计算系统、环境和/或配置的例子包括,但不局限于,个人计算机、服务器计算机、薄客户端(thin clients)、厚客户端(thickclients)、手持或膝上装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子装置、网络PC、小型机、大型计算机、包括上述任何系统或装置的分布计算环境,以及类似的系统或装置。
在特定的实施中,系统和涉及到的方法通常可用计算机可执行指令的上下文来很好的说明,如由计算机执行的程序模块。通常,程序模块包括执行特别任务或实现特别的抽象数据类型的例程、程序、对象、组件、数据结构等。所述实施例也可应用在分布计算环境中,其中任务由通过通信网络相连的远程处理装置来执行。在分布计算环境中,程序模块可定位于包括存储器存储装置的本地和远程计算机存储媒体中。
依照图2所示的示例性实施例,所示的计算系统200包括一个或多个处理器或处理单元202、系统存储器204和将包括括系统存储器204的各种系统组件与处理器202接合起来的总线206。
总线206被用来代表几个总线结构类型中的任何一个或多个,该总线类型包括存储器总线或存储器控制器、外围总线、加速图形端口和使用任何一种总线结构的处理器或本地总线。作为例子,而非限制,这些结构包括工业标准结构(ISA)总线、微信道结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线以及外围组件互连(PCI)总线(亦即所谓的Mezzanine总线)。
计算机200一般有各种计算机可读媒体。这些媒体可为以是计算机200能够访问的任何本地和/或远程可用媒体,包括易失性和非易失性媒体、可移动和不可移动媒体。
在图2中,系统存储器204包括诸如随机存取存储器(RAM)210这样的易失性形式的计算机可读媒体和/或诸如只读存储器(ROM)208这样的非易失性存储器。ROM208中存储了基本输入/输出系统(BIOS)212,包括帮助在计算机200的元件之间传递信息的基本例程,如在启动时的信息传递。通常,RAM210包括可被处理单元202立即访问和/或在当前操作的数据和/或程序模块。
计算机200可进一步包括其它的可移动/不可移动、易失性/非易失性计算机存储媒体。仅仅作为例子,图2示出了用来读入和写出到非移动、非易失性磁性媒体的硬盘驱动器228(未示出,通常称为“硬驱”drive”))、用来读入和写出到移动、非易失性磁盘232(如“软盘”)的磁盘驱动器230,以及用来读入和写出到诸如CD-ROM、DVD-ROM或其它光媒体等可移动、非易失性光盘236的光盘驱动器234。硬盘驱动器228、磁盘驱动器230和光盘驱动器234中的分别都通过一个或多个接口226与总线206相连。
驱动器和其相关联的计算机可读媒体提供了计算机可读指令、数据结构、程序模块和其它计算机200数据的非易失性保存。尽管这里所述的示例环境使用硬盘228、可移动磁盘232和可移动光盘236,本领域熟练技术人员要意识到,能保存可由计算机存取数据的计算机可读媒体的其它类型,如盒式磁带、闪存卡、数字视频盘、随机存取存储器(RAMs)、只读存储器(ROM)以及类似的装置也可用在示例操作环境中。
许多程序模块可保存在硬盘228、磁盘232、光盘236、ROM 208或RAM 210中,其包括,作为例子,但不限于,操作系统214、一个或多个应用程序216(例如,多媒体应用程序224),其它模块218以及程序数据220。用户可通过诸如键盘238和指点装置240(如鼠标)等输入装置将命令和信息输入计算机220中。其它的输入装置可包括音频/视频输入装置253、麦克风、操纵杆、游戏垫板(game pad)、圆盘式卫星电视天线、串行端口、扫描仪或类似的装置(未示出)。这些和其它的输入装置通过与总线206结合的输入接口242与处理单元202相连,但它们也可由诸如并行端口、游戏端口或通用串行总线(USB)等其它的接口和总线结构连接。
监视器256或其它类型的显示装置也通过诸如视频适配器或视频/图形卡244等接口与总线206相连。除了监视器之外,个人计算机通常包括其它的外围输出装置(未示出),如可通过输出外围接口246连接的扬声器和打印机。
计算机200可在网络化环境下工作,逻辑连接到一个或多个诸如远程计算机250这样的远程计算机上。远程计算机250可包括这里谈到的涉及计算机的许多或所有元件及特性。
如图2所示,计算系统200通过本地网(LAN)251和普通广域网(WAN)252与远程装置(如远程计算机250)结合在一起,保持良好通信。这样的网络环境常见于办公室、企业计算机网络(enterprise-wide computer networks)、内部网以及国际互联网。
当计算机200使用在LAN网络环境中时,它通过合适的网络接口或适配器248与LAN 251相连。当计算机200使用在WAN网络环境中时,它通常包括调制解调器254或其它在WAN 252上建立通信的装置。调制解调器254可为内置的或外置的,它可通过用户接口242或其它的合适机制与系统总线206相连。
在网络化环境中,相对个人计算机200或其组成部分描述的程序模块可保存在远程存储器存储装置中。作为例子,而非限制,图2示出了驻留在远程计算机250存储装置中的远程应用程序216。应当意识到,所示与所述的网络连接是示例性的,也可使用在计算机之间建立通信连接的其它装置。
总论
这里描述的各种方法和系统旨在为在主机上执行的软件提供安全信道。所述方法和系统用来提供对侵袭模型的解决方案,其中,在主机上执行的非法软件企图窃取数据或者对数据进行操作。
各种的实施例可提供安全执行环境,其中数据可安全地在显示屏上显示给用户进行交互操作。所述的实施例在体现其它特征的同时,具体体现了以下特征中的一条或两条。
第一条特征是数据能被保密,如可驻留于视频卡的像素数据。这就意味着不可信任的软件应用程序(或无赖应用程序)不能从显示屏上或视频存储器中读下数据。该保密性方面在数字化工作环境(digital workplace arena)中是有用的,因为有人正在操作视频或像素数据,就希望将视频数据发送到视频卡的方式,是使在计算机上运行的“破裂工具”无法读取数据。例如,考虑这样一种情况,用户正操作能以加密形式接收数据的电子邮件程序。各种实施例可使数据呈现在显示屏上,而没有非法应用程序可访问该数据的风险。
第二个特征是完整性。这从根本上说,即人们不希望不可信任的软件(或无赖软件)能操作显示在显示屏某一部分上的数据。例如,这样一种情况,用户通过在其计算机上执行的软件进行电子商务设置,安排向特定单位付费$10。该用户可能简单地在显示于其显示屏上的窗口中键入美元数目。然而,这可能让无赖应用程序将“$1000”改为“$10”。这当然是用户不想得到的结果:用户授权支付了比他们原本想要支付更多的金额。
另外,若某些不可信任的软件确实以某种方式不正当的操作了数据,则我们希望能被告知发生了此类事件。因此,下面所述的一些实施例提供了可探测数据是否已被操作的方式。
示例性实施例
下面所述的实施例旨在提供安全视频输出——即不易受软件侵袭影响的视频输出。各种的实施例可提供基于窗口的保护,该保护可有选择的应用在用户显示屏的某些区域(如视窗)中,而不是整个屏幕区域——尽管不排除全屏保护。安全视频输出通常不能被不可信任的软件读出。该特性对诸如优质内容(premiumcontent)(如视频、图)和大量的普通电子商务及安全应用程序等内容提供保护。
另外,各种的实施例可提供所谓的对不可信任软件(部分或完全)不透明(obsureable)的安全对话。该特性在普通电子商务交易中非常有用。
下面所述的实施例是提供安全视频输出的基于加密的解决方案。各种实施例的优点是,通常该实施例容易被实现而且对现存软件结构没有实质上的影响。
将要说明的某些实施例是以位于视频处理链很后面的视频卡解密引擎为基础的。在本文件说明的例子中,实施例的许多方面是用硬件来实现的——其它方面也可用固件和软件来实现。
本发明实施例想要获得的特征是对将要显示在用户显示屏上的各种数据进行加密。因此,想要窃取数据的侵袭将只能够窃取已经加密的数据。可利用加密技术使任何被窃取的数据在数学上不可解密。另外,加密数据的解密所发生在处理链的一点,使其不能对将要显示的已解密位进行程序访问(programmatic access)。也就是说,不能到已解密位进行软件访问,从而使在用户计算机上执行的非法软件不能访问已解密的位。
在一个实施例中,解密器(decryptor)设于视频卡上,并置于GPU和显示转换器(如RAMDAC)之间。希望在硬件中实现该解密器,该解密器可在视频卡将帧缓冲器扫描(rastering)到显示转换器中时,“实时”处理已经加密的数据。
结构示例
图3示出了依照一个实施例的视频(或图形)卡300示例。卡300包括插入到典型计算机端口中的总线连接器302。视频卡300也包括容纳与监视器相连电缆的监视器连接器304(如15引脚的插头)。视频卡300可以包括,但不是一定要包括,可用来向数字显示器和类似装置发送视频图像的数字视频输出(如DVI)插座306。
像图1的视频卡一样,视频卡300包括图形处理器单元(GPU)308、视频存储器310、显示转换器或随机存取存储器数模转换器(RAMDAC)以及可包括在视频BIOS 314中的驱动软件。
GPU 308是专用图形处理芯片,控制分辨率、颜色深度和与监视器屏幕上呈现图像相关联的所有元素的各个方面。存储器控制器(有时集成到GPU中)管理视频卡上的存储器。计算机的中央处理单元或CPU(未示出)发送一组绘图指令和数据,这些指令和数据被图形卡的专用驱动器编译,并由该卡的GPU 508执行。GPU 308执行的操作,包括位图传送和描绘、窗口大小调整和定位(repositioning)、绘制直线、字体的比例缩放以及绘制多边形。然后,GPU能将帧数据写到帧缓冲器(或板上的视频存储器310)中。
视频存储器帧缓冲器中的信息是呈现在屏幕上的图像,它被保存成为数字位图。如上所述,利用RAMDAC 312来将数字位图转换为能被用来呈现在监视器上的形式。
除了这些组件之外,在本实施例中,视频卡300包括存储器控制器316和包括密匙管理器319的控制处理器318。视频卡还包括解密器320。这些组件能在任何合适的硬件、软件、固件或其组合中实现。
存储器处理器316接收视频卡上的数据,并管理视频存储器310中的数据。存储器控制器也负责管理视频卡和系统存储器之间的数据传递。
提供的控制处理器318可包括密匙管理器319。该控制处理器可负责组织视频卡上的密码功能。例如,控制处理器318可通过专用总线或安全信道同解密器320通信,以确保该解密器具有对因安全因素而加密的像素数据进行正确解密的解密能力。通过密匙管理器319,控制处理器318对与加密、解密有关像素数据相关联的密匙。在某些实施例中,控制处理器能以视频卡上独立集成电路芯片的形式来实现。
解密器320被配置为,或可配置为,对有关像素数据进行解密。例如,如下面将要更详细说明的,要保护的数据可被加密并写到包括所谓“主表面”或视频卡存储器的桌面表面(desk top surface)一部分的安全区域,其中,该视频卡存储器包括RAMDAC 512用来将图像呈现在监视器上的数据。在已经加密的图像被复制到主表面之前,该图像可被复制到视频存储器的临时位置。控制处理器318可设置用来加密数据的加密密匙,并提供解密器320的解密密匙,解密器320使用该密匙来解密已经加密的像素数据。一旦数据被解密,该数据就可传送到RAMDAC进行进一步处理。
应当理解,虽然解密器被作为分离组件进行说明,但RAMDAC可以有合适的解密功能,以使其作为解密器而进行有效的操作。
在工作中,安全或可信软件应用程序322可在解密器320和软件应用程序之间建立共享密匙。然后,软件应用程序可使用该密匙来产生能保存在存储器(视频存储器310或系统存储器)中的加密像素数据。
通常,像素数据有几种不同的方法来写入主平面的保护区域或帧缓冲器。第一,像素数据可通过存储器控制器执行的“移动”操作被直接写入帧缓冲器。第二,应用程序(如安全应用程序)可在系统存储器即像素数据被加密的地方把要被保护的像素数据汇编起来。系统存储器中已加密的数据将被最终复制到主表面来解密和呈现。
然后,控制处理器可确保解密器320知道在像素数据被发送到RAMDAC312之前(或该数据在监视器上呈现之前)使用哪个密匙来对该像素数据解密。
这样,在本例中,有在可信实体间共享一个或多个密匙的机制。数据可在视频卡上加密,在数据处理链的某一点处解密,以使要在显示器上呈现的未加密数据不易受软件侵袭的影响。企图将已加密的数据数据从主平面的保护部分读出的不可信或非法实体就只能读已加密的数据,这对他们来说是没有多大用处的。另外,当VRAM存储器通过虚拟存储器管理技术被映射到系统存储器时,情况相同。这样,不论预计在主平面的保护部分的数据是在视频卡上还是被映射到系统存储器中,该数据都被加密并被保护起来。
安全窗口
在一个实施例中,提供了一个或多个安全窗口,这些窗口可被用来在用户的显示屏上显示秘密数据。用户显示屏上的安全窗口是与视频卡存储器(或使用虚拟存储器管理技术时的系统存储器)中主平面的安全部分相关联或相应的。考虑图4的例子。
其中,图中在400处大致示出了视频卡主平面。主平面400包括括括有未加密数据的区域402(阴影部分)和一个或多个包括加密数据的区域。在这个特定的例子中,两个示例安全区域404和406可包括已加密的数据。每个加密区域的相应安全窗口分别在404a和404b处示出。
在本实施例中,解密器320(图3)被配置为在区域402中通过所有的像素数据,而不会修改(如解密)它们。也就是,由于驻留在区域402中的数据没有被加密,所以解密器320没有必要对这些数据解密。然而,该解密器确实对驻留在区域404和406中的已加密数据进行了解密。
在区域404和406中的像素数据可由解密器通过使用与安全区域相关联的密匙来解密。在某些实施例中,一个密匙可与所有的安全区域相关联。在其它的实施例中,每个安全区域可拥有其自己的相关联密匙。单独对每个安全区域赋予密匙的原因之一是某些安全区域或许与能访问其它安全区域的特定应用程序没有关联。例如,假设安全电子邮件应用程序与一个安全区域相关联,已加密的电子邮件驻留在该安全区域中。再假设电子商务应用程序与不同的安全区域相关联。对电子邮件应用程序来说,它确实没有理由访问与电子商务应用程序相关联的安全区域。然而,如果所有的安全区域只有一个密匙,那么推测起来,可访问一个安全区域的所有应用程序就能访问所有其它的安全区域了。因此,通过对每个安全区域提供不同的密匙,到每个安全区域的访问就被限制在那些应该访问该区域的应用程序了。
在另一个实施例中,做了部分变化,一中央实体(“混合器”或“组合器”)可支配几个区域并将它们转录(transcrypt)到共用密匙由显示器硬件进行解密。每个应用程序得信任组合器实体。
图5所示是依照一个实施例的加密方法步骤的流程图。该方法可在任何硬件、软件、固件或它们的组合中实现。在本发明中,该方法至少可部分的由合适配置的视频卡来实现,例子上面已经给出。
步骤500确定了主平面的一个或多个安全区域。所述区域形状和大小以合适为准。在上面的例子中,安全区域的形状恰巧是矩形。希望所述区域尺寸比当呈现在显示屏上时需要占据整个显示屏的尺寸小。步骤502将至少一个密匙与主平面的各安全区域关联起来了。所述密匙(一个或多个)可被用来加密和/或解密将驻留在安全区域中的像素数据。步骤504使用该密匙来加密像素数据。这个步骤能由可信系统软件、固件和/或硬件来实现。例如,诸如应用程序322这样的安全应用程序可使像素数据被加密。步骤506将已加密的像素数据写到或移动到主平面的安全区域中。注意,一旦像素数据被加密,原始的(underlying)解密像素数据就被保护进入防窃状态。
图6是说明一个实施例解密方法步骤的流程图。该方法可在合适的硬件、软件、固件或它们的组合中实现。在本例中,该方法至少可部分的由合适配置的视频卡来实现,上面给出了例子。
步骤600为视频卡主平面安全区域提供已加密数据。步骤602提供与安全区域相关联的密匙。这个步骤可由控制处理器318(图3)来实现。例如,该控制处理器可提供一个或多个解密器密匙,解密器用该密匙来解密已加密的像素数据。步骤604使用该密匙来对主平面安全区域的加密数据进行解密。这个步骤可由解密器320(图3)来实现。注意,像素处理链中发生解密的点是程序不可访问(programmatically inaccessible)的。这样,已解密的像素数据就被保护起来免受软件侵袭。然后,步骤606提供已解密的数据给显示转换器来进一步处理,包括将该像素数据呈现在用户的显示屏上。
执行示例
在一个实现方法中,可使用基于公共密匙的引擎来进行加密和解密。控制协议可使诸如安全应用程序类的软件来将加密形式的命令发送到控制处理器318(图3),并接收用密码确认文件(acknowledgements)来确保该命令已被执行了。
可使用任何合适的命令。例如,可使用下面的命令(或与之类似的命令):
·GetPK()                       返回装置公共加密密匙
·SetSec()                      设置安全区域的形状、该区域形状的加密密匙
·ClearSec()                    清除某区域的加密
在部分实施例中,解密器320可推断安全区域的几何形状,以便能在该区域中对像素数据进行解密。在另外的实施例中,解密器可被告知几何形状。例如,当安全窗口被拖动并下降到用户显示屏的不同位置时,这样做可能是有用的。例如,GPU 308可包括一几何处理器(未明示),以维护一列主平面安全区域以及与所述区域相关联的各种安全数据。该安全数据可包括所述区域的x和y坐标,区域的宽度和高度以及与特定区域相关的密匙。解密器320可被告知该安全数据,以便当该解密器开始处理像素数据时,它知道特定的像素是否属于这些区域的其中一个并需要解密,或者特定的像素数据是否要被传送到RAMDAC中。若安全窗口移动了,则几何处理器可将该安全窗口的新坐标告知该解密器。
在一个结构示例中,公共密匙和控制功能程序可被模块化进带板上闪存(与“智能卡”类似)的离散外部装置。相反的,解密器320可合并入GPU硅片中(即与GPU集成)。然后,控制处理器318可将解密密匙直接传递给GPU。作为防止软件侵袭的进一步预防措施,可在控制处理器318和GPU 308之间提供专用总线。
在工作中,控制处理器318可由安全软件/硬件来鉴定,并接收“将本安全区域的加密密匙设为x”之类的加密命令。然后,控制处理器可返回密码响应来确保该命令被正确执行了。
现在,加密密匙可用来向安全区域呈现视频数据了。在本例中,敌方代码有可能读到该已加密的数据。然而,任何由这样代码读出的数据加密的,而且对敌方代码来说没有多大用处。在某些实现方法中,敌方代码也可修改已加密的数据。然而,被修改的加密数据会被解密为这样的数据,即当它们呈现在显示屏上时,会在逻辑上不符合上下文。例如,当这样的数据呈现在显示屏上,它们可显现为随机噪声/灰色输出。确信用户将注意到这种侵袭。
另外,验证信息的使用可确保如果像素数据被敌方代码修改了,那么用户将会获悉。例如,考虑下面的情况。可能要求安全数据格式中包括一定数目的每像素位数,如每像素24位。在每像素24位中,有8位始终是0。然后,解密器可被配置得将不合像素(non-compliant pixels)做成闪烁紫色(flashpurple),并可通知控制处理器已经受到侵袭。
此外,可以应用其它的技术来确保当像素数据被非正当地修改时这样的修改可以探测到。例如,考虑下面的情况。对与每个要呈现的像素相关联的像素数据来说,可计算混列码(hash)。当像素数据被显示转换器(如RAMDAC312)处理时,显示转换器可接着计算像素数据的混列码,并将该混列码与先前对像素数据计算的混列码相比较。如果有不正当的数据修改,那么该混列码比较结果会显示现象的发生。
加密技术示例
可用不同的加密技术来确保驻留在主表面安全区域内的像素数据被加密,且接着被解密器正确解密了。下面说明了两个示例性加密技术——尽管也可使用其它的技术而不背离权利要求主题的精髓和范围。
可使用的第一加密技术是流密码。流密码通常在软件中速度很快,而在硬件中容易实现。流密码是通常工作在较小明文(plaintext),通常为位单元上的一类的对称加密算法。流密码产生所谓的密匙流(keystream)(用作密匙的位序列)。通过将密匙流与明文或位组合,通常用位XOR运算的方式来完成加密。密匙流的产生可独立于明文和密码文本,产生术语为同步流密码的文件,或者它可依赖于数据及其加密,在这种情况下,流密码被称作自同步。绝大多数的流密码设计是针对同步流密码的。然后,相同的流密码可用来对已加密的数据解密。
流密码可运行在整个主平面上,但确仅解密主表面安全区域的数据。然而,这并不是最好的选择,因为流密码不必在整个主平面上运行——而只需在那些安全区域上运行。因而,流密码运行的范围可做限制,以使其范围为一个或多个安全区域边界所界定。实现加限制范围的流密码的一个好方法是针对显示器的每次刷新定义流密码开始位置,如安全区域的左上角像素。然后,流密码可在该安全区域中运行,直到安全区域的右下角像素被处理完。
例如,考虑图7的情况。其中,主表面700包括将驻留未加密的像素数据的区域702,其中,以及将驻留加密像素数据(用流密码加密)的安全区域704。使用具有恰当范围限制的流密码,流密码可从左上角像素表示的位置处开始运行,在右下角像素表示的位置处结束。当加密数据要被解密时,解密器(如解密器320)可被告知流密码开始和结束位置处坐标。本实现方法的一个优越特性是若与其中一个安全区域相关联的安全窗口被拖动并下降到另一个位置(其可能调用不可信软件来移动该窗口)时,可继续在新位置执行加密运算。为了实现这个目的,加密实体仅需被告知安全窗口(因此主平面的安全窗口)的新坐标,以便加密实体可在新位置进行其加密处理。与此相似,解密器320也可被告知该位置,以使该解密器可在正确的位置运行流密码来对已加密的像素数据进行解密。
加密器可使流密码持续穿过几个帧,从而使微分侵袭(differential attacks)更困难。流密码的密匙可在每个帧组后改变。为了减少密匙的数量,可在密匙被使用前,约定密匙固定排列。加密器可在密匙排列中循环选择每个帧组的不同密匙。
可使用的第二加密技术是分组密码。分组密码是将固定长度的明文数据块或位(未加密的文本或位)转换为相同长度的密码文本分组(已加密的文本或位)。这个转换是在用户提供密匙后进行的。通过使用相同的密匙将逆转换应用到密码文本分组上,可执行解密。该固定长度称作组长,对许多分组密码而言,组长是64位。在未来的几年里,随着处理器趋向更精密化,组长将增加到128位。
在上述的这两个加密技术中,因为流密码的速度比分组密码更快,所以流密码是较好的选择。
验证
在部分实施例中,可利用验证技术来确保视频卡的完整性和同一性。对将与视频卡相互作用的安全软件应用程序而言,其重要目标是该应用程序能可靠的证明(1)该应用程序确实在与视频卡,而不是与仿效视频卡的一个软件进行通信,(2)该应用程序确实在与服从或符合与像素数据呈现相关联的预定义规则的视频卡进行通信。
验证技术可用几个不同的方法来实现——例如,通过密码证明和其它通信协议。
密码证明涉及建立备有证明的密匙和数字证的视频卡。使用该密匙和证,该视频卡可建立与安全软件应用程序的密码会话。例如,数字证可用来验证视频卡,而证明的密匙可用来加密与安全应用程序进行的通信。为执行密码证明,每个视频卡可具备由可信单位制造的单独安全IC芯片。密码证明技术为本领域熟练的技术人员所熟知和理解。因而,也为了简短起见,这里没有对密码证明进行更详细的说明。
另一个验证方式可与在安全应用程序和视频卡之间建立的安全协议相关联。安全协议可使该应用程序得到这样的保证,即其正与有效的视频卡通信。例如,合法应用程序可向视频卡发出挑战来鉴别自己,而视频卡可做出应答,声称是合法可信视频卡。可以利用已知的各种安全协议技术。
上述的实施例具备几个优点。第一,提供了可确保数据(视频卡上和视频卡外的)被保护、防止软件侵袭的技术。以加密技术的形式提供了保护,这种保护可用来加密驻留在视频卡主表面上的数据。然后,解密运算可在数据处理流水线(pipeline)上没有软件访问的位点进行。这样,任何非法软件进行读取数据的侵袭将产生加密且实质上无用的数据。因此,像素数据可被保密。此外,有各种不同的技术可用于保持数据的完整性。即,如果发生了数据修改侵袭,那么可使用各种不同的探测方法来确保产生适当的通知(应用程序通知和用户通知)。通过定义由特定几何形状识别的主平面安全区域,可达到本发明进一步的优点。
分像素辅助功能性
在部分实施例中,理想是要在像素粒度(granularity)上提供功能性。例如,主表面的安全区域通常不交叠。然而,在某些情况下,用户可能想在他们的显示屏上移动窗口以使窗口交叠。交叠区域可将额外设计要求引入执行加密和解密功能的组件设计中。
作为例子,请考虑图8的情况。其中,用户通常看到的显示屏在800处示出。上面有安全窗口802,另外,非安全窗口804交叠在安全窗口的右下角,由此定义出交叠区域806。以下是这种情形所产生的问题之一。当实现在视频卡的主表面上时,区域806不包含加密数据。然而,相应于安全窗口802的邻近区域实际上包含已加密的数据。如果不考虑这个因素并加以调整,那么,解密器就可能对与重叠区域806相关联的像素数据进行解密运算。由于该像素数据根本未经加密,所以解密该数据时会产生出错误数据。
因此,即将要说明的实施例中的方法和系统提供了使分像素功能性。在一个实施例中,可提供分像素安全。
图9所示是通常在900处的像素数据图表。在本例中,该像素数据包括32位数据。红(R)、绿(G)、蓝(B)值各用8位表示。应该注意,虽然所示像素数据是每像素32位,但像素数据包括的每像素位数括可多可少。注意在本例中,有8位是留置的(left over)——这里指定为“辅助”。为了使存储器访问更有效,GPU倾向于以信息块(chunks)(2的幂的倍数)形式读出数据。因此24位数据作为32位块读出,而留下的8位“未使用”,但总是用“使用”位读写。这些辅助位可重新使用来指定那些同要呈现在显示屏上的像素相关联实现的各种辅助功能。辅助功能的例子可包括,但不限于,alpha或透明信息、深度信息、区域识别信息或颜色密匙信息(表示用其它数据代替的区域)。
其它普通视频格式使用每像素16位,而不是每像素24位或32位。例如,RGB数据可保存为每像素5位,留下单个未使用位可用来指定2个辅助功能。
实现辅助功能性的一个方法是提供诸如表格902这样涉及或指定辅助功能性的表格。例如,使用8位来指定辅助功能可使辅助功能多达256个。因此,当处理像素数据时,涉及辅助功能的像素数据位可被处理来访问和实现各种不同的辅助功能。
图10是说明依照本发明一个实施例的方法步骤的流程图。该方法可用任何合适的硬件、软件、固件或它们的组合来实现。在本例中,所述方法可至少部分的由合适配置的视频卡来实现,见上述的例子。
步骤1000提供了具有已定义的每像素位数的像素数据。在图9的例子中,每像素有32位。然而,可以用任何合适的每像素位数。步骤1002使用一个或多个像素数据位来指定辅助功能。在图9的例子中,通过使用所谓的“alpha信道”(第四“未使用”信道),8位被用来指定辅助功能。通过使用所述alpha信道的8位,可指定256个独立的辅助功能。步骤1004处理所述位来访问辅助功能。本步骤可将辅助位的值用作表格902(图9)样的辅助功能表的索引(index)来实现。然后,该表格各值指向辅助功能,其实现与特定像素的像素数据相关联。表格902中的引用(reference)可以是实现辅助功能的软件代码的指针,或者包括辅助功能本身的一部分或全部。步骤1006随之实现所述辅助功能。
若功能0指定了空功能,那么老的应用程序将自动与利用新辅助功能的新配置相兼容。
分像素安全
像素数据的辅助位可用来提供像素水平(level)的解密功能性。例如,假设在主表面上有用来保存想要保护的像素数据的安全区域。通过使用加密密匙,我们可在像素水平上加密该像素数据。现在假设已加密像素数据的辅助位指定了解密密匙,用来对该像素数据解密。例如,图11示出了分像素辅助功能表1100。其中,该表格的每个值与特定密匙相关联。例如,值“1”与“密匙1”相关联,值“2”与“密匙2”相关联,依此类推。因此,如果辅助像素数据显示特定密匙与像素数据相关,那么解密器就可访问相关联的密匙,并使用该密匙来对像素数据解密(通常为0)。辅助像素数据也可保存用于显示该像素数据没有被加密的值。在这种情况下,解密器就可以简单地将相关联的像素数据传送到显示转换器以进行进一步处理,从而使来自应用程序的未加密数据与新配置无缝集成。
分像素密匙表可保存能用来对相关联已加密像素数据进行解密的各个密匙,也可以保存对能用来对相关联的已加密像素数据进行解密的密匙的引用(reference)。
所述密钥表还可保存诸如alpha值之类的二级(非安全)辅助相关数据。这样,在安全与和原始的辅助信道之间,某些值就可以选择性地重复使用。例如,值1到3可用来指定密匙(有其自己的alpha值),而留下值0和4到255仍然可用来指定其原始的alpha值。
图12是说明依照本发明一个实施例方法步骤的流程图。该方法可在任何合适的硬件、软件、固件或其组合中实现。在本例中,所述方法至少可部分地由合适配置的视频卡来实现,上面给出了例子。
步骤1200加密与各像素相关联的像素数据。优点是,可在像素水平上进行所述加密。该步骤可以任何合适的方式进行。例如,安全应用程序可使像素数据被加密。做为选择,可利用其它的方法来加密该像素数据,如以上给出的例子。步骤1202将辅助数据与像素数据相关联。该辅助数据指定一个或多个可用来解密像素数据的解密密匙。在某些情况下,该辅助数据可视作包括像素数据本身,因为该辅助数据包括组成像素数据(如alpha信道)的一部分位。步骤1204接收包括了任何相关联的辅助数据的像素数据。例如,该步骤可由合适配置的解密器来实现。步骤1206确定该像素数据是否需要被解密。该步骤可通过检查辅助数据来实现。如果辅助数据包括与解密功能性相关联的值,那么有必要进行解密。如果有必要解密,那么步骤1208就使用辅助数据访问像素数据的解密密匙。该步骤可通过维护如表1100这样的表格、并使用该表格访问适当的解密密匙来实现。接着,步骤1210使用解密密匙对像素数据进行解密。另一方面,如果步骤1206确定没有必要进行解密,那么步骤1212就不对数据进行解密。该步骤可通过将特定值(如0)赋给辅助数据、并使用该值来表示没有必要进行解密而实现。然后,该数据可被传送到显示转换器来进一步处理。
可选择性的进行分像素加密的一个优点是应用程序能够指定非矩形加密区域。在矩形区域中的每个未经加密的像素可由空加密功能(索引0)来指定。
二级表
除了上述的表格之外,可提供所谓的二级表格来包括处理像素数据时有用的附加信息。例如,参见图13示出的二级像素表格1300。在本例中,主表面安全区域中的每个像素可以在表格中有一个相关联的表目(entry)。这样,“像素”栏可识别主表面的特定像素区域。在本例中,表格1300包括可用来识别“拥有”该特定区域的过程或实体的“过程ID”栏。例如,本栏可用来把对特定像素数据的访问限制在那些应该访问的实体。
数据完整性
做为附加或选择,表格1300可用来校验像素数据的完整性。例如,混列码可由未加密的像素数据计算,并且保存在表格1300的“期望混列码”列中。然后,当该像素数据由解密器解密时,另一个混列码可由已解密的像素数据来计算,并且被置于“当前混列码”列中。通过比较期待混列码和当前混列码,安全应用程序或解密器可确定是否有任何像素数据被操作或改变。例如,如果非法应用程序成功的操作了未加密的像素数据,那么该混列码比较就表示该发生了该事件。另一方面,若非法应用程序操作了已加密的像素数据,则该数据会不同的解密。然后,当当前的混列码对已解密的数据计算时,该当前混列码将肯定不会顺利的与期待混列码相比较。解密硬件可告知该数据折衷(compromise)的应用程序(或代表该应用程序的代理)。该通告可在到加密实体的安全信道上出现。
可利用其它的技术来确保安全区域中数据的完整性。例如,由于某种原因,侵袭者可能具有对分像素设地址的性能,从而能够操作像素数据(包括辅助数据)。为了处理该情形,可以执行这样的程序即通过对每个安全区域迫使辅助数据假设为将引起数据被解密的值。因此,这就将任何侵袭辅助数据的非法应用程序的影响降到了最低程度,其中是通过如将数据的值改变为促使该数据不被解密的值的方式来实现的。
分像素辅助功能性的一些优点(包括每像素安全)包括,而不局限于,相关联的表格(如密匙表格)是比较小而且可缓存的。进一步的,当辅助数据包括已被分配给像素数据(如alpha信道)的部分位时,就不需要附加的视频带宽了。另外,如果alpha值没有用来支持辅助功能性的话,那么alpha值仍可被使用。再者,分像素分帧密匙控制可支持复杂密匙过渡。也就是,密匙在每个帧中循环,其可减少播放视频时切换密匙时发出的问题(issues)。上述的技术也可用于非RGB数据,用到桌面的直接存储器拷贝和视频覆盖(overlays)。
最后,当区域移动时,辅助加密索引随着视频数据而移动,确保加密信息保持完好同步,且不需要对硬件做任何额外改变。
结论
上述各方法和系统对在主机上执行的软件提供了安全信道和地址,也提供了在主机上执行的非法软件企图不正当的获取或操作数据时形成的侵袭模型的解决方案。通过本发明的技术,要处理并呈现在用户显示器上的视频数据可被保密,并在许多情况下,可保护数据的完整性。
尽管本发明是针对结构特征和/或方法步骤而言的,应当理解,在权利要求书中定义的本发明并不只局限于所述的特定特征或步骤。所揭示的特正和步骤仅仅是作为实现权利要求发明的较佳实施形式而已。

Claims (55)

1.一种方法,其特征在于,它包括:
在视频卡上提供加密的视频数据,其中所述视频卡包含包括一个或多个安全区域以及一个或多个非安全区域的存储器,且加密的视频数据存储在一个或多个安全区域内;以及
在数据处理中的某点对所述视频卡上的所述加密的视频数据进行解密,在该点没有对已解密的视频数据的程序访问。
2.如权利要求1所述的方法,其特征在于,在向视频卡上的显示转换器提供解密的视频数据之前,执行解密操作。
3.如权利要求1所述的方法,其特征在于,在向视频卡上的RAMDAC提供解密的视频数据之前,执行解密操作。
4.如权利要求1所述的方法,其特征在于,解密操作由所述视频卡上的硬件解密器执行。
5.如权利要求1所述的方法,其特征在于,解密操作由所述视频卡上视频卡GPU和RAMDAC之间的解密器执行。
6.一种系统,其特征在于,它包含:
在视频卡上提供加密的视频数据的装置,其中所述视频卡包括具有一个或多个安全区域以及一个或多个非安全区域的存储器,所述加密的视频数据存储在一个或多个安全区域内;
对视频卡上的加密的视频数据进行解密的装置;以及
拒绝对已解密的视频数据进行软件访问的装置。
7.如权利要求6所述的系统,其特征在于,所述提供加密的视频数据的装置包括流密码。
8.如权利要求6所述的系统,其特征在于,所述提供加密的视频数据的装置包括分组密码。
9.如权利要求6所述的系统,其特征在于,所述用于解密的装置包括视频卡上的硬件解密器。
10.一种系统,其特征在于,它包括:
图形处理器单元,用于处理要呈现在监视器上的视频数据;
存储器,可与所述图形处理器单元联合运行来存储将要或已经被所述图形处理器单元处理的数据,其中所述存储器包括一个或多个安全区域以及一个或多个非安全区域;
显示转换器,用于将数字数据转换成用于将数据呈现在监视器上的信号;以及
解密器,被配置用于对提供给所述显示转换器的像素数据进行解密,所述解密器被布置在没有程序访问的数据处理点。
11.如权利要求10所述的系统,其特征在于,所述存储器包括包含要呈现在监视器的数据的主表面,所述主表面包括一个或多个可放置加密数据的安全区域。
12.如权利要求10所述的系统,其特征在于,它还包括:
视频卡上的控制处理器,被配置为给解密器赋予解密能力。
13.如权利要求12所述的系统,其特征在于,所述控制处理器包括:
密钥管理器,用于管理一个或多个可提供给所述解密器用于对加密像素数据进行解密的密钥。
14.如权利要求12所述的系统,其特征在于,它还包含:
安全信道,通信上连接所述控制处理器和所述解密器。
15.如权利要求12所述的系统,其特征在于,所述控制处理器包含视频卡上的独立集成电路芯片。
16.如权利要求10所述的系统,其特征在于,所述解密器包含视频卡上的分离组件。
17.一种系统,其特征在于,它包括:
视频卡上的处理器装置,用于处理要呈现在监视器上的视频数据;
视频卡上的存储器装置,与所述处理器装置联合运行,用于存放即将或已经由所述处理器装置处理的数据,其中所述存储器包括一个或多个安全区域以及一个或多个非安全区域;
视频卡上的转换器装置,用于将数字数据转换成用于将数据呈现在监视器上的信号;
视频卡上的解密器装置,用于对提供给所述转换器装置的像素数据进行解密;
视频卡上用于拒绝一个或多个软件应用程序访问已解密的像素数据的装置。
18.一种系统,其特征在于,它包含:
视频卡;
视频卡上的存储器,一部分包括包含要呈现在监视器上的数据的主表面,其中所述主表面包括安全区域和非安全区域;
主表面上存储加密的像素数据的一个或多个安全区域;以及
至少一个密钥,与一个或多个区域相关联,并被配置为使加密的像素数据得以解密。
19.如权利要求18所述的系统,其特征在于,各安全区域对应于可在监视器上提供的安全窗口。
20.如权利要求18所述的系统,其特征在于,各安全区域具有单独相关联的密钥。
21.如权利要求20所述的系统,其特征在于,有多个各自拥有不同密钥的安全区域。
22.如权利要求18所述的系统,其特征在于,它还包括:
视频卡上的解密器,被配置为用关联的密钥对加密的像素数据进行解密。
23.如权利要求22所述的系统,其特征在于,所述解密器在没有对解密像素数据的程序访问的处理点上对加密的像素数据进行解密。
24.如权利要求22所述的系统,其特征在于,所述解密器包括硬件解密器。
25.如权利要求18所述的系统,其特征在于,所述视频卡是可验证的。
26.如权利要求25所述的系统,其特征在于,所述视频卡包括可用于验证的数字证书。
27.如权利要求25所述的系统,其特征在于,所述视频卡被配置为可对验证询问作出响应。
28.如权利要求18所述的系统,其特征在于,所述视频卡包括对一个或多个安全应用程序之间的通信进行加密的密钥。
29.一种方法,其特征在于,它包括:
定义视频卡存储器主表面上的一个或多个安全区域,其中所述主表面包括安全区域和非安全区域;
将用于对存储在一个或多个安全区域中的像素数据进行加密的至少一个密钥与所述一个或多个安全区域相关联;
用所述至少一个密钥加密像素数据;以及
将已加密的像素数据提供给所述一个或多个安全区域。
30.如权利要求29所述的方法,其特征在于,所述一个或多个安全区域的形状是矩形。
31.如权利要求29所述的方法,其特征在于,所述密钥包括能使用流密码进行加密的密钥。
32.如权利要求29所述的方法,其特征在于,所述密钥包括能使用分组密码进行加密的密钥。
33.如权利要求29所述的方法,其特征在于:
定义多个安全区域的定义操作;以及
将不同密钥与每个安全区域关联的关联操作。
34.如权利要求29所述的方法,其特征在于,使用范围限制在所述一个或多个安全区域的流密码执行加密操作。
35.一种系统,其特征在于,它包括:
定义视频卡存储器主表面的一个或多个安全区域的装置,其中所述主表面包括安全区域和非安全区域;
将用于对存储在一个或多个安全区域中的像素数据进行加密的至少一个密钥与所述一个或多个安全区域相关联的装置;
用所述至少一个密钥加密像素数据的装置;以及
将已加密的像素数据提供给所述一个或多个安全区域的装置。
36.一种方法,其特征在于,它包括:
在视频卡主表面的安全区域中提供已加密的数据,其中所述主表面包括安全区域和非安全区域;
提供与安全区域相关联、可用于对加密数据进行解密的密钥;
使用所述密钥对主表面安全区域中的加密数据进行解密。
37.如权利要求36所述的方法,其特征在于,使用密钥的操作出现在没有对已加密数据的程序访问的处理点。
38.如权利要求36所述的方法,其特征在于,提供密钥的操作由视频卡上的控制处理器执行。
39.如权利要求36所述的方法,其特征在于,使用所述密钥对加密数据进行解密的操作由视频卡上的硬件解密器执行。
40.如权利要求36所述的方法,其特征在于,使用所述密钥对加密数据进行解密的操作由视频卡上的解密器执行,所述解密器可推断所述安全区域的几何形状。
41.如权利要求36所述的方法,其特征在于,它还包括将已解密的数据提供给显示转换器,以呈现在显示屏上。
42.如权利要求36所述的方法,其特征在于,有多个不同的安全区域,且提供密钥的操作提供与每个安全区域相关联的所述密钥。
43.如权利要求36所述的方法,其特征在于,有多个不同的安全区域,所述提供密钥的操作包括提供多个密匙,每个安全区域与不同的密钥相关联。
44.如权利要求36所述的方法,其特征在于,使用所述密钥解密的操作是采用流密码来执行的。
45.如权利要求36所述的方法,其特征在于,使用所述密钥解密的操作是采用范围限制的流密码来执行的。
46.如权利要求336述的方法,其特征在于,所述密钥解密的操作是采用分组密码来执行的
47.一种系统,其特征在于,它包括:
在视频卡主表面的安全区域内提供加密数据的装置,其中所述主表面包括安全区域和非安全区域;
提供与所述安全区域相关联、可用于对加密数据进行解密的密钥的装置;
使用所述密钥对所述主表面安全区域内的加密数据进行解密的装置。
48.一种方法,其特征在于,它包括:
在视频卡主表面的安全区域内提供加密的数据,所述安全区域具有相关联的几何形状,其中所述主表面包括安全区域和非安全区域;
提供与所述安全区域相关联、且用于对加密数据进行解密的密钥;
将所述安全区域的几何形状通知视频卡上的解密器;
向所述解密器提供所述密钥;
用所述解密器对所述主表面安全区域内的加密数据进行解密。
49.如权利要求48所述的方法,其特征在于,所述通知操作响应于在显示器上显示的窗口执行并与正被拖拉到所述显示器的不同位置的安全区域相关联。
50.一种方法,其特征在于,它包括:
在视频卡主表面的安全区域内提供已加密的数据,其中所述主表面包括安全区域和非安全区域;
提供与所述安全区域相关联,且用于对所述加密的数据进行解密的密钥;
用所述密钥对所述主表面安全区域内的加密数据进行解密;
检测是否有任何数据已被修改。
51.如权利要求50所述的方法,其特征在于,在显示器上呈现所述位加密数据之前执行所述检测操作。
52.如权利要求50所述的方法,其特征在于,使用与所述加密数据相关联的验证信息执行所述检测操作。
53.如权利要求52所述的方法,其特征在于,所述验证信息包括安全数据格式,其中要求预定像素有预定值。
54.如权利要求50所述的方法,其特征在于,使用未加密数据的散列的散列比较执行所述检测操作。
55.如权利要求50所述的方法,其特征在于,通知经安全信道返回到加密实体。
CNB031452574A 2002-06-24 2003-06-24 保护视频卡输出的系统和方法 Expired - Lifetime CN100350395C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/178,804 2002-06-24
US10/178,804 US8155314B2 (en) 2002-06-24 2002-06-24 Systems and methods for securing video card output

Publications (2)

Publication Number Publication Date
CN1470998A CN1470998A (zh) 2004-01-28
CN100350395C true CN100350395C (zh) 2007-11-21

Family

ID=27733938

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031452574A Expired - Lifetime CN100350395C (zh) 2002-06-24 2003-06-24 保护视频卡输出的系统和方法

Country Status (14)

Country Link
US (2) US8155314B2 (zh)
EP (1) EP1378809A3 (zh)
JP (1) JP2004062885A (zh)
CN (1) CN100350395C (zh)
AU (1) AU2003204378B2 (zh)
BR (1) BR0301721A (zh)
CA (1) CA2427367A1 (zh)
MX (1) MXPA03004371A (zh)
MY (1) MY140378A (zh)
NO (1) NO20032888L (zh)
PL (1) PL360330A1 (zh)
RU (1) RU2327215C2 (zh)
TW (1) TW200401234A (zh)
ZA (1) ZA200303552B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102215254A (zh) * 2010-04-09 2011-10-12 英特尔公司 安全提供用户对计算机设备远程管理许可的会话密钥信息

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0212308D0 (en) * 2002-05-28 2002-07-10 Symbian Ltd Trusted user interface for a secure mobile wireless device
US8155314B2 (en) 2002-06-24 2012-04-10 Microsoft Corporation Systems and methods for securing video card output
CA2836758C (en) * 2003-05-23 2017-06-27 Roger D. Chamberlain Intelligent data processing system and method using fpga devices
US7636857B2 (en) 2004-05-24 2009-12-22 Interdigital Technology Corporation Data-mover controller with plural registers for supporting ciphering operations
WO2006034713A1 (en) * 2004-09-29 2006-04-06 Sagem Denmark A/S Secure display for atm
WO2006107777A2 (en) * 2005-04-01 2006-10-12 Mastercard International Incorporated Dynamic encryption of payment card numbers in electronic payment transactions
US8190918B2 (en) * 2006-11-13 2012-05-29 Disney Enterprises, Inc. Interoperable digital rights management
WO2008110985A1 (en) * 2007-03-13 2008-09-18 Nxp B.V. Encryption and decryption of a dataset in at least two dimensions
US20090172331A1 (en) * 2007-12-31 2009-07-02 Balaji Vembu Securing content for playback
JP5628831B2 (ja) * 2008-12-24 2014-11-19 ザ コモンウェルス オブ オーストラリア デジタルビデオガード
EP2432211B1 (en) * 2009-05-11 2017-04-26 Fujitsu Limited Image encryption/decoding device, method, and program
US9589159B2 (en) * 2009-06-26 2017-03-07 Intel Corporation Creating secure communication channels between processing elements
KR101295879B1 (ko) * 2009-08-19 2013-08-16 한국전자통신연구원 패스워드 해독 장치 및 그것의 패스워드 해독 방법
US8458788B2 (en) 2010-05-04 2013-06-04 Synaptics Incorporated System and method for authentication of input devices
US8693687B2 (en) * 2010-10-03 2014-04-08 Himax Media Solutions, Inc. Method and apparatus of processing three-dimensional video content
CN104011732B (zh) * 2011-12-30 2018-06-15 英特尔公司 双合成域高级加密标准存储器加密引擎
US20140067673A1 (en) * 2012-09-05 2014-03-06 Mads Lanrok Trusted user interface and touchscreen
CN103809671A (zh) * 2012-11-09 2014-05-21 辉达公司 图形卡及用于其的基板和核心板
US20140320527A1 (en) * 2013-04-30 2014-10-30 Microsoft Corporation Hardware glyph cache
US9111123B2 (en) 2013-06-28 2015-08-18 International Business Machines Corporation Firmware for protecting data from software threats
WO2017062541A1 (en) * 2015-10-06 2017-04-13 Carnegie Mellon University Method and apparatus for trusted display on untrusted computing platforms to secure applications
NZ744204A (en) * 2015-12-09 2024-05-31 Xingchang Zhou Data transmission method and data transmission apparatus
FR3048538B1 (fr) * 2016-03-03 2018-11-09 Ingenico Group Procede d'execution et de traitement de donnees, dispositif et programme d'ordinateur correspondant
US20190057639A1 (en) * 2017-08-17 2019-02-21 Shenzhen China Star Optoelectronics Semiconductor Display Technology Co., Ltd. Display device and driving method thereof
CN107526562A (zh) * 2017-08-17 2017-12-29 深圳市华星光电半导体显示技术有限公司 显示装置及其驱动方法
US10909926B2 (en) * 2018-05-08 2021-02-02 Apple Inc. Pixel circuitry and operation for memory-containing electronic display
CN111125113B (zh) * 2019-12-25 2020-09-15 中科三清科技有限公司 空气污染物数据的存储方法和装置
US11770385B2 (en) * 2019-12-31 2023-09-26 Paypal, Inc. Systems and methods for malicious client detection through property analysis

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12432A (en) * 1855-02-27 Henry
CA1238427A (en) 1984-12-18 1988-06-21 Jonathan Oseas Code protection using cryptography
US4962533A (en) * 1989-02-17 1990-10-09 Texas Instrument Incorporated Data protection for computer systems
GB8908399D0 (en) 1989-04-13 1989-06-01 British Telecomm Optical fibre back plane
JPH06501324A (ja) 1990-04-27 1994-02-10 スキャンディック・インターナショナル・プロプライエタリー・リミテッド スマートカード妥当性検証装置および方法
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5297206A (en) * 1992-03-19 1994-03-22 Orton Glenn A Cryptographic method for communication and electronic signatures
US5321749A (en) * 1992-09-21 1994-06-14 Richard Virga Encryption device
US5572235A (en) 1992-11-02 1996-11-05 The 3Do Company Method and apparatus for processing image data
US5577125A (en) * 1993-06-14 1996-11-19 International Business Machines Corporation Graphical manipulation of encryption
WO1995033239A1 (en) * 1994-05-26 1995-12-07 The Commonwealth Of Australia Secure computer architecture
US5881287A (en) * 1994-08-12 1999-03-09 Mast; Michael B. Method and apparatus for copy protection of images in a computer system
US5537467A (en) * 1994-08-23 1996-07-16 Bell Communications Research, Inc. Method for forwarding a call to a temporarily utilized portable telephone
DE69532434T2 (de) * 1994-10-27 2004-11-11 Mitsubishi Corp. Gerät für Dateiurheberrechte-Verwaltungssystem
US5727062A (en) * 1995-07-06 1998-03-10 Ritter; Terry F. Variable size block ciphers
US5859920A (en) * 1995-11-30 1999-01-12 Eastman Kodak Company Method for embedding digital information in an image
US5719937A (en) 1995-12-06 1998-02-17 Solana Technology Develpment Corporation Multi-media copy management system
JPH09259044A (ja) 1996-03-21 1997-10-03 Fuji Xerox Co Ltd 機密保護機能付き情報処理装置および機密保護方法
US6055314A (en) * 1996-03-22 2000-04-25 Microsoft Corporation System and method for secure purchase and delivery of video content programs
US5825877A (en) 1996-06-11 1998-10-20 International Business Machines Corporation Support for portable trusted software
US5825879A (en) * 1996-09-30 1998-10-20 Intel Corporation System and method for copy-protecting distributed video content
GB9704638D0 (en) * 1997-03-06 1997-04-23 Lsi Logic Corp Digital video broadcasting
US6421733B1 (en) * 1997-03-25 2002-07-16 Intel Corporation System for dynamically transcoding data transmitted between computers
US5898779A (en) * 1997-04-14 1999-04-27 Eastman Kodak Company Photograhic system with selected area image authentication
JPH10293722A (ja) 1997-04-17 1998-11-04 Taisei Corp データ保護装置
US6064764A (en) * 1998-03-30 2000-05-16 Seiko Epson Corporation Fragile watermarks for detecting tampering in images
US6047342A (en) * 1998-03-31 2000-04-04 Apple Computer, Inc. PC processing card for decoding operations
US6044187A (en) * 1998-04-01 2000-03-28 Duck; Gary S. Multi-port fiber optical device
US6424430B1 (en) * 1998-04-06 2002-07-23 Adobe Systems Incorporated Rendering of objects on graphical rendering devices as clipped images
KR100296958B1 (ko) * 1998-05-06 2001-09-22 이석우 블록 데이터 암호화 장치
US7233619B1 (en) * 1998-12-21 2007-06-19 Roman Kendyl A Variable general purpose compression for video images (ZLN)
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
US20020012432A1 (en) 1999-03-27 2002-01-31 Microsoft Corporation Secure video card in computing device having digital rights management (DRM) system
CN1187756C (zh) * 1999-05-28 2005-02-02 松下电器产业株式会社 半导体存储器卡、播放装置、记录装置、播放方法、记录方法、和计算机可读记录介质
US6731756B1 (en) * 1999-06-21 2004-05-04 Elisar Software Corporation, Inc. Method for securing video images
JP2001103280A (ja) 1999-09-30 2001-04-13 Canon Inc 情報処理方法とその装置
GB9923804D0 (en) * 1999-10-08 1999-12-08 Hewlett Packard Co Electronic commerce system
JP3725384B2 (ja) * 1999-11-24 2005-12-07 富士通株式会社 認証装置、認証方法及びその装置での処理をコンピュータに行なわせるためのプログラムを格納した記憶媒体
US7047305B1 (en) * 1999-12-09 2006-05-16 Vidiator Enterprises Inc. Personal broadcasting system for audio and video data using a wide area network
FR2806231B1 (fr) * 2000-03-08 2004-10-15 France Telecom Procede de transmission d'informations avec controle d'acces en filigrane numerique et dispositifs de mise en oeuvre
US7007304B1 (en) 2000-09-20 2006-02-28 Intel Corporation Method and apparatus to improve the protection of information presented by a computer
US6859832B1 (en) * 2000-10-16 2005-02-22 Electronics For Imaging, Inc. Methods and systems for the provision of remote printing services over a network
JP4153653B2 (ja) * 2000-10-31 2008-09-24 株式会社東芝 マイクロプロセッサおよびデータ保護方法
JP2002229859A (ja) * 2001-01-31 2002-08-16 Toshiba Corp ディスク記憶装置及び同装置に適用する認証方法
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
US6934389B2 (en) 2001-03-02 2005-08-23 Ati International Srl Method and apparatus for providing bus-encrypted copy protection key to an unsecured bus
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
US6848046B2 (en) * 2001-05-11 2005-01-25 Intel Corporation SMM loader and execution mechanism for component software for multiple architectures
US7007025B1 (en) 2001-06-08 2006-02-28 Xsides Corporation Method and system for maintaining secure data input and output
US20030017846A1 (en) * 2001-06-12 2003-01-23 Estevez Leonardo W. Wireless display
US6925180B2 (en) * 2001-09-27 2005-08-02 Sony Corporation PC card recorder
US7594265B2 (en) * 2001-11-14 2009-09-22 Ati Technologies, Inc. System for preventing unauthorized access to sensitive data and a method thereof
US7065651B2 (en) 2002-01-16 2006-06-20 Microsoft Corporation Secure video card methods and systems
US7206940B2 (en) * 2002-06-24 2007-04-17 Microsoft Corporation Methods and systems providing per pixel security and functionality
US8155314B2 (en) 2002-06-24 2012-04-10 Microsoft Corporation Systems and methods for securing video card output
US7293178B2 (en) * 2002-12-09 2007-11-06 Microsoft Corporation Methods and systems for maintaining an encrypted video memory subsystem
US7202875B2 (en) * 2005-04-22 2007-04-10 Microsoft Corporation Palette-based, multi-tint, named color methods and systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102215254A (zh) * 2010-04-09 2011-10-12 英特尔公司 安全提供用户对计算机设备远程管理许可的会话密钥信息

Also Published As

Publication number Publication date
BR0301721A (pt) 2004-08-24
PL360330A1 (en) 2003-12-29
CN1470998A (zh) 2004-01-28
TW200401234A (en) 2004-01-16
ZA200303552B (en) 2003-11-10
US20030235303A1 (en) 2003-12-25
AU2003204378A1 (en) 2004-01-15
US8155314B2 (en) 2012-04-10
AU2003204378B2 (en) 2009-05-07
NO20032888D0 (no) 2003-06-23
RU2327215C2 (ru) 2008-06-20
US20120166816A1 (en) 2012-06-28
NO20032888L (no) 2003-12-29
MY140378A (en) 2009-12-31
CA2427367A1 (en) 2003-12-24
MXPA03004371A (es) 2005-02-14
JP2004062885A (ja) 2004-02-26
US8738929B2 (en) 2014-05-27
EP1378809A3 (en) 2005-01-12
EP1378809A2 (en) 2004-01-07

Similar Documents

Publication Publication Date Title
CN100350395C (zh) 保护视频卡输出的系统和方法
US7206940B2 (en) Methods and systems providing per pixel security and functionality
US7337328B2 (en) Secure video card methods and systems
US7293178B2 (en) Methods and systems for maintaining an encrypted video memory subsystem
KR101030354B1 (ko) 그래픽 시스템에서 컴포넌트들의 인증을 위한 방법, 시스템, 컴퓨팅 디바이스, 및 컴퓨터 판독가능 매체
EP1343321A1 (en) Methods and systems for cryptographically protecting secure content in video memory
TW200929985A (en) Secure information storage system and method
US10686767B2 (en) Method for securing user data with DRM keys
US11270012B2 (en) Encryption key shares to different devices for rendering
KR20040000348A (ko) 비디오 카드 출력을 보호하기 위한 시스템 및 방법

Legal Events

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

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

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

Effective date of registration: 20150429

Address after: Washington State

Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Washington State

Patentee before: Microsoft Corp.

CX01 Expiry of patent term

Granted publication date: 20071121

CX01 Expiry of patent term