用于保护数据处理和传送安全的方法和设备的制作方法

文档序号:6579042阅读:174来源:国知局
专利名称:用于保护数据处理和传送安全的方法和设备的制作方法
技术领域
本发明涉及使用多处理器架构来保护数据处理安全以在例如宽带环境中保 护数据处理安全的方法和设备。
背景技术
实时、多媒体、网络应用正在变得越来越重要。这些网络应用需要诸如每 秒许多千兆比特数据之类的非常快速的处理速度。诸如因特网之类的传统网络 架构和在例如现在在Java模型中实现的编程模型已经使得非常难于达到这种处 理速度。
从原则上来说,针对单机(stand-alone )计算设计了传统计算机网络(例如, 在办公网络中所使用的局域网(LAN)和诸如因特网之类的全球网络)的计算 机和计算装置。在计算机网络上共享数据和应用程序(应用)不是这些计算机 和计算装置的原则性设计目标。通常还使用由许多不同制造商(例如,摩托罗 拉、英特尔、德州仪器、索尼等)所制造的许多种不同处理器来设计这些计算 机和计算装置。这些处理器的每一种都具有其自己特定的指令集和指令集架构 (ISA),即,其自己的汇编语言指令的特殊集和用于主要计算单元以及用于执 行这些指令的存储器单元的结构。因此,需要程序员理解每种处理器的指令集 和ISA以为这些处理器编写应用。在今天的计算机网络上的计算机和计算装置 的这种异构组合使得数据和应用的处理和共享变得复杂。而且,通常需要相同 应用的多个版本以适应这种异构环境。
连接到全球网络(特别是因特网)的计算机和计算装置的类型是非常广泛 的。除个人计算机(PC)和服务器之外,这些计算装置还包括蜂窝电话、移动计算机、个人数字助理(PDA)、机顶盒、数字电视等。在这些种类的计算机和 计算装置之间共享数据和应用存在严重的问题。
作为克服这些问题的努力已经使用了许多技术。这些技术包括高级接口和 复杂编程技术等。这些解决方案通常需要显著增加处理能力以进行实施。它们 还常常导致处理应用和在网络上传送数据所需要的时间的增加。
通常,将数据与对应的应用分离地址因特网上进行传送。这种方式避免了 与应用对应的所传送的数据的每个集一起来发送应用的需要。虽然这种方法将 所需要的带宽量最小化,但是其通常导致用户之间的失望。在客户计算机上可 能不能获得用于所传送的数据的正确应用或者最新的应用。这种方法还需要为
在网络上的处理器所使用的多个不同ISA和指令集编写每个应用的几个版本。
Java模型试图解决这种问题。该模型使用符合严格安全协议的小应用("小 应用程序(applet)")。将小应用程序从服务器计算机通过网络进行发送以由客 户计算机("客户机")运行。为了避免必须发送不同版本的相同的小应用程序 给使用不同ISA的客户机,所有Java小应用程序都在客户机的Java虚拟机上运 行。Java虚拟机是模仿具有Java ISA和Java指令集的计算机的软件。然而,该 软件运行在客户机的ISA和客户机的指令集上。针对客户机的每种不同ISA和 指令集提供Java虛拟机的版本。因此不需要每种小应用程序的多个不同版本。 每个客户机仅仅下载用于其特定ISA和指令集的正确Java虚拟机以运行所有 Java小程序。
虽然对必须为每种不同ISA和指令集编写不同版本的应用的问题提供了解 决方案,但是Java处理模型需要客户计算机上的额外层的软件。该额外层的软 件显著降低处理器的处理速度。这种速度的降低对于实时、多媒体应用特别显 著。下载的Java小应用程序还可能包含病毒、处理误操作等。这些病毒和误操 作可以破坏客户机的数据库并且导致其他损坏。虽然在Java模型中所使用的安 全协议试图通过实施软件"沙箱(sandbox)"(即Java小应用程序超过其就不能 写数据的客户机存储器中的空间)来克服这种问题,但是这种软件驱动的安全 模型在其实施中常常是不安全的,甚至需要更多的处理。
因此,在现有技术中需要用于在单元(cell)架构中保护数据的处理安全的 新方法和设备
发明内容
已经开发了新的计算机(和网络)架构来克服至少某些上述问题。根据这 种新的计算机架构,从公共计算机模块(或者单元)中构造计算机网络的所有 成员,即网络的所有计算机和计算装置。这种公共计算机模块具有相容结构并 且最好使用相同的ISA。网络的成员可以是例如使用计算机处理器的客户机、服
务器、PC、移动计算机、游戏机、PAD、机顶盒、电器、数字电视等设备。该 相容模块结构使得能够由网络成员有效、高速地处理应用和数据,以及在网络 上快速传送应用和数据。这种结构还简化了各种规模和处理能力的网络成员的 建造以及用于这些成员的处理的应用的准备。
新的计算机架构还使用新的编程模型,其提供用于在网络上传送数据和应 用并且用于在网络成员之间处理数据和应用。这种编程模型针对任何网络成员 的处理使用在网络上传送的软件单元。每个软件单元具有相同的结构并且可以 包含应用和数据两者。作为模块计算机架构所提供的高速处理和传送速度的结 果,可以快速地处理这些单元。用于应用的代码最好基于相同的公共指令集和 ISA。每个软件单元最好包含全局标识(全局ID )和描述该单元的处理所需要的 计算机资源量的信息。由于所有计算资源都具有相同的基本结构并且使用相同 的ISA,所以执行这种处理的特定资源可以位于网络上的任何位置并且进行动态 分配。
基本处理模块是处理器元件(PE)。 PE最好包括处理单元(PU)、直接存储 器存取控制器(DMA)和多个附连处理单元(attached processing unit, APU)(诸 如四个APU ),它们都在公共接口地址和数据总线上连接。PU和APU与共享的 动态随机存取存储器(DRAM)互动,该DRAM可以具有纵横架构(cross-bar architecture )。 PU调度和配合APU的数据和应用的处理。APU以并行和独立的 方式执行该处理。DMAC控制PU和APU对共享DRAM中所存储的数据和应 用的存取。
根据该模块结构,由网络成员所使用的PE数量基于该成员所需要的处理能 力。例如,服务器可以使用四个PE ,工作站可以使用两个PE,而PAD可以使 用 一个PE。分配用于处理特定软件单元的PE的APU的数量依赖于该单元内的 程序和数据的复杂度和量级。
多个PE可以与共享DRAM相关联,并且可以将DRAM分隔为多个部分, 这些部分中的每一个分隔为多个存储体(memory bank )。可以由存储体控制器 来控制DRAM的每个部分,而且PE的每个DMAC可以存取每个存储体控制器。在这种结构中,每个PE的DMAC可以存取共享DRAM的任何部分。
DRAM可以包括沙盒以提供针对正在由一个APU所处理的程序的数据对正 在由另一个APU所处理的程序的数据的损坏的安全级别。每个沙盒定义共享 DRAM的一个区域,特定APU或者APU组不能超出该区域读写数据。
虽然沙盒的使用提供针对数据破坏的某种安全措施,但是其不应对故意的 软件盗版的问题。由于在给定PE内的多个APU通过公共内部总线连接,所以 在一个APU上运行的软件可以由另一个APU监视。在宽带网络的情况中,最 好在给定PE内的两个和多个APU运行不同的应用程序。为了确保高系统灵活 性,最好允许这些软件程序从诸如不同软件开发^^司之类的不同的实体获得。 在某些实例下,软件开发公司可以保证其软件应用是安全的,而且不被复制或 者另外地监4见。
根据本发明的一个或多个方面,设备包括本地存储器;总线,可操作来 将信息携带到该本地存储器或者从该本地存储器中携带出信息; 一个或多个算 术处理单元,可以操作来处理数据并且可操作地连4矣到该本地存储器;以及安 全电路,可以操作来将该设备置于多个可操作模式中的至少一个中,包括该设 备和外部装置可以启动通过总线的、到或者来自存储器的信息传送的第一模式, 该设备和外部装置都不启动通过总线的、到或者来自存储器的信息传送的第二 模式,和该设备可以启动通过总线的、到或者来自存储器的信息传送而外部设 备不能启动通过总线的、到或者来自存储器的信息传送的第一模式的第三模式。
根据本发明的进一步一个或者多个方面,可以操作安全电路以将该设备置 于两种操作模式中的至少一种中,其中该两种操作模式包括以下之一(i)该设 备和外部装置可以启动通过总线的、到或者来自存储器的信息传送的第一;f莫式, 和该设备可以启动通过总线的、到或者来自存储器的信息传送而外部设备不能 启动通过总线的、到或者来自存储器的信息传送的第三模式;和(ii)该设备和 外部装置都不启动通过总线的、到或者来自存储器的信息传送的第二模式,以 及该第三模式。
该安全电路最好包括在该安全电路之外的装置不可存取的秘密数据区域, 而且该秘密数据区域包含第一密钥和第二密钥。该安全电路还最好包括该安全 电路之外的装置可以存取的可存取数据区域。进一步,该安全电路包括逻辑电 路,其可以操作以在该设备处于第二模式中时将第一密钥的复制件置于可存取 数据区域中。最好,将第一密钥和第二密钥在受控过程中存储在秘密数据区域中,从而在使用该设备之间维持安全性。
最好当该设备运行验证例程时该安全电路将该设备置于第二模式中,该例 程包括执行解密程序并且执行验证程序,该验证程序包括第二密钥的复制件, 而根据第一密钥已经加密了该验证程序。该设备执行解密程序,使得在可存取 数据区域中所包含的第 一密钥的复制件用于解密验证程序。
该安全电路的逻辑电路最好响应于验证程序的执行将第二密钥的复制件置
于可存取数据区域中;以及该逻辑电路进行关于在-睑证程序内所包含的第二密 钥的复制件是否匹配于在可存取数据区域中所包含的第二密钥的复制件的确定。
可以操作该安全电路以在验证程序内所包含的第二密钥的复制件匹配于可 存取数据区域中所包含的第二密钥的复制件时将该设备置于第三模式。
根据本发明的进一步的一个或多个方面,将多个上述设备放置在单装置中。
根据本发明的进一步的一个或多个方面,方法包括将设备置于多个可操作 模式中的至少一个中,其中该设备包括本地存储器;总线,可操作来将信息 携带到该本地存储器或者从该本地存储器中携带出信息; 一个或多个算术处理 单元,可以操作来处理数据并且可操作地连接到该本地存储器;以及安全电路, 可以操作来将该设备置于操作模式;以及多个操作^t式包括该设备和外部装置 可以启动通过总线的、到或者来自存储器的信息传送的第一模式,该设备和外 部装置都不启动通过总线的、到或者来自存储器的信息传送的第二模式,和该 设备可以启动通过总线的、到或者来自存储器的信息传送而外部设备不能启动 通过总线的、到或者来自存储器的信息传送的第一模式的第三模式。
根据本发明的进一步的一个或多个方面,设备包括主处理单元;多个附 连处理单元,每个包括本地存储器和译码单元,并且每个可以操作来进入普通 操模式或者安全操作模式;和共享存储器,其中当旁路解密单元的附连处理 单元中给定的一个处于普通模式时,该主处理单元能够启动共享存储器和该给 定附连处理单元之间的数据传送,以及该主处理单元不能(i)启动从该给定附 连处理单元到共享存储器的数据传送;或者(ii)当该给定附连处理单元处于安 全模式时,启动从共享存储器到旁路解密单元的该给定附连处理单元的数据传 送。
附连处理单元最好能够启动与共享存储器的数据传送,而不论它们处于普 通操模式还是安全操作模式中。可以操作附连处理单元以在硬件重置条件和开机条件中至少 一个时进入安全操;漢式。
每个附连处理单元最好包括包含基本上唯一的密钥的安全存储器,可以只 由该给定附连处理单元的解密单元的至少一个存取该存储器。每个附连处理单 元的解密单元最好使用密钥来解密从共享存储器传送到本地存储器的数据,这 种数据传送是当该给定附连处理单元处于安全搮模式时由主处理单元所启动 的。每个附连处理单元与基本上唯一的ID关联,至少一个该给定附连处理单元 是外部的实体和该设备可以知道该ID。
最好由该设备外部的安全实体加密经加密的数据,授权该安全实体使用该
给定附连处理单元的密钥。该安全实体可以包括包含参与的附连处理单元的ID 和密钥的数据库,用于给定附连处理单元的每个ID和密钥彼此关联。在不安全 实体提供与密钥关联的ID给该安全实体之后,利用用给定附连处理单元的密钥, 该安全实体加密从不被授权使用给定附连处理单元的密钥的不安全实体接收来 的数据。
最好,该安全实体可以操作来将加密的数据提供给不安全实体;可以操作 不安全实体以提供加密的数据给该设备以存储在共享存储器中;可以操作主处 理单元以启动从共享存储器到给定附连处理单元的加密数据的传送,使得加密 的数据输入到解密单元中;以及可以操作给定附连处理单元的解密单元以使用 给定附连处理单元的密钥来解密所加密的数据,使得数据存储在给定附连处理 单元的本地存储器中。
替代地,不被授权来使用给定附连处理单元的密钥的不安全实体提供加密 的数据给安全实体,并且将与给定附连处理单元相关联的ID^是供给安全实体。 该安全实体最好使用第二对称密钥来解密不安全实体所提供的经加密的数据, 并且使用与从不安全实体接收来的ID相关联的给定附连处理单元的密钥来加密 数据。
不安全实体最好使用第一对称密钥来加密给定附连处理器单元的数据和
ID,并且将经加密的数据/ID提供给安全实体。最后,可以操作安全实体以使用 第二对称密钥加密经加密的数据,并且提供经过加密的经加密数据给不安全实 体;可以操作不安全实体来使用第一对称密钥解密经过加密的经加密数据以获 得使用给定附连处理单元的密钥所产生的经加密数据,并且提供经加密的数据 给设备以存储在共享存储器中;可以操作主处理单元以启动从共享存储器到给 定附连处理单元的加密数据的传送,使得将经加蜜的数据输入到解密单元;以及,可以操作给定附连处理单元的解密单元以使用给定附连处理单元的密钥来 解密经加密的数据,使得数据存储在给定附连处理单元的本地存储器中。
在进一步的替代方式中,数据是解密程序;不净皮授权使用给定附连处理单 元的密钥的不安全实体使用第一对称密钥加密该解密程序,提供经加密的解密
程序给安全实体,并且提供与给定附连处理单元相关联的ID给安全实体;以及, 安全实体使用第二对称密钥解密由不安全实体所提供的经加密的解密程序,并 且使用与从不安全实体接收来的ID相关联的给定附连处理单元的密钥来加密解 密程序和第二对称密钥。不安全实体最好使用第一对称密钥来加密解密程序和 给定附连处理单元的ID,并且提供经加密的解密程序/ID给安全实体。
最好,安全实体可以操作来使用第二对称密钥加密经加密的解密程序和第 二对称密钥,并且提供经过加密的经加密的解密程序/第二对称密钥给不安全实 体;不安全实体可以操作来使用第一对称密钥对经过加密的经加密的解密程序/ 第二对称密钥进行解密,以获得使用给定附连处理单元的密钥所产生的经加密 的解密程序/第二对称密钥,并且提供经加密的解密程序/第二对称密钥给设备以 存储在共享存储器中;主处理单元可以操作来启动经加密的解密程序/第二对称 密钥从共享存储器到给定附连处理单元的传送,以便经加密的解密程序/第二对 称密钥输入到解密单元;以及,给定附连处理单元的解密单元可以操作来使用 给定附连处理单元的密钥对经加密的解密程序/第二对称密钥进行解密,以便解 密程序和第二对称密钥存储在给定附连处理单元的本地存储器中。
进一步,不安全实体可以操作来使用第一对称密钥加密数据,并且将经加 密的数据提供给设备以存储在共享存储器中。给定附连处理单元能够将来自共 享存储器的经加密的数据接收到旁路解密单元的本地存储器中。当从给定存储 器将经加密的数据接收到本地存储器时,给定附连处理单元可以处于普通模式 或者安全模式。给定附连处理单元可以操作来使用解密程序和第二对称密钥对 经加密的数据进行解密。主处理单元可以操作来启动经加密的数据从共享存储 器到旁路解密单元的给定附连处理单元的本地存储器的传送。
当结合附图理解下面描述时,本发明的其他方面、特点和优点将对于本领 域的技术人员显而易见。


为了示例的目地,在附图中示出了现在优选的形式,但是应该理解,本发明不限于所示的确切安排和措施。
图1示出了根据本发明的一个或者多个方面的示例计算机网络的总体架构;
图2示出了根据本发明的一个或者多个方面的多处理器系统的框图; 图3是示出根据本发明的一个或者多个方面的图2的系统的安全电路的结 构的框图4是示出根据本发明的一个或者多个方面,可以由图2的系统执行以实 现验证例程的过程步骤的一部分的流程图5是示出根据本发明的一个或者多个方面,可以由图2的系统执行以实 现验证例程的过程步骤的一部分的流程图6是示出根据本发明的一个或者多个方面,可以由图2的系统执行以实 现验证例程的过程步骤的 一部分的流程图7是示出可以用于实施本发明的一个或者多个方面的优选处理器元件 (PE)的冲匡图8是示出才艮据本发明的进一步一个或多个方面可以适应的图7的系统的
示例子处理单元(SPU)的结构的框图9是示出根据本发明的进一步一个或者多个方面可以适应的图7的系统
的示例处理单元(PU)的结构的框图IO是才艮据本发明的一个或者多个方面具有安全特点的处理器的框图; 图ll是使用图IO的处理器以使用本发明的特定安全特点的系统的框图; 图12是使用图10的处理器以使用根据本发明的进一步的安全特点的系统
的框图13是使用图10的处理器以使用根据本发明的再进一步的安全特点的系 统的框图14示出图13的系统的进一步细节;
图15是使用图10的处理器以使用根据本发明的再进一步的安全特点的系 统的框图16是使用图10的处理器以使用根据本发明的再进一步的安全特点的系 统的框图17示出图16的系统的进一步细节;和
图18是使用根据本发明的进一步的一个或多个方面的多个处理器的系统的框图。
具体实施例方式
在图1中示出了才艮据本发明的计算机系统1的总体架构。系统1包括多个
计算机和计算装置连接到其上的网络4。网络4可以是LAN、诸如因特网之类 的全球网络或者其他任何计算才几网络。
连接到网络4的计算机和计算装置(网络的"成员")包括(例如)客户计 算机6、服务器计算机8、个人数字助理(PDA) 10、数字电视(DTV) 12和其 他有线或者无线计算机和计算装置。由网络4的成员所使用的处理器通过相同 的公共计算模块进行构建。这些处理器还最好都具有相同的ISA,并且根据相同 的指令集执行处理。在任何特定处理器中所包括的模块的数量依赖于该处理器 所需要的处理能力。
例如,由于系统1的服务器8比客户机6执行更多的数据和应用处理,所 以服务器8包含比客户机6更多的计算模块。另一方面,PDA10在本例中执行 少量处理。因此,PDA 10包含最少数量的计算模块。DTV 12执行客户机6和 服务器8之间的处理量级。因此,DTV12包含介于客户机6和服务器8的计算 模块数量之间的计算模块数量。如下所讨论的那样,每个计算模块包含处理控 制器和用于对在网络4上所传送的数据和应用执行并行处理的多个相同处理单 元。
系统1的这种同构配置有助于适应性、处理速度和处理效率。因为系统1 的每个成员都使用一个或多个(或者某部分的)相同计算模块来执行处理,所 以执行数据和应用的实际处理的特定计算机或者计算装置不重要。而且,特定 应用和数据的处理可以在网络的成员之间共享。通过唯一地标识包括在整个系 统中由系统1所处理的数据和应用的单元,可以将处理结果传送到请求处理的 计算机或者计算装置,而不论发生处理的位置。因为执行这种处理的模块具有 共同的结构而且使用共同的ISA,所以避免了在添加软件层以处理器之间的兼容 的计算负担。这种架构和编程模型有助于执行例如实时、多媒体应用所需要的 处理速度。
为了利用系统1所改进的处理速度和效率,可以将该系统所处理的数据和 应用打包唯一标识的、统一格式化的软件单元2中。每个软件单元2包含,或 者可以包含应用和数据两者。每个软件单元还包含ID以全局标识在整个网络4 和系统1中的单元。软件单元结构的这种一致性和软件单元在整个网络中的唯一标识有助于在网络的计算机或者计算装置上对应用和数据进行处理。例如,
客户机6可以配置(formulate )软件单元2,但是因为客户机6的有限处理能力, 其将该软件单元传送到服务器8以进行处理。因此,软件单元2可以在整个网 络4上进行迁移以根据网络4的处理资源的可用性进行处理。
系统1的处理器和软件单元2的同构结构还避免了现今异构网络的许多问 题。例如,避免了低效编程模型,该模型使用任何指令集(例如,诸如Java虚 拟机之类的虚拟机)寻求允许在任何ISA对应用进行处理。因此,系统1可以 比传统网络更加有效和更高效率地实施宽带处理。
参照图2,示出处理系统100的至少一部分,其可以被适应来执行本发明的 一个或者多个特点。为了简洁和清楚的目地,将把图2的框图在这里描述并且 称为所示的处理系统100,但是应该理解,这种描述可以以相等的效力应用于方 法的各个方面。
处理系统100包括多个处理器102A、 102B、 102C和102D,应该理解,在 不偏离本发明的精神和范围的情况下,可以使用任何数量的处理器。处理系统 IOO还可以包括多个本地存储器104A、 104B、 104C、 104D和共享存储器106。 最好至少将处理器102、本地存储器104和共享存储器106 (直接或者间接地) 通过总线系统108彼此连接,该总线系统108可以操作来根据适当的协议向或 者从每个部件传送数据。
每个处理器102可以具有类似的构造或者不同的构造。可以利用任何已知 技术来实施该处理器,所述已知技术能够从共享存储器106 (或者系统)请求数 据并且操控数据以实现所期望的结果。例如,处理器102可以使用任何已知《敖 处理器来实施,该微处理器能够执行软件和/或固件,其包括标准微处理器、分 布式微处理器等。通过示例, 一个或多个处理器102可以是图形处理器,其能 够请求和操控诸如像素数据之类的数据(包括灰度级信息、颜色信息、紋理数 据、多边形信息、视频帧信息等)。
系统IOO的一个或多个处理器102可以充当主(或者管理)处理器的角色。 主处理器可以调度和协调其他处理器对数据的处理。
共享存储器106最好是通过存储器接口电路(未示出)连接到处理器102 的动态随机存取存储器(DRAM)。虽然共享存储器106最好是DRAM,但是还 可以使用例如静态随机存取存储器(SRAM)、磁随机存取存储器(MRAM)、 光学存储器、全息存储器之类的其他装置来实施存储器106。
18每个处理器102最好包括处理器核以及在其中执行程序的一个相关联的本 地存储器104。这些部件可以集成地放置在公共半导体基底上,也可以根据设计 者的要求而分离地放置。最好使用处理流水线(pipeline)来实施处理器核,在 该处理流水线中以流水线方式处理逻辑指令。虽然可以将流水线分割为处理指 令的任何数量的级,但是流水线通常包括取回一个或多个指令、对指令进行译 码、检查指令之间的依赖性、发布指令和执行指4^。从这方面来说,处理器核 可以包括指令緩冲器、指令译码电路、依赖性检查电路、指令发布电路和执行 级。
每个本地存储器104经由总线连接到其相关联的处理器核102,并且最好与 处理器核位于相同的芯片(相同的半导体基底)上。本地存储器104最好不是 传统的硬件高速緩冲存储器,这是因为不存在用以实施硬件高速緩冲存储器功 能的芯片内(on-chip)或者与芯片外(off-chip)硬件高速緩存电路、高速緩冲 寄存器、高速緩冲存储器控制器等。因为芯片上的空间通常有限,所以本地存 储器的大小可以比共享存储器106小得多。
处理器102最好提供数据存取请求以通过总线系统108将数据(其可以包 括程序数据)从共享存储器106复制到它们相应的本地存储器104,以进行程序 执行和数据操控。帮助数据存取的这种机制可以利用例如直接存储器存取 (DMA)技术之类的任何已知技术来实施。最好由存储器接口电路来执行这种 功能。
参照图3, 一个或多个存储器102还最好包括安全电路150,其可以进行操 作以将处理器102置于多个操作模式中的至少一个中。安全电路150包括秘密 数据区域152、可存取数据区域154和逻辑电路156。最好在安全电路150之外 的任何装置都不能存取秘密数据区域152。在安全电路150以外的装置最好可以 存取可存取数据区域154。可以将秘密数据区域152和/或可存取数据区域154 实施为本地存储器106的相应部分、相应寄存器、和或诸如ROM之类的其他相 应存储装置。
最好,在使用处理器102之前的受控过程中,将第一密钥KEY1和第二密 钥KEY 2存储在安全电路150的秘密数据区域152中,以在该区域中维持安全 性。确实,考虑将利用KEY 1和KEY2来验证处理器102并且将其确定为信任 装置。因此,最好当处理器102在使用中或者在使用之前(例如在制造期间), KEY 1和KEY 2保持秘密状态并且在授权方的控制下。最好将秘密数据区域152、可存取数据区域154和逻辑电路156通过连接线 158彼此连接,可以使用总线配置来实施该连接线158。最好通过一条或者多条 数据线160将逻辑电路156连接到寄存器,该数据线160也可以使用总线配置
来实施。
如上所述,最好安全电路150可以操作来将处理器102置于多个搡作模式 中的一个中。这些模式可以包括第一模式(普通模式),其中处理器102和任 何外部装置可以启动信息到或者从处理器102的传送,例如,到或者从本地存 储器104的信息传送。操作模式还最好包括第二模式(隔离模式),其中处理器 102和任何外部装置都不可以启动到或者从处理器102的信息传送。操作模式还 最好包括第三模式(安全模式),其中处理器102可以启动到或者从处理器102 的信息传送,^f旦是任何外部装置都不可以启动到或者v^人处理器102的信息传送。
可以参照图4-6来更好地理解安全电路150的操作,图4 - 6是示出根据 本发明的处理器102的特定安全性能力的流程图。从这方面来说,假设处理器 102对于操作的第一操作模式即普通操作模式是默认的(动作200)。回忆在第 一模式中,处理器102和任何外部装置或(诸如另一个处理器之类的)装置可 以启动到或者从处理器102的本地存储器104的信息传送。注意,在本发明的 替代实施方式中,处理器102在初始化时(例如,开机)不可以进入到操作的 第 一模式中,或者只可以短时间地进入到该模式中以有利于将在下面讨论的第 二或者第三操作模式。
在动作202,处理器102可以运行验证例程以获得信任状态。可以通过从处 理器102上运行的应用程序的调用或者通过从在处理器102外部执行的程序的 调用来启动验证例程(动作202)。在本发明的替代实施方式中,作为默认情况, 处理器102可以在初始化或者在其之后马上运行验证例程,而不必要求来自应 用程序的调用。响应于启动验证例程,处理器102最好执行解密程序。注意, 可以从其中放置处理器102的模块内的适当存储器获得解密程序,或者可以从 模块外部的源获得该解密程序。这种外部源的例子包括可以在其中放置模块的 较大系统中包含的适当存储器,或者诸如执行管理功能等的服务器8 (图1 )之 类的连接到网络4的另一个装置。在本发明的一种或者多种实施方式中,解密 程序可以包含在诸如闪存ROM之类的安全非易失ROM中。
在动作206,在处理器102执行解密程序之前、期间或者作为其结果,处理 器102最好进入到操作的第二操作模式即隔离操作模式。回忆在第二操作模式中,处理器102或者任何外部装置都不可以启动到或者从本地存储器104的信 息传送。
在动作208,处理器102最好接收在验证例程期间所使用的验证例程。注意, 处理器102接收经加密的验证程序时的定时是不严格的,确实,可以在执行验 证例程之前或期间的任何适当时间接收经加密的验证程序。最好根据KEY 1来 加密验证程序,使得仅仅能够以被授权的方式利用该程序。进一步,验证程序 最好包括标识验证程序的KEY2。例如,KEY2可以是序列号、散列结果等。
最好,将经加密的验证程序存储在处理器102、包含处理器102的模块内的 适当存储器中,或者存储在处理器102或者模块外部的存储器中。最好将经加 密的验证程序存储在包含处理器102的模块以外但是在其中包含该模块的装置 内的存储器中。还最好由授权实体在受控过程中执行在适当存储器中的验证程 序的加密及其存储。确实,最好在所有时候都维持验证程序的完整性以确保在 验证处理器102及其任何程序中该验证程序的使用是有效的。在本发明的一种 或者多种实施方式中,验证程序可以包含在诸如闪存ROM之类的安全非易失 ROM中。
在动作210,解密程序的执行最好使得KEY 1的安全复制件从秘密数据区 域152读取并且存储在安全电路150内的可存取数据区域154中。通过示例的 方式,最好可以操作逻辑电路156以响应于在处理器102的寄存器(未示出) 内的特定数据的存在,将KEY 1的复制件从秘密数据区域152传送到可存取数 据区域154。由于处理器102处于第二操作模式即隔离操作模式中,所以可存取 数据区域154内的KEY 1的复制件的存在不表示安全的破坏。确实,处理器102 或者任何外部设备都不可以启动通过本地存储器104等将KEY l传送出处理器 102。
在动作212,解密程序最好利用KEY 1来解密经加密的验证程序,使得其 可以由处理器102执行。在执行验证程序期间,最好将在秘密数据区域152内 所包含的KEY 2的复制件写入到可存取数据区域154 (动作214 )。通过示例的 方式,逻辑电路156可以操作来响应于根据-验证程序可能写入到寄存器中的特 定数据,而将KEY2的复制件从秘密数据区域152传送到可存取数据区域154。
在动作216,最好进行关于可存取数据区域154内的KEY 2的复制件是否 匹配于验证程序内所包含的KEY 2的复制件的确定。回忆验证程序包含KEY 2 的复制件,当解密验证程序时使得其可用(动作212)。通过示例的方式,可以
21将验证程序内所包含的KEY 2的复制件临时存储在本地存储器104中,或者根 据其自己的验证程序的执行而写入到可存取数据区域154中。再次,这不表示 安全性的破坏,这是因为在该过程期间处理器处于隔离模式,而且因此,在处 理器102之外的非授权装置都不可以获得KEY2的复制件。
如果在验证程序中所包含的KEY 2的复制件不匹配于从秘密数据区域152 获得的KEY 2的复制件,则验证处理器102的过程终止(动作218)。然而当 KEY2的这些复制件匹配时,最好清除在可存取数据区域154中所包含的KEY 1 和KEY2的复制件,而且处理器102最好进入第三操作模式即安全操作模式(动 作220)。通过示例的方式,逻辑电路156可以从可存取数据区域154中清除KEY 1和KEY2的密钥,并且可以使得处理器102进入到第三安全操作模式。
回忆在第三操作模式即安全操作模式中,处理器102可以启动到或者从本 地存储器104的信息传送。换句话说,在第三操作模式即安全操作模式中,处 理器102可以启动到或者从处理器102的信息传送,但是处理器外部的任何装 置都不能启动这种数据传送。 一旦处理器102进入到第三操作模式即安全操作 模式,就认为其是能够执行操作和操控数据的信任装置,而不必担心非授权实 体可能获得这种数据。确实,如没有处理器102自己启动,甚至其他处理器也 不能获得对处理器102内的数据的存取权。
有利地,信任处理器102可以提供许多有用功能,诸如在图1中所示的分 布系统中的那些。这些功能包括提供具有只能被授权装置存取的存储器区域的 安全外部存储器控制器、只可以由授权装置修改的安全时钟装置、信任请求机 制和能够(例如,使用基于7>钥的验证等)验证引导代码的安全处理元件。
冲艮据本发明的一个和多个方面,包括主处理器的其他处理器102可以使用 信任处理器102以执行解密操作。通过示例的方式,处理器102之一可以寻求 具有由信任处理器102所解密的主存储器106中所存储的数据。因此,处理器 可以发送指示在主存储器106中数据所位于的至少一个位置和指示要执行的解 密例程的参数的请求给信任处理器102。(替代地,解密例程可以被预定因此可 以省略这些参数)。响应于该请求信任处理器102可以将加密数据从主存储器106 中读取到其本地存储器104中,并且执行解密过程。如果在其他处理器102的 请求之前信任处理器102不具有解密密钥(诸如KEY 1或者KEY2 ),则最好也 由请求处理器102提供这种解密密钥或者关于如何获得这种密钥的信息。然后 最好将解密数据写回到主存储器106和/或写入到请求处理器102的本地存储器104中。
现在将提供对用于多处理器系统的优选计算机架构的描述,该架构适合于 执行这里所讨论的一个或者多个特点。在一种或多种实施方式之外,可以将多 处理器系统实施为可以操作用于侧重于媒体的应用(例如,游戏系统、家用终 端、PC系统、服务器系统和工作站)的单机和/或分布处理的单个芯片解决方案。 在诸如游戏系统和家用终端之类的某些应用中,可能需要实时计算。例如,在 实时、分布式游戏应用中,必须足够快速地执行网络图像解压、3D计算机图形、 音频产生、网络通信、物理仿真和人工智能过程中的一个或多个,以将实施体 验的感觉提供给用户。因此,在多处理器系统中的每个处理器必须在短的并且 可预测的时间中完成任务。
至此,并且根据这种计算机架构,多处理计算机的所有处理器都从公共计 算机模块(或者单元)中构建。这种公共计算模块具有相容结构并且最好使用 相同指令集架构。可以由一个或者多个使用计算机处理器的客户机、服务器、 PC、移动计算机、游戏机、PDA、机顶盒、电器、数字电视等形成多处理计算 机系统。
如果需要,多个计算机系统还可以式网络的成员。相容模块结构使得多处 理计算机系统能够进行对应用和数据的有效高速的处理,而且如果使用网络, 还能够进行通过网络的对应用和数据的快速传送。这种结构还简化了各种大小 和处理能力的网络的成员的建构以及这些成员处理应用的准备。
参照图7,基本处理模块式处理器元件(PE)300。 PE 330包括I/O接口 302、 处理器单元(PU) 304和多个子处理单元308,即,子处理单元308A、子处理 单元308B、子处理单元308C和子处理单元308D。本地(或者内部)PE总线 312在PU 304、子处理单元308和存储器接口 311之间传送数据。本地PE总线 312可以具有例如传统架构,或者可以被实施为分组交换网络。如杲实施为分组 交换网络,虽然需要更多硬件,但是增加了可用带宽。
可以使用用于实施数字逻辑的各种方法来构建PE 300。然而,最好将PE 300 构建为在硅基底上使用互补金属氧化物半导体(CMOS )的单个集成电路。用于 基底的替代材料包括砷化镓、砷化镓铝和其他使用各种掺杂材料的所谓m-B化 合物。PE 300还可以使用例如快速单通量量子(rapid single-flux-quantum, RSFQ ) 逻辑的超导材料来实施。
PE 300通过高带宽存储器连接316与共享(主)存储器314紧密关联。虽然存储器314最好是动态随机存取存储器(DRAM),但是还可以使用例如静态 随机存取存储器(SRAM)、磁随机存取存储器(MRAM)、光存储器、全息存 储器等的其他装置来实施。
PU 304和子处理单元308最好每个都连接到包括直接存储器存取DMA功 能的存储器流控制器(MFC),其与存储器接口 311组合有助于DRAM 314和子 处理单元308和PE 300的PU 304之间的数据传送。注意,DMAC和/或存储器 接口 311可以关于子处理单元308和PU 304集成地或者分离地放置。确实, DMAC功能和/或存储器接口 311的功能可以与子处理单元308和PU 304的一 个或者多个(最好全部)进行集成。还要注意,DRAM 314可以关于PE 300集 成或者分离地放置。例如,如所示图示所暗示的那样,可以与芯片分离地放置 DRAM 314,或者可以以集成方式将DRAM 314力文置在芯片上。
PU 304可以是例如能够对数据和应用进行单机处理的标准处理器。在操作 中,PU 304最好调度和协调子处理单元对lt据和应用的处理。子处理单元最好 是单指令、多数据(SIMD)处理器。在PU 304的控制下,子处理单元以并行 和独立的方式对这些数据和应用执行处理。最好使用PowerPC核来实施PU 304, 其是使用简化指令集计算(RISC )技术的微处理器架构。RISC使用简单指令的 组合来执行更加复杂的指令。因此,用于处理器的定时可以基于更加简单和快 速的方式,使得微处理器能够以给定时钟速度执行更多指令。
注意,可以通过充当调度和协调子处理单元对数据和应用进行的处理的主 处理单元角色的子处理单元308之一来实施PU304。进一步,在处理器元件300 内可以实施多于一个PU。
根据该模块结构,由特定计算机系统所使用的PE 300的数量基于系统所需 要的处理能力。例如,服务器可以使用四个PE300,工作站可以使用两个PE300 而PDA可以使用一个PE 300。分配来处理特定软件单元的PE 300的子处理单 元的数量依赖于单元内程序和数据的复杂度和量级。
图8示出了子处理单元(SPU) 308的优选结构和功能。SPU308架构最好 填补通用处理器(其被设计来在许多应用上实现高的平均性能)和特殊目的处 理器(其净皮设计来在单个应用上实现高性能)之间的空白。设计SPU 308以实 现关于游戏应用、媒体应用、宽带系统等的高性能,并且提供高级控制给实时 应用程序员。SPU308的某些能力包括图形几何流水线、表面细分、快速傅立叶 变换、图像处理关键字、流处理、MPEG编码/译码、加密、解密、装置驱动器
24扩展、建模、游戏物理(game physics )、内容创建和音频合成及处理。
子处理单元308包括两个基本功能单元,即SPU核310A核存储器流控制 器(MFC ) 31 OB 。 SPU核31 OA执行程序执行、数据操控等,而MFC31 OB执行 与系统的SPU核310A和DRAM 314之间的数据传送有关的功能。
SPU核310A包括本地存储器350、指令单元(IU) 352、寄存器354、 一 个或多个浮点执行级356以及一个或多个定点执行级358。本地存储器350最好 使用诸如SRAM之类的单端口随机存取存储器来实现。虽然大多数处理器通过 使用高速緩存来减少对存储器的延迟,但是SPU核310A实施相对小的本地存 储器350而不是高速緩存。确实,为了将相容和可预测的存储器存取延迟提供 给实时应用(和在这里所提及的其他应用)的程序员,最好不用SPU308A之内 的高速緩存架构。高速緩存存储器的高速緩存命中/错过(hit/miss)特征导致易 失性存储器存取时间,其在几个周期到几百个周期之间变动。这种易失性破坏 了在例如实时应用编程中所期望的存取时间可预测性。可以通过将DMA传送与 数据计算进行重叠在本地存储器SRAM 350中实现延迟隐藏(latency hiding )。 这提供高级控制给实时应用的编程。因为与DMA传送关联的延迟和指令开销超 过用于高速緩存错过的延迟的,所以当DMA传送大小足够大并且足够可预测 (例如,在需要数据之前发布DMA命令)时,SRAM本地存储器方法更具优势。 在给定的一个子处理单元308上运行的程序使用本地地址引用所管理的本 地存储器350,然而,本地存储器350的每个位置也都分配有总体系统的存储器 映像图之内的实际地址(RA )。这允许优先软件将本地存储器350映射到过程的 有效地址(EA),以帮助一个本地存储器350和另一个本地存储器350之间的 DMA传送。PU304还可以使用有效地址来直接存取本地存储器350。在优选实 施方式中,本地存储器350包含356千 字节的存储量,并且寄存器352的容量 是128 x 128比特。
SPU核304最好使用处理流水线来实施,在该处理流水线中以流水线方式 来处理逻辑指令。虽然可以将流水线分割为在其上可以处理指令的任何数量的 级,但是流水线通常包括取回一个或多个指令、译码指令、检查指令之间的依 赖性、发布指令和执行指令。从这方面来说,IU 352包括指令緩沖器、指令译 码电路、依赖性检查电路和指令发布电路。
指令緩存器最好包括多个寄存器,这些寄存器连接到本地存储器350并且 操作来临时存储它们取回的指令。指令緩冲器最好进行操作来使得所有指令将寄存器保留为一个组,即,基本上同时地。虽然指令緩存器可以是任何大小, 但是最好其大小不大于两个或三个寄存器。
通常,译码电路分解指令并且产生执行对应指令的功能的逻辑微操作。例 如,逻辑微操作可以指定算术和逻辑操作,装载和存储操作、寄存器源操作数
和/或中间数据操作数到本地存储器350。译码电路还可以指示指令使用哪些资 源,例如目标寄存器地址、结构资源、功能(function)单元和/或总线。译码电 路可以提供指示其中需要资源的指令流水线级的信息。最好操作指令译码电路 以基本上同时地译码码与指令緩存器的寄存器数量相等数量的指令。
依赖性检查电路包括数字逻辑,其执行测试以确定给定指令的操作数是否 依赖于流水线中其他指令的操作数。如果是,则不应该执行给定指令,直到这 种其他操作数被更新(例如,通过允许其他指令完成执行)为止。最好依赖性 检查电路同时确定从译码器电路112发送来的多个指令的依赖性。
指令发布电路可以操作来将指令发布给浮点执行级356和/或定点执行级
358。
最好将寄存器354实施为相对大的统一的寄存器文件,例如128个条目的 寄存器文件。这允许深度流水线化的高频实施而不要求寄存器重新命名以避免 寄存器饥饿( starvation )。重新命名硬件通常在处理系统中消耗非常大部分的区 域和能力。因此,当通过软件循环解开(unrolling)或者其他交织技术来覆盖延 迟时,可以实现有利的操作。
最好,SPU核310A是超标量架构,使得每个时钟周期可以发布多于一个 指令。SPU核310A最好作为超标量操作到与从指令緩存器发送来的同时指令数 量对应的程度,比如在2和3之间(意味着每个时钟周期发布两个或者三个指 令)。依赖于所需要的处理能力,可以使用更多或更少数量的浮点执行级356和 定点执行级358。在优选实施方式中,浮点执行级356在每秒32十亿浮点运算 的速度上进行操作(32 GFLOPS ),而且定点执行级358在每秒32十亿运算的 速度上操作(32GOPS)。
MFC310B最好包括总线接P单元(BIU) 364、存储器管理单元(MMU) 362和直接存储器存取控制器(DMAC )360。在除了 DMAC 360的情况下,MFC 310B最好在与SPU核310A和总线312相比一半频率( 一半速度)上运行以满 足低功率散热设计目标。MFC 310B可以操作来处理从总线312来到SPU 308 的数据和指令,提供地址转换给DMAC,以及用于数据相干的监听操作(snoopoperation )。 BIU 364在总线312与MMU 362和DMAC 360之间提供接口 。因 此,SPU 308 (包括SPU核310A和MFC 310B )和DMAC 360物理和/或逻辑 地连接到总线312。
最好MMU 362可以操作来将有效地址(从DMA命令中取得)转换为用于 存储器存取的实际地址。例如,MMU362可以将有效地址的较高位转换位实际 地址。然而,较低位最好是不可转换的并且被从逻辑和物理上进行考虑以用来 形成实际地址和请求对存储器的存取。在一种或者多种实施方式中,MMU 362 可以基于64位存储器管理模型实施,并且可以提供具有4K-、 64K-、 1M-和16M-字节页大小和256MB段大小的264字节的有效地址空间。最好,可以操作MMU 362以支持多至265字节的虚拟存储器,和用于DMA的242 (4兆兆字节)字节 的物理存储器。MMU 362的硬件可以包括8入口完全相关联的SLB( 8-entry, flilly association SLB )、 256入口 4向设置相关联d TLB和用于TLB的4 x 4代替管理 表(RMT)-用于硬件TLB错过处理。
DMAC 360最好可以操:作来管理来自SPU核310A和诸如PU 304和/或其 他SPU之类的一个或多个其他装置的命令。可能存在三种类别的DMA命令 放置命令,其操作来将数据从本地存储器350移动到共享存储器314;取得命令, 其操作来将数据从共享存储器314移动到本地存储器;和存储控制命令,其包 括SLI命令和同步命令。同步命令可以包括基本(atomic )命令、发送信号命令 和专用障碍命令。响应于DMA命令,MMU 362将有效地址转换为实际地址, 并且实际地址被转发到BIU 364。
SPU核31 OA最好使用信道接口和数据接口以同DMAC 360内的接口通信 (发送DMA命令、状态等)。SPU核310A将DMA命令通过信道接口发送到 DMAC 360中的DMA队列。 一旦DMA命令处于DMA队列中,就由DMAC 360 内的发布和完成逻辑来处理它。当完成用于DMA命令的所有总线交易时,通过 信道接口将完成命令发送回SPU核310A。
图9示出了 PU 304的优选结构核功能。PU 304包括两个基本功能单元, PU核304A和存储器流控制器(MFC ) 304B。 PU核304A执行程序执行、数据 操控、多处理器管理功能等,而MFC 304B执行与PU核304A和系统100的存 储器空间之间的数据传送有关的功能。
PU核304A可以包括LI高速緩存器370、指令单元372、寄存器374、 一 个或多个浮点执行级376以及一个或多个定点执行级378。 LI高速緩存提供数
27据高速緩存功能给从共享存储器106、处理器102或者存储器控制的其他部分通 过MFC 304B接收来的数据。因为PU核304A最好实施为超流水线,所以最好 将指令单元372实施为带有许多级的指令流水线,包括取回、译码、依赖性检 测、发布等。PU核304A还最好是超标量配置,^人而每个时钟周期从指令单元 372发布多于一个指令。为了实现高处理能力,浮点执行级376和定点执行级 378在流水线配置中包括多个级。依赖于所需要的处理能力,可以使用更多或者 更少数量的浮点执行级376和定点执行级378。
MFC 304B包括总线接口单元(BIU) 380、 L2高速緩存存储器、不可高速 緩存单元(NCU ) 384、核接口单元(CIU) 386和存储器管理单元(MMU ) 388。 大多数MFC 304B在与PU核304A和总线108相比较一半的频率( 一半的速度) 上运行以满足低功耗散热设计目标。
BIU 380提供总线108和L2高速緩存382和NCU 384逻辑块之间的接口 。 至此,BIU380充当总线108上的主装置和从装置,以执行完全相干的存储器操 作。作为主装置,其可以代表L2高速緩存382和NCU 384源装载/存储对总线 108的请求。BIU 380还可以实施用于限制可以被发送到总线108的总命令数量 的命令的流控制机制。在总线108上的数据操作可以设计来采用8拍(beat), 因此,BIU 380最好设计在128字节高速緩存线周围,而且相千和同步粒度 (granularity)是128KB。
最好将L2高速緩存存储器382(和支持的硬件逻辑欣计为高速緩存312KB 的数据。例如,L2高速緩存382可以处理可高速緩存的负载/存储、数据预取回、 指令取回、指令预取回、高速緩存操作和障碍操作。L2高速緩存382最好是8 向设置相关联系统。L2高速緩存382可以包括匹配6个数据转换(castout)队 列(例如,6个RC机器)的6个重新装载队列,和8个(64字节宽)存储队列。 L2高速緩存382可以操作来提供Ll高速緩存370中的数据的某些或者全部的 备份复制件。有利地,当热插拔处理节点时,这对于恢复状态是有用的。这种 配置还允许L1高速緩存370以更少的端口更快地操作,而且允许更快的高速緩 存对高速緩存传送(因为请求可能在L2高速緩存382停止)。这种配置还提供 用于将高速緩存相干性管理提供给L2高速緩存存储器382的机制。
NCU 384与CIU 386、 L2高速緩存存储器382和BIU 380对接,并且通常 用作用于PU核304A和存储器系统之间的不可高速緩存的操作的队列/緩冲电 路。NCU 384最好处理与PU核304A的通信,这种通信不由L2高速緩存382处理,例如高速緩存禁止装载/存储、障碍操作和高速緩存相干性操作。NCU384 最好以一半的速度运行以满足上述功率耗散目标。
将CIU 386放置在MFC 304B和PU核304A的边界上,并且充当用于来自 执行级376、 378、指令单元372和MMU单元388并且前进到L2高速緩存382 和NCU 382的请求的路由、判决和流控制。PU核304A和MMU 388最好全速 运行,而L2高速緩存383和NCU 382可以以2:1的速度比操作。因此,在CIU 386上存在频率边界,而且其功能之一用于适当处理频率交叉(frequency crossing),这是因为其转发请求并且重新装载两个频域之间数据。
CIU 386包括三个功能块装载单元、存储单元和重新装载单元。此外,数 据预取回功能由CIU386执行而且最好是装载单元的功能部分。以(i)接收装 载和存储来自PU核304A和MMU 388的请求;(ii)将请求从全速时钟频率转 换为半速(2:1时钟频率转换);(iii)将可高速緩存的请求路由到L2高速緩存 382,并且将不可高速緩存的请求路由到NCU 384; (iv)在对L2高速緩存383 和NCU 384的请求之间进行y〉平地判决;(v)通过分派(dispatch)将流控制提 供给L2高速緩存382和NCU 384,以<更在目标窗口中接收请求并且避免溢出; (vi)接收装载返回数据并且将其路由到执行级376、 378、指令单元372或者 MMU 388; (vii)将监听请求传送到执行级376、 378、指令单元372或者MMU 388;和(viii)将装载返回数据和监听通信量从半速转换为全速。
MMU 388最好通过诸如第二级地址转换措施之类的方式,提供用于PU核 340A的地址转换。最好通过可能比MMU 388更小和更快的分离指令和数据 ERAT ( effective to real address translation,对实际地址转换有效),在PU核304A 中提供第一级转换。
在优选实施方式中,PU 304以64位实现在4 6 GHz、 10F04下操作。寄存 器最好是64位长(虽然一个或者多个特殊目的寄存器可以更小)并且有效地址 是64位长。最好使用PowerPC技术来实施指令单元370、寄存器372和执行级 374以实现(RISC )计算技术。
可以在美国专利第6,526,491中找到关于该计算机系统的模块结构的附加的 详情,通过参考将其整个公开合并于此。
现在参照图10,该图是根据本发明的一个或者多个进一步方面的处理器500 的框图。在该实施方式中,处理器500还包括解密单元502和安全存储器504。 安全存储器504包含不可见密钥(IKi),其中i表示第i个处理器。可以操作解密单元502以将流自存储器流控制器310B的数据(使用不可见密钥IKi)解密 到本地存储器350。最好,不可见密钥IKi是对于给定处理器500基本上唯一的 密钥,应该理解,在系统中的每个处理器都包括唯一的不可见密钥。解密单元 502可以使用诸如简单XOR算法或者更力。复杂的算法之类的任何已知技术。
处理器500最好可以操作来使用上述技术或者利用其他技术进入到安全操 模式。最好,处理器500在硬件复位条件或者开4几条件时进入到操作的安全模 式。当在非安全模式中时,PU 304能够启动共享DRAM 314和本地存储器350 之间的数据传送而不必经过解密单元502。类似地,当处理器500处于非安全才莫 式中时,PU304能够启动从处理器500到共享DRAM 314的数据传送。然而, 当在安全模式中时,PU 304不能在不将这种数据发送经过译码单元502的情况 下,启动从共享存储器314到本地存储器350的数据传送。在安全模式中不允 许PU 304所启动的从本地存储器350的凄t据传送。因此,由PU 304 (或者任何 其他外部实体)所启动的任何数据传送都会导致数据被使用不可见密钥IKi而经 历解密。然而,无论是否在操作的安全模式中,处理器500都能够启动本地存 储器350和共享存储器314之间的数据传送。
只有处理器500的解密单元502或者一些其他纟皮授权的实体能够存取在安 全存储存储器504中所存储的不可见密钥IKi。最好,即使实体被授权能够知道 特定处理器500的不可见密钥IKi,也必须以除了 A/v处理器500的安全存储器504 中获得密钥以外的某种方式将对不可见密钥IKi的存取权给予这种实体。例如, 在处理器500的制造过程期间,最好将不可见密钥IKi存储在安全存储器504 中,而且同时或者大概同时使得被授权获得信息的那些实体知道不可见密钥 IKi。
处理器500还最好包括基本上唯一的ID,例如序列号或者其他识别指示。 然而,与不可见密钥IKi不同,最好具有利用处理器500的安全特点的兴趣的任 何实体都知道处理器500的ID。因此,可以将ID认为是可见密钥VKi,其中i 表示第i个处理器500。
参照图11,示出了其中可以使用处理器500的安全特点的系统。该系统包 括处理器500、中间实体510和安全实体(或者J3良务器)512。安全实体512包 括认证服务器514和数据库516,下面将对其进行更加详细地讨论。注意,虽然 图11示出了本发明某些方面的结构,^旦是其还示出了数据/过程流。因此,这里 使用图11以讨论本发明的设备和方法的详情。中间实体510可以是想要以安全方式传送数据到处理器500或者对处理器 500传送和执行程序的任何实体。回忆处理器500可以是共享DRAM 314的多 个附连处理单元中的一个。因此,可以将从中间实体510传送到处理器500的 数据至少临时地存储在共享DRAM 314中。在某些情况下,这可能导致数据经 历其他处理器的盗取。然而根据本发明,中间实体510可以以只有处理器500 可以获得对数据的存取权和使用数据的方式而将数据传送到处理器500。
具体地说,中间实体510获得与处理器500相关联的可见密钥VKi。中间 实体510将数据(例如要在处理器500上被执行的远端程序)和可见密钥VKi 传送到安全服务器512。利用诸如通过因特网或者其他网络、通信链路、或者通 过人工介入之类的任何已知技术来进行这种传送。安全服务器512从该传送中 获得可见密钥VKi,并且使用认证服务器514来搜索数据库516,该数据库包含 多个可见密钥-不可见密钥对。可见和不可见密钥对通过它们对诸如处理器500 之类的特定处理器的相互关系彼此关联。如果在从中间实体510接收来的可见 密钥VKi和在数据库516中所存储的可见密钥之一之间获得匹配,则认证服务 器514最好使用与可见密钥VKi和处理器500相关联的不可见密钥IKi来加密 数据(在本例中,远端程序)。然后,安全服务器512例如使用因特网将经加密 的数据传送到中间实体510。
虽然中间实体510获得其提供到安全服务器512的数据的加密版本,但是 中间实体510不具有关于处理器500的不可见密钥IKi的任何信息。从这方面来 说,安全实体512是被授权实体,这是因为其知道在处理器500的安全存储器 504中所包含的不可见密钥IKi。虽然诸如中间实体510之类的任何实体可以知 道任何给定处理器的可见密钥VKi,但是仅仅诸如安全服务器512之类的被授 权实体会知道不可见密钥IKi和/或其与特定可见密钥VKi的关联。
然后,中间实体510通过诸如因特网或者任何其他适当机制将经加密的数 据传送到处理器500。根据处理器500的运算能力,PU 304帮助来自中间实体 510的经加密数据的接收和其在共享DRAM 314中的存储。最好在PU 304使得 经加密的数据存储在共享DRAM 314的同时或者大概同时,处理器500处于操 作的安全模式。因此,当PU 304启动经加密的数据从共享DRAM 314到处理器 500的本地存储器350的传送时,这种经加密的数据必须通过解密单元502。因 此,解密单元502使用处理器500的安全存储器504中所存储的不可见密钥 来解密经加密的数据。有利地,由中间实体510所起始的经解密的数据以安全方式存储在处理器500的本地存储器350中。确实,在安全^f莫式中,PU 304或 者任何其他外部实体都不能获得来自本地存储器350的it据,而且处理器500 可以操控这些数据而不被经历盗取。
现在参照图12,其是使用用于利用处理器500的安全特点的替代方法的图 ll的系统的框图。与上面参照图ll所讨论的方法相同,中间实体510获得与处 理器500相关联的可见密钥VKi。然而与该方法不同的是,中间实体510使用 对称密钥keyl解密至少数据(例如,远端程序)。通过示例方式,由中间实体 510使用的加密技术可以是公知的先进加密标准(AES),其使得能够使用一个 或者多个对称密钥来加密和解密敏感数据。注意,中间实体510可以利用对称 密钥keyl来加密数据以及可见密钥VKi。在这种情况下,中间实体510最好将 经加密的数据(以及可见密钥VKi)传送到安全实体512。认证服务器514最好 操作来接收经加密的数据和可见密钥VKi,并且利用对称密钥key2来对其进行 解密。
一旦认证服务器514已经获得了经解密的数据和可见密钥VKi,其就搜索 数据库514以寻找可见密钥-不可见密钥对。如果获得了^^人中间实体510接收 来的可见密钥VKi和在数据库516中所存储的可见密钥之一之间的匹配,则认 证服务器514最好使用与可见密钥VKi和处理器500相关联的不可见密钥IKi 来加密数据。认证l良务器514还利用对称密钥key2加密经加密的数据以获得加 密过的经加密的数据。然后,安全实体512将加密过的经加密数据传送到中间 实体510。
中间实体510最好接收加密过的经加密数据,并且利用对称密钥keyl对其 解密以获得不可见密钥IKi所加密的数据。然后,中间实体500可以通过诸如因 特网或者其他适当机制将经加密的数据传送到处理器510。 PU 304帮助从中间 实体510接收经加密的数据以及其在共享DRAM 314中的存储。最好,在PU 304 使得经加密的数据存储在共享DRAM 314的同时或者大概同时,处理器500处 于操作的安全模式中。当PU304启动经加密的数据从共享DRAM314到处理器 500的本地处理器350的传送时,这种经加密的数据必须通过解密单元502。因 此,解密单元502利用处理器500的安全存储器504中所存储的不可见密钥IKi 来解密经加密的数据。有利地,源于中间实体510的经解密的数据以安全的方 式存储在处理器500的本地存储器350中。在安全模式中,PU 304和任何其他 外部实体都不能在没有处理器500的授权的情况下从本地存储器350获得数据。因此,处理器500可以操控这种数据而不必经历盗取。
现在参照图13-14,它们是使用进一步替代方法来利用处理器500的安全 特点的图11的系统的框图。根据本发明的该实施方式,数据包括解密程序和对 称密钥(例如,根据RSA协议)。中间实体510利用对称密钥keyl (其最好是 中间实体510和其他信任实体知道的秘密密钥)来对解密程序和对称密钥key2 进行加密。注意,中间实体510也可以将处理器的可见密钥VKi与解密程序和 对称密钥key2 —同加密。在任何情况下,中间实体510将经加密的解密程序/ 对称密钥key2以及可见密钥VKi传送到安全服务器512。认证服务器514最好 操作来利用对称密钥key2解密经加密的数据以获得解密程序和可见密钥VKi (假设也使用解密程序来对其进行加密)。密钥key2最好是公钥,这是因为其 他方也可以知道key2的详情。(还要注意,认证月良务器514所适用于的公钥key2 可以与用描述程序所加密的公钥key2不同。)然后,认i正月良务器514搜索数据 库516以获得匹配所接收到的可见密钥VKi的可见密钥-不可见密钥对。如果 获得匹配,则认证服务器514最好使用与可见密钥VKi和处理器500相关联的 不可见密钥IKi来对解密程序和对称密钥key2进行加密。认证服务器514还最 好利用对称密钥key2 (例如,例如RSA加密技术)来加密经加密的数据。然后 安全服务器512例如使用因特网将加密过的经加密的数据(例如,解密程序和 对称密钥key2 )传送到中间实体510。
中间实体510最好利用对称(秘密)密钥keyl来解密加密过的经加密的数 据以获得经加密的数据。在该点,中间实体510具有解密程序和对称密钥(公 钥)key2,它们都已经被通过不可见密钥keyl解密。然后,中间实体510可以 通过诸如因特网将经加密的数据(解密程序和对称密钥key2 )传送到处理器500。 与之前的实施方式相同,PU304帮助来自中间实体510的经加密的数据的接收、 其在共享DRAM 314中的存储和通过解密单元502传送经加密的数据,使得以 安全的方式将解密程序和对称密钥key2存储在处理器500的本地存储器350中。
在该点,将处理器置于"安全模式",例如,上述第三纟莫式。更具体地i兌, 在第三模式中,处理器500可以启动信息到和从处理器500的传送,而外部装 置(诸如PU304)则不能够这么做。
虽然这有利地允许处理器500以安全方式来操控解密程序和对称密钥 key2,但是其还允许后面以简化的方式保护数据传送安全,这将参照图14更加 详细地进行描述。中间实体510最好利用对称密钥(公钥)keyl加密进一步的数据,并且利 用因特网或者任何其他适当机制将该数据发送到处理器500。注意,中间实体 510使用来加密进一步的数据的私钥keyl不必与用于对译码程序进行加密以传 送到安全服务器512的私钥keyl相同。PU 304帮助来自中间实体510的经加密 数据的接收以及其在共享DRAM 314中的存储。注意,在本发明的该实施方式 中,处理器500不必处于操作的"隔离才莫式,,中。根据上面描述,考虑在隔离 模式(第二模式中),处理器500或者任何外部装置都不可以启动到或者从处理 器500的信息的传送。确实,处理器500或者PU 304可以启动经加密的数据从 共享DRAM 314到旁路解密单元502的本地存储器350的传送。这样是因为利 用对称密钥(私钥)keyl来加密进一步的数据,而且PU 304或者任何其他外部 实体都不知道安全地存储在本地存储器350中的^^码程序或者对称密钥(公钥) key2,或者不能对其进行存取。然后,处理器500可以利用解密程序和对称密 钥key2来对经加密的进一步的数据进^fr解密。有利地,处理器500以安全方式 接收进一步的数据,而且可以以相同方式接收在进一步的数据而不必要求恢复 到操作的安全模式。
现在参照图15,其是可以操作来通过因特网或者任何其他适当通信信道或 者机制彼此通信的两个处理器500A和500B的框图。根据本发明的该实施方式, 每个处理器500A、 500B最好利用上面参照图13所讨论的方法接收加密/解密程 序和对称密钥。更具体地说,处理器500A最好"l矣收加密/译码程序和对称密钥 key2,而处理器500B接收加密/解密程序和对称密钥keyl。最好,加密/译码程 序和对称密钥符合AES加密方法。
现在将更加详细地讨论处理器500A和处理器500B之间的lt据的安全传送 (也称为对等通信)。具体地说,处理器500B可以利用本地存储器350B内的加 密/解密程序和对称密钥keyl来加密进一步的数据。然后处理器500B可以将经 加密的进一步的数据从本地存储器350B传送到共享DRAM 314B。然后PU 304B 可以通过因特网将经加密的进一步的数据从共享DRAM 314B传送到与处理器 500A相关联的PU 304A。然后,PU 304A可以将传送在与处理器500A相关联 的共享DRAM 314A中的经加密的进一步的数据。然后,处理器500A或者PU 304A可以将经加密的进一步的数据从共享DRAM 314A传送到旁路解密单元 502A的本地存储器350A。 一旦在本地存储器350A中,可以利用加密/解密程 序和对称密钥key2来解密经加密的进一步的数据。有利地,可以在处理器500A和处理器500B之间传送进一步的数据而不用以中间实体510 (图13 )进行进一 步通信。
还可以利用与上面讨论的基本上类似的技术来将在进一步的数据从处理器 500A传送到处理器500B。确实,处理器500A可以利用加密/解密程序和对称密 钥key2来加密进一步的数据,并且将其传送到共享DRAM 314A。 PU 304A可 以经由因特网将这种加密的进一步的数据从共享DRAM 314A传送到与处理器 500B相关联的PU 304B。然后,处理器500B或者PU 304B将经加密的进一步 的数据/人共享DRAM 314B传送到本地存储器350B,其中利用加密/解密程序和 对称密钥keyl来对其进行解密。再次,可以在不使用中间实体510或者安全服 务器512(图13)的情况下,进行再进一步的数振从处理器500A到处理器500B 的安全传送。
现在参照图16-17,其是与图11和/或图12的系统基本上类似的系统的框 图,其中使用进一步替代方法来利用几个处理器500的安全特点。更加本发明 的该实施方式,中间实体510 (其可以是分布服务器)最好通过如上面讨论的安 全路径将解密(或者译码)程序和对称密钥key2传送到安全服务器512。中间 实体510还最好以安全的方式传送与要参加进一步的数据的传送的每个处理器 相关联的相应可见密钥VKi。安全服务器512将"i奪码程序和对称密钥key2的经 加密版本传送到中间实体510,其中用与所接收到的可见密钥VKi的对应的一 个相关联的特定不可见密钥IKi来加密每个版本。然后,中间实体510将经加密
的译码程序和对称密钥key2的相应版本传送到相应处理器500A、 500B.....
500i。每个处理器最好在操作的安全模式中,以便经加密的译码程序和对称密钥
key2的相应版本必须通过相应解密单元502A、 502B..... 502i。因此,每个处
理器500A、 500B、…、500i在其相关联的本地存储器350A、 350B、 ...、 350i 中获得译码程序和对称密钥key2。
之后,中间实体510可以将进一步的数据的一个版本(诸如分发程序,其 已经通过对称密钥keyl进行加密)传送到每个处理器500 (图17)。然后,每 个处理器500可以利用位于其相应本地存储器350中的译码程序和对称密钥 key2来解密经加密的进一步的数据。有利地,可以用安全方式来传送进一步的 数据而不必要求用于每个参与处理器500的不同版本。从这方面来书,将译码 程序认为是用户的"许可",其允许特定处理器500接收诸如电影、音乐、游戏 程序之类的进一步的数据。因为许可只对特定处理器500 (用户)有效,所以只有该用户可以接收和解密经加密的分布程序。然而,分布l良务器510只需要准 备分布程序的一个版本,虽然该版本被加密但是也可以通过被授权的处理器进
行解密。
从上面说明中应该理解,可以独立地或者組合地使用本发明的各种实施方 式以实现各种安全操作,例如信任代码的处理和分发。确实,可以确认信任代 码的源,并且进行关于是否已经窜改了信任代码的确定。此外,可以使用本发 明来验证数据内容、安全地分发数据内容、管理系统特权、处理电子商务支付、 管理对等通信和管理客户机对服务器验证。再进一步,可以使用本发明来通过 验证和确认在引导(boot up)之前还没有窜改操作系统。还没有穷尽本发明的 应用;确实,本领域的普通技术人员应该理解本发明的应用非常多以至不能全 部列出。
现在将参照图18,其示出了如何才艮据本发明的各种方面来使用处理器协作 的进一步例子。更具体地说,图18示出了在数据总线、网络和/或任何其他通信 链路上彼此通信的多个处理器600A、 600B、 ...、 600F的框图。至少一个处理 器600是"隔离的",这是因为在没有同意的情况下不能够获得在其本地存储器 中的数据。换句话说, 一个或多个处理器600处于如上所述的操作的安全模式 中。在图18所示的例子中,处理器600A、 600B、 600D和600E处于l乘作的安 全模式中,而处理器600C和600F处于非安全操作模式中。除非另外允许,否 则安全或者非安全处理器都不能从安全处理器的本地存储器中接收数据。因此, 非安全处理器600C不能单方面地从安全处理器600B的本地存储器中获得数据。 相反地,任何处理器600都可以单方面地从非安全处理器的本地存储器中获得 数据。然而当已经获得了允许时,通过诸如相互协作,服务器处理器(例如, 处理器600A)可以允许另一个处理器(例如,处理器600B )单方面地从其本地 存储器中获得数据。
可以将上述系统用于多方商业合营的管理中,因为在这种情况下数据的安 全很重要。例如,处理器600A和600B可以管理包含专有内容和/或提供验证功 能给在合营机构中的其他方的实体。因此,处理器600D和600E可以使用处理 器600A和/或处理器600B来验证内容,例如,确认和/或加密用于后来分发或 者处理的内容。从这方面来说,可以将处理器600D和600E当作被许可者的管 理实体。进一步,可以第三方内容可以在非安全处理器600C和600F上获得和/ 或在其上进行处理。虽然已经参照特定实施方式在这里描述了本发明,但是应该理解,这些实 施方式只是本发明的原理和应用的说明。因此应该理解,在不偏离所附权利要 求所限定的本发明的精神和范围的情况下,可以对这些说明性实施方式进行各 种变型而且也可以考虑其他安排方式。
产业的可利用性
可以将本发明应用于使用多处理器保护数据处理安全的技术。
权利要求
1.一种用于保护数据处理和传送安全的设备,包括主处理单元;多个附连处理单元,每个包括本地存储器和解密单元,并且每个都可操作来进入普通操作模式或者安全操作模式;和共享存储器,其中当旁路解密单元的附连处理单元中给定的一个处于普通模式时,该主处理单元能够启动共享存储器和该给定附连处理单元之间的数据传送,以及该主处理单元不能(i)启动从该给定附连处理单元到共享存储器的数据传送;或者(ii)当该给定附连处理单元处于安全模式时,启动从共享存储器到旁路解密单元的该给定附连处理单元的数据传送。
2. 根据权利要求1所述的设备,其中所述附连处理单元能够启动与共享 存储器的数据传送,而不论它们处于普通操作模式还是安全操作模式中。
3. 根据权利要求1或者权利要求2所述的设备,其中,可操作所述附连处理单元以在硬件重置条件和开机条件中至少一个时进入安全操作^t式。
4. 根据权利要求1或者权利要求2所述的设备,其中所述数据可以包括 至少部分软件程序。
5. 根据权利要求1或者权利要求4所述的设备,其中每个附连处理单元 包括包含基本上唯一的密钥的安全存储器,只可由该给定附连处理单元的解 密单元的至少 一个以及被授权的实体存取该存储器。
6. 根据权利要求5所述的设备,其中,每个附连处理单元的解密单元使 用密钥来解密从共享存储器传送到本地存储器的数据,这种数据传送是当该 给定附连处理单元处于安全操作模式时由主处理单元所启动的。
7. 根据权利要求5所述的设备,其中,所述共享存储器可以包含经加密 的数据,已经使用附连处理单元的基本上唯一的密钥之一加密了该经加密的 数据。
8. 根据权利要求5所述的设备,其中,每个附连处理单元与基本上唯一 的ID关联,至少一个该纟合定附连处理单元的外部实体和该i殳备可以知道该 ID。
9. 根据权利要求7所述的设备,其中,由该设备外部的安全实体加密经 加密的数据,授权该安全实体使用该给定附连处理单元的密钥。
10. 根据权利要求5所述的设备,其中,该安全实体包括包含参与的附 连处理单元的ID和密钥的数据库,用于给定附连处理单元的每个ID和密钥 彼此关联。
11. 根据权利要求5所述的设备,其中,在不安全实体提供与密钥关联 的ID给该安全实体之后,利用给定附连处理单元的密钥,该安全实体加密从 不被^^权使用给定附连处理单元的密钥的不安全实体接收来的数据。
12. 根据权利要求11所述的设备,其中 该安全实体可操作来将加密的数据提供给不安全实体; 该不安全实体可操作来提供加密的数据给该设备以存储在共享存储器中;该主处理单元可操作来启动从共享存储器到给定附连处理单元的加密数 据的传送,使得加密的数据输入到解密单元中;以及,该给定附连处理单元的解密单元可以操作来使用给定附连处理单元的密 钥来解密所加密的数据,使得数据存储在给定附连处理单元的本地存储器中。
13. 根据权利要求5所述的设备,其中不被授权来使用给定附连处理单元的密钥的不安全实体使用第 一对称密 钥加密数据,提供加密的数据给安全实体,并且将与给定附连处理单元相关 联的ID提供给安全实体;该安全实体使用第二对称密钥来解密不安全实体所提供的经加密的数 据,并且使用与从不安全实体接收来的ID相关联的给定附连处理单元的密钥 来加密数据。
14. 根据权利要求13所述的设备,其中,不安全实体使用第一对称密钥 来加密给定附连处理器单元的数据和ID,并且将经加密的数据或ID提供给 安全实体。
15. 根据权利要求13所述的设备,其中该安全实体可操作来使用第二对称密钥加密经加密的数据,并且提供经 过加密的经加密数据给不安全实体;该不安全实体可操作来使用第 一对称密钥解密经过加密的经加密数据以 获得使用给定附连处理单元的密钥所产生的经加密数据,并且提供经加密的 数据给设备以存储在共享存储器中;该主处理单元可操作来启动从共享存储器到给定附连处理单元的加密数据的传送,使得将经加密的数据输入到解密单元;以及,该给定附连处理单元的解密单元可操作来使用给定附连处理单元的密钥 来解密经加密的数据,使得数据存储在给定附连处理单元的本地存储器中。
16. 根据权利要求5所述的设备,其中 数据是解密程序;不被授权使用给定附连处理单元的密钥的不安全实体使用第一对称密钥 加密该解密程序,提供经加密的解密程序给安全实体,并且提供与给定附连 处理单元相关联的ID给安全实体;以及,该安全实体使用第二对称密钥解密由不安全实体所提供的经加密的解密钥来加密解密程序和第二对称密钥。
17. 根据权利要求16所述的设备,其中,不安全实体使用第一对称密 钥来加密解密程序和给定附连处理单元的ID,并且提供经加密的解密程序/ID 给安全实体。
18. 根据权利要求16所述的设备,其中,不安全实体使用第一对称密 钥来加密解密程序、给定附连处理单元的ID和第二对称密钥,并且提供经加 密的解密程序、ID或第二对称密钥给安全实体。
19. 根据权利要求16所述的设备,其中安全实体可操作来使用第二对称密钥加密经加密的解密程序和第二对 称密钥,并且提供经过加密的经加密的解密程序/第二对称密钥给不安全实 体;不安全实体可操作来使用第 一对称密钥对经过加密的经加密的解密程 序/第二对称密钥进行解密,以获得使用给定附连处理单元的密钥所产生的经 加密的解密程序/第二对称密钥,并且提供经加密的解密程序/第二对称密钥给 设备以存储在共享存储器中;主处理单元可操作来启动经加密的解密程序/第二对称密钥从共享存储 器到给定附连处理单元的传送,以便经加密的解密程序/第二对称密钥输入到 解密单元;以及给定附连处理单元的解密单元可操作来使用给定附连处理单元的密钥 对经加密的解密程序/第二对称密钥进行解密,以便解密程序和第二对称密钥 存储在给定附连处理单元的本地存储器中。
20. 根据权利要求19所述的设备,其中,不安全实体可以操作来使用 第一对称密钥加密数据,并且将经加密的数据提供给设备以存储在共享存储 器中。
21. 根据权利要求19所述的设备,其中,给定附连处理单元能够将来 自共享存储器的经加密的数据接收到旁路解密单元的本地存储器中。
22. 根据权利要求21所述的设备,其中,当从共享存储器将经加密的 数据接收到本地存储器时,给定附连处理单元可以处于普通模式或者安全模 式。
23. 根据权利要求19所述的设备,其中,给定附连处理单元可操作来 使用解密程序和第二对称密钥对经加密的数据进行解密。
24. 根据权利要求23所述的设备,其中所述数据可以包括软件程序。
25. 根据权利要求19所述的设备,其中,主处理单元可操作来启动经 加密的数据从共享存储器到旁路解密单元的给定附连处理单元的本地存储器 的传送。
26. —种用于保护数据处理和传送安全的方法,包括 提供主处理单元、多个附连处理单元和共享存储器,每个附连处理单元包括本地存储器和解密单元并且可操作来进入普通操作;f莫式;和当该给定附连处理单元处于安全模式时,该主处理单元不能启动从共享 存储器到旁路解密单元的给定的一个附连处理单元的数据传送,从而必须由 解密单元使用密钥来解密对主处理器单元的本地存储器的、外部启动的任何 数据传送,该密钥对于给定附连处理单元基本上唯一而且只有被授权的实体知道o
27. 根据权利要求26所述的方法,还包括允许所述附连处理单元启动与共享存储器的数据传送,而不论它们处于 普通搡作模式还是安全操作模式中。
28. 根据权利要求26或者权利要求27所述的方法,还包括 使得所述附连处理单元在硬件重置条件和开机条件中至少一个时进入安全操作模式。
29. 根据权利要求26或者权利要求27所述的方法,还包括 将数据和与附连处理单元的给定的一个相关联的ID从中间实体传送到安全实体;搜索包含参与的附连处理单元的ID和相关联密钥的安全实体的数据 库,和获得与针对其接收了 ID的给定附连处理单元相关联的密钥;使用与针对其接收了 ID的给定附连处理单元相关联的密钥来加密传送 到安全实体的数据;和将经加密的数据从安全实体传送到中间实体。
30. 根据权利要求29所述的方法,还包括将经加密的数据从中间实体传送到给定附连处理单元的共享存储器; 当给定附连处理单元处于安全模式时,启动经加密的数据从共享存储器 到给定附连处理单元的传送,使得解密单元使用其密钥来解密经加密的数据;和将数据存储在给定附连处理单元的本地存储器中。
31. 根据权利要求26所述的方法,还包括在中间实体中使用第一对称密钥加密数据和与附连处理单元的给定一 个相关联的ID中的至少一个;将经加密的数据和ID从中间实体传送到安全实体; 使用第二对称密钥在安全实体中解密经加密的数据和ID中的至少一个;搜索包含ID和参与的附连处理单元的相关联密钥的安全实体的数据 库,和获得与针对其接收到ID的给定附连处理单元相关联的密钥;使用与给定附连处理单元相关联的密钥在安全实体中加密数据,并使用 第二对称密钥加密经加密的数据;和将加密过的经加密的数据从安全实体传送到中间实体。
32. 根据权利要求31所述的方法,还包括使用第一对称密钥在中间实体中解密加密过的经加密的数据以获得由与给定附连处理单元相关联的密钥所加密的数据;将经加密的数据从中间实体传送到给定附连处理单元的共享存储器; 当给定附连处理单元处于安全模式时,启动经加密数据从共享存储器到给定附连处理单元的传送,使得解密单元使用其密钥来解密经加密的数据;和将数据存储在给定附连处理单元的本地存储器中。
33. 根据权利要求32所述的方法,其中该数据包括(i)解密程序,和(ii)第二对称密钥,该方法还包括使用第一对称密钥在中间实体中加密进一步的数据;将经加密的进一步的数据从中间实体传送到给定附连处理单元以存储 在共享存储器中;和启动经加密的进一 步的数据从共享存储器到本地存储器的传送,同时给 定附连处理单元不处于安全模式,以便旁路解密单元。
34. 根据权利要求33所述的方法,还包括使用给定附连处理单元来利用解密程序和第二对称密钥解密经加密的 进一步的数据。
35. 根据权利要求32所述的方法,其中,该数据包括(i)加密/解密程 序,和(ii)与加密/解密程序相关联的一对对称密钥之一,以便将它们存储 在给定附连处理单元的本地存储器中,该方法还包括使用进一步的数据和进一步附连处理单元重复该方法的步骤,该进一步 的数据包括(i)进一步的加密/解密程序,和(ii)与该进一步的加密/解密程 序相关联的该对对称密钥的另一个,以便将它们存储在进一步的附连处理单 元的本地存储器中。
36. 根据权利要求35所述的方法,还包括使用加密/解密程序和给定附连处理单元的一个对称密钥来加密进一步 的数据;将经加密的进一步的数据从给定附连处理单元传送到进一步的附连处 理单元以存储在其共享存储器中;和启动经加密的进一步的数据从共享存储器到进一步的附连处理单元的 本地存储器的传送,同时进一步的附连处理单元不在安全模式中,以便旁路 其解密单元。
37. ^4居权利要求36所述的方法,还包括使用进一步的附连处理单元来使用进一步的加密/解密程序和其他对称 密钥来解密经加密的进一步的数据。
38. 根据权利要求35所述的方法,还包括使用加密/解密程序和进一步的附连处理单元的其他对称密钥来加密进 一步的数据;将经加密的进一步的数据从进一步的附连处理单元传送到给定附连处理单元以存储在其共享存储器中;和启动经加密的进一步的数据从共享存储器到给定附连处理单元的本地 存储器的传送,同时给定附连处理单元不处于安全模式中,以便旁路其解密 单元。
39. 根据权利要求38所述的方法,还包括使用给定附连处理单元利用加密/解密程序和该一个对称密钥来解密经 加密的进一步的数据。
40. 根据权利要求38所述的方法,其中,给定附连处理单元的共享存 储器与进一步附连处理单元的共享存储器是相同的存储器。
41. 根据权利要求32所述的方法,其中,数据包括(i)解密程序,和 (ii)与解密程序相关联的第二对称密钥,以便将它们存储在给定附连处理单元的本地存储器中,该方法还包括使用进一步的附连处理单元重复该方法的步骤,以便将解密程序和第二 对称密钥存储在每个附连处理单元中。
42. 根据权利要求41所述的方法,还包括 使用第一对称密钥在中间实体中加密进一步的翁:据; 将经加密的进一步的数据从中间实体传送到每个附连处理单元以存储在其共享存储器中;启动经加密的进一步的数据从共享存储器到附连处理单元的相应本地 存储的传送,同时附连处理单元不处于安全模式中,以便旁路其相应解密单 元。
43. 根据权利要求42所述的方法,还包括使用附连处理单元来利用 相应解密程序和第二对称密钥来解密经加密的进一步的数据。
全文摘要
本发明涉及一种用于保护数据处理和传送安全的方法和设备,其中该设备包括本地存储器;总线,可操作来将信息携带到该本地存储器或者从该本地存储器中携带出信息;一个或多个算术处理单元,可以操作来处理数据并且可操作地连接到该本地存储器;以及安全电路,可以操作来将该设备置于操作模式中,其中所述多种操作模式包括该设备和外部装置可以启动通过总线的、到或者来自存储器的数据传送的第一模式,该设备和外部装置都不可以启动通过总线的、到或者来自存储器的数据传送的第二模式,和该设备可以启动通过总线的、到或者来自存储器的数据传送而外部设备不能启动通过总线的、到或者来自存储器的数据传送的第三模式。
文档编号G06F21/00GK101615233SQ20091015232
公开日2009年12月30日 申请日期2005年11月11日 优先权日2004年11月12日
发明者畠山明之, 铃置雅一 申请人:索尼计算机娱乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1