安全处理器的制作方法

文档序号:6611462阅读:104来源:国知局
专利名称:安全处理器的制作方法
技术领域
本发明涉及用于确保诸如计算机之类的信息处理系统的安全性的系 统。更准确地说,本发明涉及安全处理器和用于安全处理器的程序,其能 够在如计算机和各种具有内置处理器的设备中防止恶意执行代码的操作。
背景技术
在使用处理器的系统中,操作可以由程序来描述,因此与完全由硬件 配置的系统相比,这些操作显示出高的灵活性,并且可以容易地安装多种 功能。由于这些特征,处理器已被用在多种系统中,所述系统例如有个人 计算机、PDA、蜂窝电话和信息家庭应用设备,并且随着这些系统越来越 普及,已广泛地执行了像在电子商务中这样要求较高安全性级别的处理。 虽然已经采取了多种基于系统的措施,例如线路数据加密和用户验证,以 便加强安全性,但近年来,在应对计算机病毒的传播和非法访问,以及处 理系统级安全性时,软件级或处理器级的安全性成为了问题。
例如,当包括蜂窝电话和信息家庭应用设备在内的多种具有内置处理 器的设备连接到网络时,该设备很有可能面临与个人计算机类似的外部威 胁。当对诸如非法访问指令的问题进行准确分析时,其主要原因在于以下 事实,即恶意执行代码在终端中操作。防止恶意代码或不需要的代码在处 理器上执行是重要的,但传统上在处理器侧所采取的用于防止恶意代码操 作的措施根本不够。结果,未能提供安全的软件执行环境这样的问题仍然
存在。
接着,传统上如下执行处理当在主存储器设备或辅助存储器设备中 存储数据和用于指令的执行代码时,执行加密以确保安全性,然后加密数 据在指令实际执行之前被解密并存储在处理器内的缓存中,并执行处理。 在此情况下,用于执行加密处理的硬件被从外部加载在与处理器芯片不同 的另一芯片上。因此存在以下问题,即诸如处理速度之类的加密处理性能 易于变劣。
而且,在这种加密处理中,用于加密数据的加密密钥是在外部芯片上 的加密处理侧确定的,因此与要在处理器侧执行的指令的种类、管理员/用 户模式或用于取数据或指令的访问地址无关。另外,仍然存在以下问题, 即无法响应于要执行的指令而选择适当的加密密钥,这是因为处理器侧的 执行单元无法指定用于加密和解密的密钥。
以下文献可以作为关于此软件执行环境安全性的现有技术。
专利文献1 :日本专利申请公开2002-353960 , " code execution apparatus and code distributing method"。
该文献公开了一种指令执行装置,其中对加密执行代码进行验证,以 确认加密代码的有效性,并且安全处理器取得与加密代码相应的指令,以 将其作为安全任务来执行。
然而,在这种代码执行装置中,在对应于执行代码的进程与用于验证 的密钥之间没有关系。例如,如果在操作系统(OS)中执行了恶意操作, 并且然后在程序中分配了另一验证密钥,则恶意代码一定会操作,这样的 问题是无法解决的。

发明内容
本发明的第一目的在于提供一种安全处理器,其基于在以不可重写的 格式存储加密指令代码的存储器中作为基础的存储器内容,连续地对例如 存储在辅助存储单元中的程序的执行代码进行验证,逐步地扩展安全可靠 应用的范围,从而可以仅执行可靠的操作。
本发明的第二目的在于,使得可以选择要使用的密钥,以用于被执行
6
的指令的数据和执行代码的加密/解密,以及通过在与处理器相同的芯片上 安装加密处理模块,来提高加密处理性能。
本发明的第三目的在于,通过在将进程执行代码存储到主存储器中时 使用与所述进程相对应的验证密钥对执行代码进行验证,从而仅使已被成 功验证的执行代码成为可执行的,进而提高处理器所执行的信息处理的安 全性。
本发明的一种安全处理器包括安全进程标识符生成设备和进程信息保 持设备。所述安全进程标识符生成设备在发出进程生成命令时生成安全进 程标识符,所述安全进程标识符要与对应于具有安全页面标志的页面的安 全进程标识符相比较,所述安全页面标志表示出存储执行代码的页面在执 行对应于所述执行代码的进程之前被正确地验证。所述进程信息保持设备 保持所生成的安全进程标识符,作为与进程相关的信息。


图1是示出本发明的安全处理器的主要配置的框图; 图2是示出第一实施例中的处理器的基本配置的框图; 图3是第一实施例中的处理器的基本处理流程图4是示出包括代码验证处理模块和加密处理模块的处理的流程图5是在指令区域和数据区域指定了不同的密钥时,加密处理模块的 流程图6是通过使用公钥加密的加密密钥的存储系统的说明图; 图7是通过使用公钥加密的加密密钥的存储处理的流程图; 图8是用于具有所添加的认证权威机构的签名的加密密钥的存储系统 的说明图9是用于具有所添加的认证权威机构的签名的加密密钥的存储处理 的流程图IO是在检测到无效指令时的处理流程图11是用于存储在数据区域中的指令的密钥替换处理的流程图; 图12是示出第二实施例中的处理器的基本配置的框图;图13是第二实施例中的处理器的基本处理流程图14是示出包括安全核心和通常核心的处理器的基本配置的框图15是图14所示的处理器的处理的基本流程图16是示出在图14所示的处理器中,由安全核心对通常核心的中止 控制系统的说明图17是示出在图14所示的处理器中,由安全核心对通常核心的中止 控制处理的流程图18是具有对应于安全核心的密钥生成机制的处理器的配置框图19是在图18所示的处理器中的密钥处理系统的一个具体示例的实 际说明图20是示出第三实施例中的处理器的基本配置的框图; 图21是在第三实施例中,具有密钥表存储器的处理器的配置框图; 图22是示出在第三实施例中,处于命令访问状态的处理器的配置的 框图23是示出具有对应于密钥表存储器的密钥选择寄存器的处理器的 配置的框图24是具有对应于处于命令访问状态的密钥表存储器的密钥选择寄 存器的处理器的配置框图25是示出密钥表存储器的配置示例的图26是示出加密电路和解密电路的配置示例的框图27是示出具有数据忽略功能的加密电路和解密电路的配置示例的
图28是对应于缓存直写系统中的加载存储单元的读取修改写入系统 的说明图29是示出第四实施例中所示的处理器的基本配置的框图; 图30是具有给出了逻辑地址的密钥表存储器的处理器的配置框图; 图31是具有给出了物理地址的密钥表存储器的处理器的配置框图; 图32是示出第四实施例中的密钥表存储器的配置示例(No. 1)的
图33是另一个示出第四实施例中的密钥表存储器的配置示例(No.
2) 的图34是另一个示出第四实施例中的密钥表存储器的配置示例(No.
3) 的图35是示出包括给定了逻辑地址和物理地址的密钥表存储器的处理 器的配置的框图36是包括密钥选择寄存器的处理器的配置框图,所述密钥选择寄
存器地址选择指令给出到图35所示的密钥表存储器;
图37是示出图35和图36中所示的密钥表存储器的配置示例的图; 图38是示出在存储器管理单元内具有密钥表的处理器的配置的框
图39是图38所示的数据访问系统的说明图40是在密钥表安装在地址映射寄存器中的情况下的数据访问系统 的说明图41是示出用于基于存储器管理单元的开/关状态来切换密钥的处理 器的配置的框图42是基于存储器管理单元的开/关状态来切换密钥的加密/解密系统 的说明图43是第三和第四实施例中的执行单元的1/0信号的说明图; 图44是第五实施例的处理器系统的详细配置框图45是产生安全上下文标识符的系统的说明图46是产生安全上下文标识符的方法的说明图47是消除安全上下文标识符的系统的说明图48是添加到执行代码上的验证信息的说明图49是将公钥存储到验证密钥寄存器的存储系统的说明图50是将公钥存储到验证密钥寄存器的存储处理的流程图51是将加密共享密钥存储到验证密钥寄存器的存储系统的说明
图52是将加密共享密钥存储到验证密钥寄存器的存储处理的流程
图53是在页面调入(page-in)到物理存储器时处理系统的说明图; 图54是在页面调入到物理存储器时的处理流程图; 图55是示出验证电路的配置的框图; 图56是验证单元的操作流程图57是在使用第五实施例中的页面时,存储器访问控制单元的访问
检查系统的说明图58是说明存储器访问控制单元处的操作示例的图59是在取得指令时存储器访问控制单元的处理流程图60是说明在使用来自安全核心和通常核心的页面时的访问控制系
统的图61是具有用于在安全模式和通常模式之间切换的模式寄存器的处 理器的配置图62是示出安全DMA的配置的框图63是使用安全DMA的数据传输处理的流程图64是在由OS进行页面调入时的处理的流程图65是在第七实施例中的上下文信息加密系统的说明图66是用于上下文信息的解密系统的说明图67是用于上下文信息的篡改检测信息添加系统的说明图68是上下文信息的篡改检测系统的说明图69是用于安全操作的上下文信息的加密系统的说明图70是用于安全操作的上下文信息的篡改检测信息添加系统的说明
图71是页面表条目的加密系统的说明图72是页面表条目的解密系统的说明图73是对页面表条目的篡改检测信息添加系统的说明图74是用于页面表条目的篡改检测系统的说明图;并且
图75是在将程序加载到计算机以实现本发明时的说明图。
具体实施例方式
下面参照附图,详细描述本发明的实施例。
图1是示出本发明的安全处理器的主要配置的框图。在该图中,本发 明的安全处理器1包括专用密钥存储设备2、指令代码存储设备3、验证 处理设备4和加密处理设备5。
专用密钥存储设备2存储专用密钥,所述专用密钥例如是在安全处理
器中执行指令代码的核心中的CPU专用密钥。指令代码存储设备3例如是 加密ROM代码区域,其以不可重写的格式存储加密指令代码。验证处理 设备4使用专用密钥来验证包含存储在指令代码存储设备3中的指令代码 在内的指令代码,加密处理设备5对所述核心和外部存储器之间的I/O数 据进行加密。
在本发明所实现的模式中,加密处理设备5将经验证的指令代码加 密,并可将其存储在例如是主存储器的存储器设备中,所述存储器设备连 接到页面单元上的安全处理器1,并且验证处理设备4可以将验证信息添 加到要被验证的指令代码上。
接着,图1所示的安全处理器1可以包括用于执行指令代码的核心 用于仅执行由验证处理设备4验证了的指令代码的安全核心,以及用于执 行未经验证的常规指令代码的通常核心。
在此情况下,使用存储在指令代码存储设备中的加密指令代码来引导 (激活)安全核心,并且安全核心可以具有通常核心引导设备,该设备在 对安全核心的引导完成之后对通常核心进行引导。另外,安全核心可以包 括通常核心监控设备,该设备在引导通常核心之后监控通常核心的操作, 并在检测到异常状态时,中止通常核心的操作或分支执行到专用处理。
接着,本发明的用于安全处理器的程序使计算机执行以下过程使用
存储器中的程序来执行激活处理的过程,其中加密指令代码以不可重写的
格式存储在所述存储器中;验证处理模块,用于执行对包括存储在所述存 储器中的指令代码在内的指令代码的验证处理;密钥管理处理,用于管理 处理器专用密钥;为密钥表建立运算处理的过程,其中密钥用于经验证处 理模块验证的指令代码的加密/解密处理;使用验证处理模块对辅助存储器
执行程序验证处理的过程;以及用于执行作为密钥处理监控器的操作的过 程,所述密钥处理是在执行包括所激活的操作系统在内的经验证程序时所 需的。
本发明的安全处理器包括执行命令的指令执行设备,例如执行单 元;响应于来自指令执行设备的命令,控制对外部存储器的数据的加载和 存储的加载/存储控制设备,例如加载/存储单元;以及执行加载/存储控制 设备与外部存储器之间的数据的加密/解密的加密处理设备,例如加密电路 和解密电路。所述指令执行设备响应于命令被执行,指定用于加密处理设 备的数据加密/解密的密钥。
在本发明的实施例中,安全处理器还可包括存储多个密钥的密钥存储 设备,例如密钥表存储器,并且指令执行设备将由密钥指定的密钥号输出 到密钥存储设备,并且密钥存储设备可以响应于密钥号,给出要被用于加 密处理设备的数据加密/解密的密钥。
此外,此安全处理器还可包括存储要被用于对从外部加载的命令取得 数据的解密的密钥的密钥存储单元,当指令执行设备处于命令取得状态 时,所述密钥存储单元可向加密处理设备提供将所取得的命令解密的密 钥。
此外,本发明的安全处理器可以包括执行命令的指令执行设备;响
应于来自指令执行设备的命令,控制对外部存储器的数据的加载和存储的
加载/存储控制设备;以及执行加载/存储控制设备与外部存储器之间的数 据的加密/解密的加密处理设备。所述指令执行设备响应于基于被执行的命 令的数据/指令取得访问地址,将指定要被用于数据加密/解密的密钥的信 号给出到加密处理设备。
在本发明的实施例中,安全处理器还可以包含存储多个密钥的密钥存 储设备,并且指令执行设备输出逻辑地址作为所述访问地址,并且密钥存 储设备可以响应于逻辑地址,将要被用于数据加密/解密的密钥给出到加密 处理设备。
或者,此安全处理器还可包含存储多个密钥的密钥存储设备,加载/存 储控制设备响应于从指令执行设备给出的命令,将物理地址作为访问地址
而输出,并且密钥存储单元可以响应于物理地址,将要被用于数据加密/解 密的密钥给出到加密处理设备。
本发明的安全处理器还包括安全进程(上下文)标识符生成设备, 在发出进程生成命令的时刻,其生成安全进程标识符,用于与对应于页面 的安全进程标识符相比较,在所述页面上建立了安全页面标志,以指示执 行代码在执行对应于所述执行代码的所述进程之前被正确地验证;以及进 程信息保持设备,例如上下文信息存储单元,其保持作为与该进程相关的 信息而生成的安全进程标识符。
在本发明的实施例中,与对相应于所述进程的执行代码的验证信息的 添加一起,进程信息保持设备可以保持验证密钥,用于在所生成的进程的 存续期间执行的执行代码验证。
此外,此安全处理器还可包括验证设备,其在对应于所述进程的执行 代码被存储在存储器的空闲页面中之后,使用每个页面的验证密钥执行对 执行代码的验证,并且安全进程标识符被与该页的地址相对应地存储在处 理器内的缓冲器中,并且所述验证设备在验证成功时在该缓冲器中设定安 全页面标志。
或者,此安全处理器还可包括存储器访问控制设备,其在执行代码的 实际执行之前,将存储在所述缓冲器中的安全进程标识符与保持在进程信 息保持单元中且对应于要执行的指令代码的安全进程标识符相比较,其中 对所述缓冲器设定了相应的安全页面标志,并且所述存储器访问控制设备 在两个标识符彼此一致时,允许执行命令的命令执行单元访问存储了执行 代码的存储器上的页面。
另外,此安全处理器还可包括仅执行经验证执行代码的安全核心和执 行未被验证的常规执行代码的通常核心,并且每个核心具有各自的命令执 行单元和缓存。
而且,此安全处理器还可以包括直接存储器访问设备,其在将执行代 码存储在存储器中的同时执行验证执行代码所必需的算术计算,并保持计 算的结果以将其给出到验证设备。
接着,用于本发明的安全处理器的程序是由计算机使用的程序,其将
包含执行代码的页面进行页面调入到存储器中,其使得所述计算机执行以 下过程用于请求计算机中的直接存储器访问机构将所述页面传输到存储 器的过程;用于在传输成功完成之后,在执行进程之前在翻译后备缓冲器 中的页面表条目中设定关于页面的数据的过程,在所述页面上设定了安全 页面标志以指示存储执行代码的页面被正确验证,所述数据包括要与对应 于所述页面的安全进程标识符相比较的安全进程标识符,并且是在发出进 程产生命令时生成的;以及请求硬件验证页面和在页面表条目中设定指示 成功验证的安全页面标志的过程。
而且,用于本发明的安全处理器的程序是由计算机使用的程序,其执 行对包含执行代码的页面的验证,其使得所述计算机执行以下过程用于 对在存储器中读取的页面执行哈希计算的过程;用于将添加到所述页面上 的验证信息解密的过程;用于比较哈希运算结果和解密结果的过程;以及 当检测出比较结果一致时,在计算机的翻译后备缓冲器中的页面表条目中 设定指示对所述页面的验证成功的安全页面标志的过程。
根据本发明,使用处理器中所保持的以不可重写格式加密的指令代码 被用作基本完整点,并且执行对包括操作系统在内的程序的验证,以使得 可以通过扩展可靠程序的范围来显著提高系统的安全性级别。
此外,根据本发明,在加密处理模块与处理器安装于同一芯片内以提 高加密处理性能的同时,可以对与被执行的命令相对应的数据和执行代码 进行加密。因此,可以响应于被执行的指令而变更加密等级,以使得可以 提高作为系统的安全性级别。
而且,根据本发明,可以在执行指令代码之前验证指令代码,然后可 以执行进程。并且在检测到与设定了安全页面标志的进程相对应的进程标 识符和被执行的进程的进程标识符一致时,执行进程。因此,可以防止处 理器上恶意变更的执行代码的操作,结果可以提供安全的软件执行环境。
下面,对本发明的安全处理器的整体配置及其处理的概要进行说明, 作为第一实施例。
图2是作为第一实施例而示出安全处理器的基本配置的框图。在该图 中,处理器IO包括以下部件核心11,其包含执行单元和缓存;加密处
理模块12,其执行与外部接口的命令处理,并执行对总线数据(程序代码 或数据)的加密/解密;代码验证处理模块13,其执行对指令代码的验 证;加密ROM代码区域14,在其中对在激活处理器时使用的最基本的程 序进行加密并存储;以及CPU专用密钥15,用于对存储在此代码区域14 中的程序执行解密。加密处理模块12的操作将在后面的第三实施例中详 细说明,而代码验证处理模块13的操作也将在后面的第五实施例中详细 说明。
虽然命令和数据在核心11和加密处理模块12之间传输,但用于加密 的密钥是受控的。验证接口安装在核心11和代码验证处理模块13之间。 而且,加密处理模块12和代码验证处理模块13执行对主存储器17的访 问,并且代码验证处理模块13执行对辅助存储器18的访问。
图3是第一实施例中的安全处理器的整体处理流程图。
当在图l中接通电源时,在步骤S1,图2所示的核心ll使用CPU专 用密钥15将存储在加密ROM代码区域14中的程序解密,并执行引导
(激活)处理。由于内置ROM的缘故,对该程序的篡改是非常困难的。 然而,即使通过某种方法而执行了篡改,所述程序也已经是加密的,难以 执行有意义的篡改。因此,如果程序被正确地引导,则可以确定的是,在 程序中没有进行篡改。结果,可以假定存储在加密ROM代码区域14中的 程序是绝对可靠的程序。然后,此状态可被定义为程序的基本可靠点。
关于加密ROM代码区域14,如果使用了 AES (Advanced Encryption Standard,高级加密标准)方法,所述AES方法具有比以64比特单位执行 加密的DES (Data Encryption Standard,数据加密标准)方法更高的保密 性,则其可以安装在处理器的外部而非内部。在此情况下,为了避免响应 于诸如指令代码的NOP和数据模式的全0/全1之类的频繁模式而进行的 加密密钥估计,可以使用除了 ECB (electric code book,电代码簿)模式 之外的其他模式,在所述ECB模式中,对于同一明文句子总是输出同一加 密句子。
随后,在步骤2,执行用于密钥表(存储器)的操作处理、密钥管理 处理和对代码验证处理模块13的建立,并将处理的内容定义为相同的完
整点(integrity point),所述密钥表安装在加密处理模块12中,后面将会 提及;所述密钥管理处理使用CPU专用密钥15来执行对公钥和私钥的生 成。
随后,在步骤S3,对存储在辅助存储器18中的程序执行验证处理。 在第一实施例中,包括操作系统(OS)在内的一般程序经由硬盘和网络存 储在辅助存储器18上,并对这些程序执行验证处理。后面将对所述验证 处理进行说明。
用于执行所述密钥表操作处理的程序组形成了一个库,这个库称为密 钥处理监控器。在步骤S4,将对安全硬件20的访问限制在密钥处理监控 器所操作的区段,所述安全硬件20包括加密处理模块12、代码验证处理 模块13和CPU专用密钥15。密钥处理监控器被操作,并且允许访问安全 硬件20的状态称为访问级别1。访问级别1由下述硬件来实现,所述硬件 监控程序计数器是否指示固定区域中步骤S4的密钥处理监控器的地址。
当与访问级别1相比时,使用包括所述OS在内的一般程序而进行的 操作被分类成访问级别2或访问级别3。在第一实施例中,OS被分类成访 问级别2,当在步骤S5激活OS时,在步骤S6执行经验证的程序。访问 级别2的经验证程序可以请求密钥处理监控器(即用于密钥处理的访问级 别1的步骤4),并经由所述密钥处理监控器间接执行诸如对自身空间的 加密或数据的加密和解密之类的操作。即使将来自CPU之外的程序分配作 为访问级别2,如果它们经过了验证,则也可执行密钥处理。然而,禁止 对除了公钥或安全硬件20之外的所有密钥进行直接访问,因此即使级别2 的程序存在问题,除了公钥之外的密钥信息也不会对外暴露。
在步骤S5的OS激活之后,在步骤S7执行访问级别3的未经验证程 序。访问级别3的程序无法访问除了公钥之外的所有密钥,也无法请求密 钥处理监控器的密钥处理。使用每个访问级处的程序之间的进程间通信来 执行从步骤S4到步骤S7的处理。
如上所述,在第一实施例中,如果在处理器激活时,使用存储在加密 ROM代码区域14中的程序而执行的引导处理成功,则建立了程序的完整 基本点,并且随着使用所述完整基本点来执行对包括OS在内的各种程序
的验证,从而扩大可靠程序范围,就可以实现由处理器自身逐步提升系统 安全性级别的目的。在启动操作之后,可以在每个验证单元处执行对代码 和数据的加密,因此对于保持程序之间的保密性来说,可以保持足够的完 整性。在第一实施例中,所说明的方法将访问级别1处的处理实现为由处 理器核心执行的软件,但级别1处的处理的一部分或整个处理也可实现为 微代码或接线逻辑。
图4是示出由图2中的代码验证处理模块13和加密处理模块12执行
的处理的概要的流程图。在该图中,在步骤S10处的代码验证处理模块的 初始处理之后,在步骤S11执行加密处理模块中的处理。
在图4中,起初在步骤S12对例如存储在主存储器17或辅助存储器 18中的程序执行代码验证处理。后面将对此处理的细节进行描述。随后, 在步骤S13确定验证是成功还是失败。如果验证失败,则在步骤S14执行 对代码执行的终止处理。
如果验证成功,则开始在加密处理模块中的处理,并在步骤S16确定 是否在每个页面单元处都指定了用于加密的密钥。如果未指定,则在步骤 S17使用随机数生成器等生成随机密钥,但如果指定了,则在步骤S18取 得所指定的密钥。未指定密钥的情况包括页面是新产生的等等情况,但指 定了密钥的情况包括在所产生的页面被页面调出(page-out) —次后重 复页面调入(page-in)的情况,或者存储了来自外部的加密页面的情况。 在步骤S19,在定义了密钥之后,生成加密页面条目,即后面将会提到的 翻译后备缓冲器(TLB)中的页面表条目(PTE),并分配加密页面以执 行对代码或数据的加密。
图5是在同一处理命令区域和数据区域中分配了不同的加密密钥以执 行对代码的加密时,代码验证及其加密处理的总体流程图。在该图中,步 骤S10,即由代码验证处理模块进行的处理与图4的情况下相同。
在图5中,如果代码验证成功,则在步骤S21,确定是否命令密钥被 指定为用于命令区域的密钥。如果未指定,则在步骤S22生成随机密钥, 但如果指定了,则在步骤S23取得所指定的密钥,并在步骤S24使用所述 随机密钥或指定密钥来生成加密命令页面表条目,即PTE,并在命令区域
中分配加密页面,以执行对命令区域的加密。
随后,在步骤S26,确定是否数据密钥被指定为数据区域中的加密密 钥。如果未指定,则在步骤S27生成随机密钥,但如果指定了,则在步骤
S28取得所指定的密钥,以在步骤S29生成用于数据的页面表条目,并分 配加密页面和对数据区域执行加密。
随后,参照图6到图9来说明在第一实施例中用于获取加密密钥的操 作。图6和图7分别是加密密钥获取操作示例(No. 1)中的处理器内部的 配置示例,以及其处理的流程图。在该示例中,假定在安全系统中预先在 处理器内部保持了处理器专用的RSA私钥,通过某种方法将相应的RSA 公钥输出到处理器外部,并且从外部给出的加密密钥已经被利用此公钥而 加密。即,例如,用于在页面单元处进行加密和解密的加密密钥是共用密 钥,并且利用公钥进行的再加密对于保持保密性是关键的。
图6示出了用于将加密密钥设定处理执行到处理器中的处理器10的 配置。处理器内部包括以下关键模块加密密钥设定单元21;解密单元 22;处理器专用RSA私钥23;以及翻译后备缓冲器(TLB) 24。 TLB内 部包括逻辑地址表25,物理地址表26和密钥表27,这些表对应于所述的 页面表条目(PTE)。从外部向加密密钥设定单元21给出用于对包括利用 处理器专用RSA公钥加密的加密密钥在内的加密密钥进行设定的请求。
图7是加密密钥获取处理的流程图。当在该图中处理开始时,起初在 步骤S31由加密密钥设定单元21接收加密密钥设定请求,在步骤S32,使 用处理器专用RSA私钥23,对解密单元22所接收的经加密的加密密钥进 行解密。在步骤S33由加密密钥设定单元21解密的加密密钥被存储在步 骤S32处的TLB24内部的密钥表27中,并且处理终止。
图8是加密密钥获取操作示例(No. 2)中的处理器的配置示例。在该 图中,以下是处理器IO与图6的示例No. 1的示例相比的不同之处设有 签名核实单元28,代替了解密单元22;并且存储了认证权威机构29的证 书作为认证权威机构的公钥,代替了处理器专用RSA私钥23。假定所述 的认证权威机构29的证书记录在处理器内部,以避免对此证书的非法替 换,并将包括具有认证权威机构的签名的加密密钥在内的加密密钥设定请
求提供到加密密钥设定单元21 。
图9是加密密钥获取操作示例(NO. 2)的处理的流程图。当在该图中
处理开始时,起初在步骤S36由加密密钥设定单元21与签名一起接收加 密密钥,在步骤S37,由签名核实单元28使用认证权威机构的签名和公钥 来核实接收到的加密密钥,在步骤S38确定核实是否成功。如果核实成 功,则将加密密钥设定单元21所接收的加密密钥存储在TLB 24内部的密 钥表27中,然后处理终止。或者,如果核实失败,则处理立即结束。为 了提高加密密钥的可靠性,可以既执行操作示例No. 1,即保持加密密钥 的保密性,又结合执行操作示例No. 2,即识别加密密钥。
图IO是在第一实施例中,当在加密命令区域中执行命令期间检测到 非法命令时的非法命令对待处理。在该图中,如果在步骤S41检测到非法 命令,则在步骤S42确定该非法命令是不是加密页面内的命令,如果是非 加密页面内的命令,则在步骤S43执行常规的非法命令对待处理。如果确 定其是加密页面内的命令,则在步骤S44确定出进行了命令篡改,并执行 进程锁定(process lock down)作为用于篡改的命令篡改对待处理,或执 行对挂起处理的取消,以停止对指令代码的执行。
图11是在图5所说明的对同一进程在命令区域和数据区域中分配了 不同加密密钥的情况下,防止在执行存储在数据区域中的指令代码之前将 命令检测为非法命令的密钥替换处理流程图。这种指令代码在数据区域中 的存储发生在执行编程IO (PIO),即由程序对命令进行拷贝的时候。
在图11中,起初,当在步骤S46通过PIO将指令代码拷贝到数据区 域中时,在步骤S47引导密钥替换处理。在该处理中,在步骤S48读取与 存储了命令的数据页面相对应的数据PTE,在步骤S49,在删除PTE之 后,取得存储在该条目中的加密密钥。此外,使用数据PTE的内容,即加 密密钥,生成密钥存储在密钥表27中的命令PTE。并且,在步骤S51将 命令PTE写入TLB中,然后在步骤S52,分支执行到拷贝了命令的拷贝区 域,最后执行存储在拷贝区域中的命令。
在第一实施例中,如图2所说明的那样,在处理器10中仅安装了一 个包括执行单元和缓存的核心11,并且核心11作为安全核心,在作为安
全处理器的操作中扮演着中心角色。相反,在被称为多处理器系统或多核 心系统的系统中,处理可以被分割,例如,可将多个核心分类成执行安全 操作的安全核心和执行通常操作的通常核心。下面将参照第二实施例来说 明这种处理器系统。
图12是第二实施例中的处理器的基本配置框图。与示出第一实施例 的图2相比,有以下几点不同在该图中代替核心11安装了安全核心31
和通常核心32;在这两个核心31和32与加密处理模块12或代码验证处 理模块13之间安装了总线接口 33;在安全核心31与加密处理模块12之
间执行密钥控制;在安全核心31与代码验证处理模块13之间执行验证控
制;另外CPU专用密钥15仅连接到安全核心31。基本上,第二实施例的 特征在于,作为图3所说明的安全硬件的加密处理模块12、代码验证处理 模块13和CPU专用密钥15仅由安全核心31控制。
在第二实施例中,对安全硬件20的访问仅限于安全核心31。在第一 实施例中,在作为安全操作的图2的步骤S4的密钥处理监控器的操作中 可能涉及用户软件,并且如前所述,通过对程序计数器的硬件监控来限制 访问。在第二实施例中,不涉及软件,在软件错误(bug)方面没有问 题。
在第一实施例中,例如,在共享系统使用同一核心之前,必须共享这 种访问级别。然而,由于在第二实施例中使用了不同的核心,因此在切换 访问级别时所要求的诸如计数器清零之类的软件处理的量变少了。
图13是第二实施例中所使用的处理器的基本处理流程图。与示出第 一实施例的图3相比,处理中有以下几点不同。如果假定图12中的安全 核心31和通常核心32具有基本平等的关系,则在通电时,各个核心使用 存储在加密ROM代码区域14中的程序来执行引导进程。S卩,在步骤 Sl,在安全核心的引导进程中使用CPU专用密钥15来将加密程序解密。 如果引导成功,则该状态被定义为程序的基本可靠点,随后,安全核心继 续例如主要作为密钥处理监控器而操作。
相反,通常核心32主要负责与访问级别2等同的处理,例如OS。响 应于图13中步骤S3的安全核心侧辅助存储器上程序的验证处理,在步骤S55,在通常核心32侧通电,并利用加密ROM代码区域14中的程序来执 行引导进程。假定由安全核心31确认了加密ROM代码区域14中的程序 绝对可靠,则通常核心侧的引导过程基本上没有任何问题地结束,并在步 骤S5连续执行诸如OS之类的其他引导进程。
图14是在第二实施例中,当安全核心和通常核心不具有平等关系, 并且通常核心由安全核心控制以便严格实施安全性时,处理器的配置框 图。与安全核心31和通常核心32具有基本平等关系的图12相比,处理器 的配置组件是相同的,但区别在于核心控制信号是从安全核心31给出到 通常核心32的。核心控制信号的实际示例包括复位信号和中断信号。
图15是图14所示的处理器的全部处理的流程图。在该图中的安全核 心31侧,在步骤Sl的引导进程之后,代替步骤S2,在步骤S57建立密钥 表操作处理、密钥管理处理和验证处理模块时,还执行系统审计(system auditing)。在该系统审计中,核实系统配置改变的存在以及辅助存储器上 程序中改变的存在,以便确认系统和系统配置的安全性功能没有问题。
随后,在步骤S58从安全核心31侧引导通常核心,并且作为响应, 在步骤S59,在通常核心32侧对存储在加密ROM代码区域14中的程序 进行引导。随后的处理与图3所示情况下的处理相同。
图16是在图14所示的处理器中,作为安全核心31对通常核心32进 行的控制处理之一的通常核心停止控制处理的说明图。在该图中,例如, 当在步骤S6在通常核心侧执行经验证的程序时,向安全核心31侧请求了 用于验证数据的密钥处理。当检测到在步骤S4的密钥处理监控器的操作 中的验证失败以及违反了安全性标准时,通过来自安全核心31侧的指 令,由通常核心32执行的诸如步骤S6处对经验证程序的执行和步骤S7 处对未经验证程序的执行之类的处理被中止。
图17是图14所示的安全核心31对通常核心32的控制处理的流程 图。在步骤S61,在安全核心31侧执行引导。当在步骤S62完成处理时, 在通常核心32侧执行对通常核心32的引导控制。然后,在步骤S63引导 通常核心,并在步骤S64,在通常核心侧执行不需要密钥和验证处理的常 规处理。在安全核心31侧,在步骤S65始终执行使用发送自通常核心32
侧的监控信息而进行的验证/监控处理。在步骤S66确定是否产生错误。如 果没有错误,则继续步骤S65之后的后续处理,但如果有错误,则通过向
通常核心32侧请求中止或中断,来中止通常核心32侧的处理。为了由安 全核心控制通常核心,例如,可以使用上述的复位信号,但作为另一种方 法,可以使用CPU的NMI (不可屏蔽中断)。
图18是在第二实施例中,具有密钥生成机制的处理器的配置框图。 除了图12所示的配置以外,图18的处理器还包括密钥生成机制34。
图19是在第二实施例中,由安全核心生成密钥以及使用所生成的密 钥的加密处理的说明图。在该图中,处理器中的安全核心31使用CPU专 用密钥15和密钥生成机制34,生成公钥Ke、 N和私钥Kd 35。例如,其 经由通常核心32将公钥Ke和N通知到处理器外部。在此情况下,不将私 钥Kd递送到通常核心32侦ij,如前所述,通常核心32无法执行除了公钥 之外的任何密钥处理。
如果已经使用公钥和原文P进行了加密的加密语句C被从外部输入到 通常核心32,则通常核心32向安全核心31请求解密处理,因为通常核心 32并不持有私钥Kd。随后,安全核心31使用私钥Kd将文本P解密。
接下来说明本发明的第三实施例。图20是第三实施例中的处理器的 基本配置框图。该图中的处理器40包括执行单元41、加载/存储单元42、 加密电路43和解密电路44。另外,加载/存储单元42包括缓存45和存储 器管理单元46。
和第一及第二实施例一样,第三实施例是基本上执行安全操作的处理 器。和第一实施例中的加密处理模块一样,其基本特征在于,用于存储的 加密密钥和用于加载的解密密钥在处理器40中从执行单元41指定,用于 执行对所存储的数据的加密操作的加密电路43,以及用于对包括所取得的 命令在内的所加载的数据进行解密的解密电路44。
在图20所示的第三实施例中,将明文作为命令和所存储的数据,从 执行单元41给出到加载/存储单元42,并将加载数据作为明文从加载/存储 单元42给出到执行单元41。如图2所说明的那样,经由加载/存储单元42 将命令给出到主存储器或辅助存储器,并将所存储的数据作为明文给出到
加密电路43,然后作为加密的存储数据输出到主存储器。或者,从主存储 器输入的加密加载数据被解密电路44所解密,以作为明文的加载数据给
出到加载/存储单元42。
图21是在第三实施例中,具有存储加密密钥和解密密钥的密钥表存 储器的处理器的配置框图。在该图中,密钥表存储器47存储用于对所存 储的数据进行加密的加密密钥,并且密钥表存储器48存储用于对所加载 的数据进行解密的解密密钥。从执行单元41,用于存储的密钥号指令和加 密密钥的更新(renewal)指令被给出到密钥表存储器47,用于加载的密 钥号指令和解密密钥的更新指令被给出到密钥表存储器48。后面将对密钥 表存储器的配置进行详细描述。
图22是在第三实施例中,具有密钥表存储器的处理器的配置框图, 所述密钥表存储器存储用于取命令的解密密钥,以便对要取得的指令执行 解密。在该图中,执行单元41在命令访问状态下执行处理,以取得例如 存储在主存储器中的命令。例如,命令取得数据作为来自主存储器的加载 数据被给出到解密电路44,并且在此情况下,执行单元41将命令访问状 态标志给出到密钥表存储器48。解密电路44使用解密密钥执行对命令取 得数据的解密,以用于来自密钥表存储器48的命令取得输出,并经由加 载/存储单元42将所述命令取得数据作为明文给出到执行单元41。如果需 要,则从执行单元41,将用于命令取得的解密密钥的更新指令给出到密钥 表存储器48。
图23是在第三实施例中,具有密钥选择寄存器的处理器的配置框 图,所述密钥选择寄存器给出用于密钥表存储器的密钥号指令。在该图 中,安装了密钥选择寄存器51以在存储用于存储的加密密钥的密钥表存 储器47与执行单元41之间,将用于存储的密钥号指令给出到密钥表存储 器47,并且安装了密钥选择寄存器52以在存储用于加载的加密密钥的密 钥表存储器48与执行单元41之间,将用于加载的密钥号指令给出到密钥 表存储器48。用于存储的密钥选择寄存器的更新指令从执行单元41给出 到密钥选择寄存器51,用于加载的密钥选择寄存器的更新指令从执行单元 41给出到密钥选择寄存器52。
与在图21中,响应于来自执行单元41的各个执行命令而输出密钥号 指令相反,在图23中在命令的某个间隔处给出寄存器更新指令,并使用 相同的密钥执行加密/解密直到给出下一更新指令为止。另外,可以既安装 用于将密钥号指令从执行单元给出到密钥表存储器的直接路线,又安装经
由密钥选择寄存器的间接路线,使得将用于给出关于执行单元41响应于
执行命令而应使用哪条路线的指令的信号给出到密钥表存储器。
图24是在第三实施例中,具有与执行单元的命令访问整体相对应的 密钥选择寄存器的处理器的配置框图。在该图中,和图22中一样,执行 单元41处于例如从主存储器中取得命令的命令访问状态,并且将命令访 问状态标志从执行单元41给出到密钥选择寄存器52,密钥选择寄存器52 给出与存储用于命令取得的解密密钥的密钥表存储器48相对应的用于命 令取得的密钥号指令。
图25是在第三实施例中的密钥表存储器的配置示例的说明图。在该 图中,相应的加密密钥及其属性被存储在密钥表存储器中。执行单元41 将密钥号指令直接或经由密钥选择寄存器给出到密钥表存储器,所述密钥 号被用作读取地址。并且加密密钥或解密密钥被与用于加密电路43或解 密电路44的加密方法的规范信息、或者是指示出加密必要性的属性数据 一起给出。从执行单元41给出的密钥更新号指令被用作写入地址,并写 入密钥更新数据。
取决于加密方法,每个条目的属性数据指示出条目的有效/无效、加密 的开/关,和加密方法及加密模式,以及加密密钥。如后文所述,指示加密 开/关的数据对应于在加载和存储明文数据而不执行加密/解密时的指令。
图26是在第三实施例中的加密电路或解密电路的配置示例的说明 图。例如,图20中的解密电路44基本上配置有解密流水线(pipe) 55和 总线仲裁器57。解密流水线55响应于从执行单元51经由命令缓冲器59 对命令信息的输入而进行操作。解密流水线55是N状态流水线,用于将 从例如主存储器经由总线输入的加密数据解密成明文数据。此N级流水线 是通过将N级的处理56连接而形成的,所述处理56是一步共用密钥加密 处理的示意性示例。然后,从解密流水线55输出的明文数据被经由总线
仲裁器57,存储在例如图20所示的缓存45中。
加密电路43基本上包括加密流水线60和总线仲裁器61。例如,从缓 存45将32比特明文数据给出到加密流水线60,并且由N级流水线使用从 执行单元41指定的加密密钥而加密的加密数据被输出到总线上,该总线 例如经由总线仲裁器61连接到主存储器。和解密流水线55的情况一样, 加密流水线60的操作由执行单元41经由命令缓冲器59给出的命令信息来 控制。另外,加密流水线60每级的处理的基本结构与解密流水线55的相 同。而且,多种加密方法包括AES128, DES和SC2000都可作为加密方 法。对于AES方法,已经调整了 AES192和AES256规范。
例如,在本发明中,总线仲裁器61对连接到主存储器或辅助存储器 的总线执行仲裁,并且基本上与安全处理器的操作无关。
图27是示出加密电路和解密电路的配置的框图,其中留下数据的一 部分作为明文数据而非对全部数据执行加密,例如,添加数据传递功能以 使得数据在主存储器之间输入和输出。在该图中,加密电路和解密电路的 基本配置与图26中的相同。然而,在加密电路侧,从缓存45给出的明文 数据中无需加密的数据被直接给出到旁路选择器63而不经过加密流水线 60,并与来自加密流水线60的加密数据输出一起存储在多个旁路缓冲器 64的任意之一中,然后经由总线仲裁器61给出到连接到主存储器的总 线。
旁路选择器63对明文数据或加密数据的选择也由来自执行单元41的 命令信息经由命令缓冲器59而控制。由于由加密流水线60执行处理要花 费时间,因此可以通过使用旁路选择器63而进行的控制,使无需加密的 明文数据超过要被给出到主存储器侧的加密数据。图27中加密所必需的 密钥被经由密钥寄存器69给出到加密流水线60。
例如,在从连接到主存储器的总线承载的数据当中,未被加密的明文 数据被直接给出到旁路选择器66而不经过解密流水线55,使用旁路选择 器66与已被解密流水线55解密的明文数据一起存储在多个旁路缓冲器67 之一中,然后经由总线仲裁器57输出到缓存45。
图28是在第三实施例中,用于直写(write-through)缓存系统的读取
修改写入系统的说明图。如果缓存45使用直写系统,则若在存储数据期 间发生缓存错误则数据不被存储在缓存45中,并且数据被直接存储在主 存储器中。如果要存储的数据的大小小于1字节,则在主存储器中存储1 字节数据。然而,在第三实施例中,所存储的数据基本上是起初由加密电
路43加密,然后存储在主存储器中。在加密进程中,需要一定量的数据
作为所存储的数据,使得即使加密1字节数据并将之存储在主存储器中, 也难以执行正确的解密。
例如,在图28的加载/存储单元加载/存储单元42中,如果必须在主 存储器中存储1字节数据,则从主存储器中加载加密进程所必需的长度的 数据,并与要存储的1字节数据合并。于是,合并后的数据经历读取修改 写入操作,以使得合并后的数据被加密并存储在主存储器中。
艮口,例如,如果(1)处的缓存存储命令,即1字节数据应被存储在 缓存中这样一个命令在(2)处被确定为缓存错误,则在(3)从缓存45 向主存储器发出作为命令的加载,在(4)经由解密电路44而来的明文加 载数据被存储在读取修改写入(RMW)缓冲器71中,在(5)将要在 (5)存储的数据给出到RMW缓冲器71,在(6)将要存储的数据和所加 载的数据合并,并将合并后的数据给出到加密电路43,并在(7)将存储 作为命令发出以用于主存储器。
接下来将说明本发明的第四实施例。第四实施例和第三实施例之间的 区别如下。在第三实施例中,加密电路中使用的加密密钥和解密电路中使 用的解密密钥的密钥号,例如密钥号是由执行单元41指定的,与之相反 的是,在由执行单元41执行命令时,由执行单元41指定要存储或加载的 数据的访问地址,并基于所述地址来选择加密密钥或解密密钥。
图29是第四实施例中的处理器的基本配置框图。图中所示的处理器 40除了执行单元41、加密电路43和解密电路44之外,还包括密钥表存储 器73,该密钥表存储器73响应于执行单元41所给出的地址,将用于存储 的加密密钥给出到加密电路43,并将用于加载的解密密钥给出到解密电路 44。
图30是处理器的配置框图,其中响应于由执行单元指定的存储数据或加载数据的逻辑地址来选择密钥。与图29所示的处理器不同,本图中
的处理器40包括存储用于存储的加密密钥的密钥表存储器74和存储用于 加载的解密密钥的密钥表存储器75,以及配备了缓存和存储器管理单元 46的加载/存储单元42,这与图20的处理器中相同。从执行单元41给出 到加载/存储单元42的地址,即存储数据或加载数据的地址是逻辑地址, 然后将这些逻辑地址给出到密钥表存储器74或75,以选择用于存储的加 密密钥或用于加载的解密密钥。然后将所选择的密钥给出到加密电路43 或解密电路44。从执行单元41,将用于存储的加密密钥的更新指令给出 到密钥表存储器74,并将用于加载的解密密钥的更新指令给出到密钥表存 储器75。
图31是在第四实施例中,响应于数据的物理地址而选择了密钥的处 理器的配置框图。与图30所示的处理器相比,从加载/存储单元42分别给 出存储数据的物理地址或加载数据的物理地址以用于密钥表存储器74或 75,将用于存储的加密密钥给出到加密电路43,并将用于加载的解密密钥 给出到解密电路44。
图32是第四实施例中的密钥表存储器的配置图。与第三实施例的图 25相比,如果从执行单元侧给出从第0比特到第31比特的32个比特作为 数据的访问地址,则用这些地址作为读取地址来选择所存储的加密密钥, 并将所述加密密钥与加密属性一起给出到加密电路43或解密电路44。如 果对作为存储器读取地址的每4k字节使用不同的密钥,则从第12比特到 第31比特的地址被用来选择加密密钥。在此情况下,后面将会提到,4k 字节对应于主存储器中1页的大小。如果将4k字节称为用于加密的地址 单元,则密钥表存储器的条目数据包括排除了总条目数与地址单元之积的 字节之后的地址标签。例如,如果条目的总数是32 (5比特),则从第17 比特到第31比特的地址成为地址标签。
图33是在第三实施例中,具有多路配置的密钥表存储器的说明图。 该图中的密钥表存储器由从密钥表1到密钥表4的多个表组成,并选择存 储在与从执行单元侧给出的访问地址相对应的四个表中之一的密钥和加密 属性,以给出到加密电路43或解密电路44。
图34是使用联合存储器系统的密钥表存储器的配置示例的说明图。 在该图中,在与比较选择器77所存储的加密密钥相对应的目标地址的范
围内,将访问地址32比特分类到任意之一中,选择对应于所分类范围的 加密密钥,以与加密属性一起给出到加密电路43和解密电路44。在图34 中,通过排除地址单元量而不管条目总数而得到的地址标签被包括在条目 中。如果地址单元是4k字节,则从第12比特到第31比特的地址成为地址 标签。
图35是在第四实施例中,响应于数据的逻辑地址或者物理地址而选 择密钥的处理器的配置框图。在该图中,数据的逻辑地址从执行单元41, 或者物理地址从加载/存储单元42分别给出到密钥表存储器74或75。或 者,从执行单元41将用于所存储数据的逻辑地址和物理地址的选择指令 给出到密钥表存储器74。并且,从执行单元41将用于所加载数据的逻辑 地址和物理地址的选择指令给出到密钥表存储器75。响应于这些选择指 令,选择与这些逻辑地址或物理地址中的任意地址相对应的密钥,并将之 分别给出到加密电路43和解密电路44。
图36是包括密钥选择寄存器的处理器的配置示例,所述密钥选择寄 存器将对逻辑地址和物理地址的选择指令给出到密钥表存储器。与图35 相比,在执行单元41与密钥表存储器74或75之间安装了各自的密钥选择 寄存器78和79,并且用于存储数据的逻辑地址和物理地址的选择指令、 以及用于加载数据的逻辑地址和物理地址的选择指令被输出到密钥表存储 器74和75。从执行单元41到密钥选择寄存器78和79,给出各自的密钥 选择寄存器的更新指令。
图37是图35和图36中的密钥表存储器的配置示例。在该图中,密钥 表存储器具有物理地址密钥表和逻辑地址密钥表,并分别响应于物理地址
和逻辑地址而输出物理密钥和逻辑密钥。并且,响应于来自执行单元41 侧的密钥选择指令,或者来自密钥选择寄存器的选择指令,物理密钥或逻 辑密钥被逻辑和物理密钥选择单元81与加密属性一起输出到加密电路43 或解密电路44。
图38是在第四实施例中,在加载/存储单元42内的存储器管理单元(MMU) 46中具有作为密钥表的密钥表存储器内容的处理器的配置示 例。
图39和图40分别是在所述存储器管理单元和缓存访问系统中的密钥 信息的存储格式的说明图。 一般地,响应于MMU46内部的翻译后备缓冲 器(TLB)中的物理存储器的每一页,逻辑地址与物理地址之间的对应关 系被存储在每个条目中。在图39中,对应于页的密钥信息被存储在TLB 的每个条目中。例如,如果数据访问地址是逻辑地址,则选择与所述逻辑 地址相对应的条目,并由属性检查83检查响应于该条目的数据属性和访 问属性,然后将由缓存命令生成84生成的命令发送到缓存45。
在缓存45侧,响应于接收到的命令的内容来检索标签。在缓存命中 的情况下,立即将数据相应返回到执行单元41侧,而在缓存缺失的情况 下,将对应于所述标签的命令发出到包含加密电路43和解密电路44的加 密/解密总线接口。在此情况下,使用从条目中读取的密钥信息和物理地 址,例如在将来自主存储器的响应数据解密之后,将所述解密后的数据存 储在缓存中,然后将数据响应返回到执行单元41。
图40是当在存储器管理单元中安装地址映射寄存器(AMR)来代替 TLB时的密钥信息存储格式的说明图。在该图中,与TLB的存储内容相 对应的信息被存储在寄存器而非存储器中。例如,页面大小可以是可变 的,使得单个条目可以覆盖很大的数据区域。
图41是处理器的配置示例,其中在加载/存储单元中的存储器管理单 元(MMU)的操作被暂停,即处于关(OFF)状态时,将加密密钥从执行 单元41给出到加密电路43,并将解密密钥给出到解密电路44。在该图 中,将MMU的开/关信号给出到加密电路43和解密电路44。如果所述信 号关,则加密电路43或解密电路44使用从执行单元41给出的密钥,或者 如果所述信号开,则其使用从存储器管理单元46内部的TLB 87或AMR 88给出的密钥,以便执行加密或解密处理。
图42是图41的加密电路或解密电路中的密钥切换系统的说明图。在 该图中,加密电路或解密电路的配置基本上与第三实施例的图26中相 同,但添加了密钥选择器90。根据从执行单元给出的MMU开/关信号的 值,在关的时候由密钥选择器90选择从执行单元给出的密钥,而在开的
时候由密钥选择器90选择从TLB或AMR给出的密钥,然后将所选择的 密钥给出到加密流水线60或解密流水线55。
图43是第三或第四实施例中的执行单元的1/0信号的说明图。在第三 实施例的图20中,必需的信号包括作为输出信号的加载加密密钥、存储 加密密钥、存储数据和命令,以及作为输入信号的加载数据(圆形记 号),并且访问地址和加载/存储状态信号是根据结构而存在的信号(三角 形记号)。
在图21中,加载密钥号指令而非加载解密密钥的输出信号,以及存 储密钥号指令的输出信号是必需的。另外,由于对于执行单元,对密钥表 存储器的更新所具有的值与寄存器访问相等,因此寄存器相关的I/O信号 也变得必要。
在图22中,与命令访问状态相对应的I/0信号是必要的,并且作为输 出信号的执行状态信号以及作为输入信号的命令取得数据被认为是必需 的。
在图23和图24中,除了图20和图21中所使用的以外,还添加了密
钥选择寄存器,寄存器相关的i/o信号也是必需的。
对以下说明进行了简化,仅说明特征性的部分。将图21、图22和图 23合计起来,除了在合并这三种情况时的1/0信号以外,还添加了指示要 执行的进程对应于哪些管理员和用户的管理员/用户状态信号,以及上下 文,即进程ID (标识符)的数据。在第三实施例中,除了从执行单元输出 的密钥号指令信号以外,这些管理员/用户状态信号和上下文ID数据也用 于选择加密密钥和解密密钥。
图29以后的对应于第四实施例。对数据的访问地址成为必需的输出 信号。此外,用于选择逻辑地址或物理地址的密钥选择指令信号也在图35 和图36中输出。
在图38中,因为在存储器管理单元的TLB中添加了密钥表,所以从 配置方面来看,存在寄存器相关的信号。另外,图中示出了添加了管理员/ 用户状态信号和上下文ID数据时的情况。在第三实施例中,这些添加的
信号用于选择加密密钥和解密密钥,以及访问地址。
图41包括响应于指示存储器管理单元(MMU)的开/关的状态信号的
值而使用来自执行单元的密钥输出的情况,以及使用来自TLB的密钥输出 的情况。结果,所有的I/O信号以及管理员/用户状态信号和上下文ID数
据变为必需的。
如上所述,在第三和第四实施例中,从执行单元指定密钥以用于数据 和指令代码的加密/解密,使得加密处理可以在对应于要执行的命令的级别 上执行。而且,由于加密/解密密钥由密钥选择寄存器或访问地址来指定, 因此可以对每个程序单元或每次访问执行加密处理,从而,可以响应于多 种条件而选择要执行的处理。
接下来将说明本发明的第五实施例。第五实施例示范了一种更精确的 配置,以便实现作为第一实施例而提出的安全处理器的安全操作。下面将 说明与其配置相对应的验证密钥的设定和诸如进程验证之类的操作,以便 进一步提高进程(程序)的可靠性。
图44是用于说明第五实施例的处理器中所必需的功能性配置图。在 该图中,处理器100连接到物理存储器101 (例如图2中的主存储器 17) 、 1/0设备102 (例如辅助存储器18)。
处理器100包括存储器访问控制单元105,其控制对物理存储器 101和1/0设备102的访问;命令解释单元106,其对要执行的命令进行解 释;验证单元107,其对存储执行代码的页面执行验证;加密/解密和签名 生成/核实单元108,其例如执行对已被验证的页面的加密/解密;安全上下 文标识符生成单元109,其在生成进程时生成与进程(即上下文)相对应 的安全上下文标识符;安全上下文标识符消除单元110,其在消除进程时 消除相应的标识符;处理器专用密钥111,其用于加密;经验证信息主要 存储单元112,其存储与例如存储在物理存储器101中的物理页面相对应 的经验证信息;以及安全DMA113,其用于在访问存储器时进行直接存储 器访问。
处理器100的内部包括图39中所说明的翻译后备缓冲器(TLB) 114,以及上下文信息存储单元115。 TLB 114存储页面表条目(PTE)
122,所述PTE 122例如参照物理页面,指示出逻辑地址和物理地址之间 的对应关系。上下文信息存储单元115包括程序计数器(用于保持程序计 数器的值的计数器)117、存储安全上下文标识符的安全上下文标识符寄 存器安全上下文标识符寄存器118、存储验证所需的密钥的验证密钥寄存 器验证密钥寄存器119,以及寄存器组120。
而且,物理存储器101例如存储每个物理页面单元124的执行代码, I/O设备102存储执行代码和数据,其以为每个页面单元125添加了验证 信息126的格式存储。在第七实施例中,使用存储在验证密钥寄存器119 中的验证密钥,执行对其安全上下文标识符存储在安全上下文标识符寄存 器118中的上下文(进程)的执行代码的验证。
图45是一个方法的说明图,所述方法用于在例如用户所使用的程序 之类的在处理器上运行的程序被激活并且上下文生成命令被发出时,生成 对应于上下文的安全上下文标识符。上下文生成命令被给予到处理器中的 命令解释单元106,由安全上下文标识符生成单元109响应于解释的结果 而生成安全上下文标识符,并且其值被设定在安全上下文标识符寄存器 118中。在第五实施例中,系统被配置以使得仅可通过该方法将所述值设 定在安全上下文标识符寄存器118中。因此,不可能篡改安全上下文标识 符以伪装另一上下文。所述上下文是基本上基于面向对象编程的概念。更 一般而言,其对应于进程的执行状态,即程序的执行状态。在第五实施例 中,使用术语"上下文"来代替进程。
图46是生成安全上下文标识符的实际方法的说明图。如图中所示的 随机数生成器127或单调递增计数器单调递增计数器128可用于其生成。 相同的值被作为随机数而生成的概率不是零,在初始的一个周期之后,计 数器值呈现相同的值。因此,无法严格保证标识符的唯一性。然而,可以 通过使用具有足够长的比特长度的安全上下文标识符来基本避免这种问题 的发生。
或者如图所示,可以在接合单元(joint unit) 129处将处理器现有的上 下文ID与随机数生成器127的输出或单调递增计数器128的输出合并, 以生成安全上下文标识符。现有的上下文ID是由OS建立的任意值,其唯
一性一般是不受保证的。
图47是消除安全上下文标识符的方法的说明图。在该图中,当在处 理器上允许的程序发出上下文消除命令时,处理器使安全上下文标识符寄 存器118的内容无效。可以通过以下方式实现无效化的方法通过清0, 或者在寄存器中为表示有效/无效的标志给出一个存储区域,然后可将该标 志设定为无效。
图48是图44中的验证的说明图,例如对每个页面单元,要将信息 126添加到执行代码125上。在处理器内的上下文信息存储单元115中的 验证密钥寄存器119中,存储了用于使用验证信息126而进行的执行代码 125的验证处理的密钥。例如,如果利用RSA的电子签名被用作验证信 息,RSA公钥被用作验证密钥,但如果SHA (安全哈希算法)-1 HMAC (基于哈希的消息验证代码)被用作共享密钥系统,则验证密钥是20字 节的值。
当由OS生成上下文时,即在对上下文信息进行初始化的阶段,将密 钥存储在验证密钥寄存器119中,同时检査验证密钥的合法性。如果验证 密钥本身是由敌对者生成的,并且使用此密钥生成了对应于恶意执行代码 的验证信息,则验证处理本身会毫无问题地成功,并且处理器的验证功能 被禁止。因此,如何保证验证密钥的合法性是重要的关心内容。
图49是在验证密钥是公钥的情况下,验证密钥寄存器中的密钥设定 系统的说明图。在该图中,假定所使用的验证密钥是RSA公钥,并且作为 认证权威机构134的公钥的认证权威机构的证书例如是在从工厂发货时就 嵌入在处理器中的,因此随后的替换和修改被禁止。要设定在验证密钥寄 存器119中的验证密钥由认证权威机构私钥以签名的形式给出。例如,当 生成上下文时,将验证密钥设定命令给出到处理器,其命令由命令解释单 元106解释,并在验证密钥由签名核实单元108核实之后,验证密钥被存 储在验证密钥寄存器119中。结果,在验证密钥寄存器中仅建立了由认证
权烕机构签名的公钥。
图50是图49中的验证密钥建立处理的流程图。在该图中,起初在步 骤S71由命令解释单元106取得验证密钥建立命令,在步骤S72,由签名 核实单元108使用签名认证权威机构的签名和公钥来核实所取得的公钥。
在步骤S73确定核实是否成功。如果成功,则将包括在命令解释单元106 所取得的建立命令中的公钥存储在验证密钥寄存器119中,并且处理终
止。而如果核实失败,则处理立即终止。
图51示出了在验证密钥是共享密钥的情况下的密钥建立系统,图52 是密钥建立处理的流程图。如果共享密钥被用作验证密钥,则必须从将验 证信息添加到执行代码上的一侧通过安全方法接收验证密钥。在此情况 下,假定已使用RSA公钥加密的HMAC密钥被与验证密钥建立命令一起 接收,然后在处理器侧被使用解密单元108用处理器专用RSA私钥137解 密,并存储在验证密钥寄存器119中。
在图52所示的流程图中,在步骤S76由命令解释单元106取得验证 密钥设定命令,在步骤S77,由解密单元108使用处理器专用RSA私钥 137将包括在命令中的加密HMAC密钥解密,在步骤S78,由命令解释单 元106将解密后的HMAC密钥存储在验证密钥寄存器119中,然后处理终 止。
图53是一个页面调入系统的说明图,其中其安全上下文标识符已被 生成的上下文的执行代码被存储在主存储器中,即存储在物理存储器101 的物理页面中,并且物理页面被验证以能够开始执行处理。图54是页面 调入处理的流程图。
在此页面调入处理中,起初由OS将执行代码存储在物理页面中,并 设定页面表条目(PTE)中的各种数据,所述OS请求验证单元107建立 安全页面标志字段,作为对上下文,即物理页面的验证请求。物理页面由 验证单元107响应于请求而验证,并建立安全页面标志字段的标志,以使 得允许使用PTE。
在图54的处理流程图中一旦处理开始,则在步骤S80,由OS将执行 代码存储在空闲的物理页面中,在步骤S81,由OS将物理页面的顶地址 和相应的逻辑页面的顶地址设定为TLB中的PTE的物理地址和逻辑地 址,并且在步骤S82,在PTE中设定安全上下文标识符的值。例如,如图 45和图46中所说明的那样,在发出上下文生成命令时所生成的安全上下
文标识符和存储在安全上下文标识符寄存器118中的安全上下文标识符可
由OS读取的假定之下,OS将所读取的安全上下文标识符建立在PTE中。
随后,如果需要,在步骤S83由OS在PTE中设定用于该页面的读取/ 写入属性,并且在步骤S84, OS请求作为硬件的验证单元107建立安全页 面标志字段。主要假定OS本身已被验证,并且设定安全页面标志字段基 本上是OS任务,但这里,经验证的OS请求硬件建立标志。
在步骤S85,在验证单元107处执行验证处理。后面将会描述该处理 的细节。在该处理中,使用对应于安全上下文标识符的验证密钥,以及存 储在经验证信息主要存储单元112中的验证信息,来验证物理页面。然 后,在步骤S86确定验证是否成功。如果成功,则安全页面标志字段的标 志被建立,并且其PTE变为可用。相反,如果失败,则安全页面标志字段 的标志被复位,并且其PTE被禁止使用,并在步骤S89由OS执行恢复或 错误处理。
图54所示处理的主要目标是可以直接为TLB中的PTE设定值的处理 器。然而,例如,在为主存储器上的PTE设定值,并且TLP充当缓存的 处理器中,从步骤S80到步骤S83的处理被执行用于主存储器上的PTE, 并且在内容被存储在TLB中的缓存中之后,执行步骤S84之后的操作。
图55是图53所示的验证单元107的配置示例,图56是图54所示的 步骤S85处的验证处理的流程图。在此情况下,为整个页面计算SHA-1 值,并将其与电子签名的解密结果相比较。如图56所示,自然可以将验 证单元107的操作实现为由软件而非硬件进行的处理。
在图55中,以被给予SHA-1哈希运算器140的64字节的部分来划分 物理页面125,其中计算整个页面上的哈希值,并将其给予到比较器 142。相反,存储在经验证信息主要存储单元112中的RSA电子签名被与 存储在验证密钥寄存器119中的RSA公钥一起给予到RSA解密设备 141,并且作为其输出的解密哈希值被比较器142与SHA-1哈希运算器 140的输出相比较。如果它们彼此匹配则确定验证成功,而如果它们彼此 不匹配则确定失败。
在图56所示的验证处理中,在步骤S90以64字节为单位读取物理页 面,在步骤S91执行哈希运算,并在步骤S92确定是否到达页面末端。如 果未到达页面末端,则重复步骤S90及其以后的处理。
如果达到末端,则在步骤S93,电子签名使用RSA公钥继续解密处 理,并且在步骤S94,将解密结果与哈希运算的结果相比较。如果它们彼 此匹配,则在步骤S95建立安全页面标志字段,而如果它们彼此不匹配, 则在步骤S96将安全页面标志字段复位,以结束处理。
如上所述,在第五实施例中,在将执行代码页面调入到物理存储器 (主存储器)中时验证执行代码,并建立指示验证成功的安全页面标志。
接着,将参照第六实施例来说明在本发明中,执行物理页面上的命令 时的存储器访问控制。图57是在执行物理页面上的命令时的存储器访问 控制系统的说明图。在该图中,如果在安全上下文标识符寄存器118中存 在有意义的值,并且如果建立了 PTE 122的安全页面标志字段,并且如果 存储在安全上下文标识符寄存器118中的标识符的值与PTE 122上的上下 文标识符的值彼此匹配,则允许执行物理页面124上的命令。此控制由存 储器访问控制单元105来执行。在此情况下,对数据读取/写入属性的检查 和与物理页面相对应的管理员属性与本发明的内容并不直接相关,是单独 执行的。
图58是存储器访问控制单元105的操作示例的说明图。在该图中, 粗点划线所包围的内容对应于存储器访问控制单元105。另外,在TLB 114中包括了安全页面标志字段和安全上下文标识符,作为PTE的属性数 据。
和图39中一样,如果用逻辑地址作为访问地址来进行访问,则通过 此地址选择的PTE的属性数据被读取,并由属性检查146与访问属性相比 较。如果检查结果是0K,则使用对应于逻辑地址而读取的物理地址和属 性检查结果来生成缓存命令147,并且例如检索缓存45中的标签148,在 缓存命中的情况下直接返回数据响应。而例如在缓存缺失的情况下,从主 存储器加载的数据经由队列和总线接口 149存储在缓存中,并将数据响应 返回到执行单元。
图59是在取得命令时存储器访问控制单元105的处理流程图。如果
由图57所示的命令执行单元144输出用于命令取得的逻辑地址,则在步 骤S98选择对应于所指定的逻辑地址的PTE的属性数据。并且在步骤 S99,检查当前上下文,即当前要执行的上下文是不是安全上下文,即是 否存在具有有效的安全上下文标识符的上下文。如果当前上下文是安全上 下文,则在步骤SIOO,检查是否建立了对应于所述上下文的PTE的安全 页面标志字段(SPF)。如果建立了,则确定当前上下文的安全上下文标 识符,即存储在安全上下文标识符寄存器118中的标识符是否与存储在 PTE中的安全上下文匹配。
如果匹配,则在步骤S102,检查作为对应于上下文的页面属性的读取 /写入属性和管理员属性。如果0K,则在步骤S103生成缓存命令,用于 将物理地址输出到缓存以用于命令取得,以结束处理。
如果在步骤S99,当前上下文不具有有效的安全上下文标识符,则在 步骤S104,确定是否建立了相应PTE中的安全页面标志字段(SPF);如 果未建立,则没有建立安全上下文标识符,应该处理与未经验证的通常情 况相同的执行代码,并转到步骤S102处的处理。如果在步骤S100和S102 处的判断结果是"否",则将会在步骤S105被视为错误处理,以终止进 程。必须进行以下两个进程将逻辑地址分离成逻辑页面的顶地址和页面 中的偏移值的进程,以及将物理页面的顶地址和其偏移值相加的进程,但 这些进程与本发明并不直接相关,将省略其说明。
图60是在具有安全核心和通常核心的处理器中的存储器访问控制系 统的说明图。在该图中,通常核心152仅执行传统的进程,所述传统进程 与如图12所示的加密处理模块12和代码验证处理模块13所进行的进程无 关,而安全核心151可以执行包括代码验证处理模块的验证控制在内的安 全操作,所述代码验证处理模块的验证控制包括图44中未说明的加密处 理模块所进行的操作的控制。
在图60中,利用存储器访问控制单元105的控制,安全核心151被允 许使用对应于其中已建立了安全页面标志字段的PTE的物理页面,但受到 控制以使通常核心无法使用所述页面。
在图44中,安全核心所控制的代码验证处理模块包括存储器访问控
制单元105,所述存储器访问控制单元105对应于验证单元107、签名生 成/核实单元108、安全上下文标识符生成单元109、安全上下文标识符消 除单元110、处理器专用密钥111、经验证信息主要存储单元112、安全 DMA 113、安全上下文标识符寄存器118、验证密钥寄存器119,以及 PTE 122中的安全页面标志字段和安全上下文标识符。
在图60中,基本上安全核心151仅执行在下述物理页面中的执行代 码,在所述物理页面中,验证处理已完成并且在PTE中建立了安全页面标 志字段,并且通常核心152仅执行未经验证的常规代码。然而,也可以是 下述情况,即通常核心可被配置以使得通常核心除了常规代码以外还可执 行经验证代码。
图61是具有在安全模式和通常模式之间切换的核心的处理器的配置 框图。在该图中,模式寄存器155安装在核心154中,并且其中建立了安 全页面标志字段的页面仅在安全模式情况下才可使用。安全模式和通常模 式之间的切换可以通过使用中断作为触发的方法来执行,例如在通常用户 模式和内核模式之间切换的情况,但也可使用其他方法。
图62是使用图44中的安全DMA 113对物理存储器101的页面数据传 输系统的说明图,所述系统作为存储器访问控制系统。图63是使用安全 DMA 113的数据传输处理的流程图。例如,在图53和图54的页面调入处 理中,作为执行代码的页面数据起初存储在物理页面中,然后对这些执行 代码进行验证。然而,由于验证处理需要诸如哈希值计算之类的处理,因 此在该实施例中,在页面数据的每个传输单位处计算哈希值,并保持计算 的结果作为哈希运算的中间结果。重复这些处理,并且哈希运算在传输末 尾完成,使得结果可用在随后的验证处理中。
图62中的安全DMA 113包括来自核心154的数据的传输源地址、传 输目的地地址、接收传输大小的传输管理单元157、从1/0设备102读取 数据的数据读取器158、用于执行哈希运算的哈希运算器159、在物理存 储器101中写入页面数据的数据写入器160,以及物理页面顶地址保持单 元161,其保持物理页面的顶地址和用于页面的哈希值。 当在图63中处理开始时,进行以下过程。使用在核心154上运行的
程序, 一般是由从OS接收诸如传输源地址之类指令的传输管理单元157 来进行。数据读取器158被指示从I/O设备102中读取接下来的64字节数 据,在步骤Slll,这64字节数据被数据读取器158读取。在步骤S112, 哈希运算器159被传输管理单元157指示执行哈希运算,在步骤S113由 哈希运算器159执行哈希运算。保持中间结果,并且在步骤S114,数据写 入器160被传输管理单元157指示将64字节数据写入物理存储器101,在 步骤S115由数据写入器160将这64字节数据写入物理存储器101中。在 步骤S116,确定一个页面的数据传输是否完成。如果未完成,则重复从步 骤S110开始的处理,而如果完成了,则由传输管理单元157将作为传输 目的地地址的由哈希值和物理页面顶地址所构成的对给出到保持单元 161,以结束处理。
图64是在执行代码,包括存储器访问控制时的处理流程图。该图是 在一般由OS进行的页面调入期间的处理流程图,并且本发明的特征点在 于粗线所包围的处理。当处理开始时,起初在步骤S120,传输源/目的地 地址、传输大小被指示到安全DMA 113,并在步骤S121确定传输是否成 功。如果成功,则在步骤S122,在TLB内的PTE中建立多种信息,像图 54所示的步骤S81到S83那样,并在步骤S123,像在步骤S84那样地作 出请求以建立安全页面标志字段。在验证单元处执行验证处理之后,在步 骤S124确定是否成功设定了标志。如果成功,则处理结束。如果在步骤 S121传输失败,或在步骤S124设定失败,则处理立即终止。
如上所述,根据第六实施例,即使对已被成功验证的执行代码的访问 也仅在检查安全上下文标识符和安全页面标志字段之后才被允许。
最后,将参照图65到图74来说明本发明的第七实施例。在第七实施 例中,当与上下文开关(switch)相对应的上下文信息和PTE例如被撤出 到主存储器中时,执行用于保护数据的加密或添加篡改检测信息。例如, 在第一实施例中,经验证的执行代码被加密然后存储在物理存储器中。相 反,在第七实施例中,上下文信息在被存储在物理存储器中之前被加密。
图65是用于上下文信息的加密方法的说明图。在该图中,由加密设
备165使用处理器专用密钥111,对如图44中所说明的存储在上下文信息
存储单元115中的全部上下文信息进行加密,然后将加密上下文信息166 存储在物理存储器101中。
图66是用于图65所示的相应上下文信息的解密方法的说明图。由解 密设备168在通过上下文开关而变得必要时,使用处理器专用密钥111将 存储在物理存储器101中的加密上下文信息166解密,并将解密的上下文 信息存储在上下文信息存储单元115中。
图67是将篡改检测信息添加到上下文信息上的系统的说明图。对于 该图中存储在上下文信息存储单元115中的上下文信息,由篡改检测信息 生成器篡改检测信息生成器169使用处理器专用密钥111来生成篡改检测 信息170,并将其与上下文信息一起存储在物理存储器101中。
图68是使用图67所示的相应的变更检测信息,用于上下文信息的篡 改检测系统的说明图。在该图中,使用添加到上下文信息上的篡改检测信 息170,由篡改检测器172使用处理器专用密钥111来检测篡改。
图69是在安全操作所需的上下文信息被与常规上下文信息区分开 时,在存储于上下文信息存储单元115中的上下文信息当中仅将用于安全 操作的上下文信息175加密的上下文信息加密系统的说明图。根据此方 法,尽可能在处理器核心的部分中如前一样地对待常规上下文信息176, 即诸如现有的上下文ID之类的上下文信息,而不进行加密,使得仅对存 储在验证密钥寄存器119和安全上下文标识符寄存器118中的内容被加 密,作为用于安全操作的上下文信息175。
对于现有的上下文ID,可以存储相同的值作为安全上下文标识符,作 为OS的操作。例如,如果OS被恶意代码重写,则不能保证两个标识符 的值变得一样。如果处理器被配置以使得处理器可以仅在得到相同值时操 作,则保持了只有得到相同值处理器才会工作这样的安全性,不再存在问 题。
在图69中,由加密器/解密器174使用处理器专用密钥111,仅将用 于安全操作的上下文信息175加密,使得加密上下文信息177存储在物理 存储器101中,而常规上下文信息176仍作为用于直接存储在物理存储器
101中的明文上下文信息176。
图70是将添加到用于安全操作的上下文信息175上的篡改检测信息 存储在物理存储器101中的上下文信息存储系统的说明图。在该图中,由 篡改检测信息生成器/篡改检测器179使用处理器专用密钥111,来为用于 安全操作的上下文信息175生成篡改检测信息180,并将其与用于安全操 作的上下文信息175和常规上下文信息,即明文上下文信息176—起存储 在物理存储器101中。在此情况下,并未对作为常规上下文信息的程序计 数器的值和寄存器组的值应用加密,但为了进一步提高可靠性,自然可以 对常规上下文信息应用加密,或者添加篡改检测信息。
图71到图74是用于存储在页面表条目(PTE) 122中的内容的保护性 系统的说明图。图71示出了 PTE的加密系统。存储在PTE 122中的内 容,即安全页面标志字段、安全上下文标识符、逻辑地址和物理地址的值 被加密器165使用处理器专用密钥111而加密,并将加密PTE 183存储在 物理存储器中的页面表182中。
图72是用于图71所示的相应的加密PTE的解密系统的说明图。在该 图中,存储在物理存储器101中的加密PTE 183被用使用处理器专用密钥 111的解密器168所解密,并作为PTE存储在TLB 114中。
图73是对PTE的篡改检测信息添加系统的说明图,图74是用于PTE 的篡改检测系统的说明图。在图73中,由篡改检测信息生成器169使用 处理器专用密钥111来生成用于PTE 122的篡改检测信息185,并将其与 PTE 122 —起存储在页面表182中。
在图74中,由篡改检测器172使用变更检测信息185和处理器专用密 钥111 ,在存储于页面表182中的PTE 122中检测篡改。
如上所述,在第七实施例中,为安全处理器所使用的上下文信息和 PTE执行加密和篡改检测,因此进一步提高了信息处理的安全性。
以上详细描述了本发明的安全处理器和用于安全处理器的程序。可以 将此安全处理器用作通用计算机系统的基本组件。图75是这种计算机系 统,即硬件环境的配置框图。
图75所示的计算机系统包括中央处理单元(CPU) 200、只读存储器
(ROM) 201、随机访问存储器(RAM) 202、通信接口 203、存储器设备 204、 I/O设备205、移动存储介质读取设备206,以及连接所有组件的总 线207。
作为存储器设备204,可以使用各种存储器设备,例如硬盘和磁盘。 在本发明范围内,程序在图3到图5、图7、图9到图11以及其他流程图 中示出,并且在权利要求7、 19和20中描述了程序,所述程序被存储在 这种存储器设备204或ROM 201中,并且当这些程序被CPU 200执行 时,可以执行本发明的实施例中的安全处理器的操作。加密密钥的设定、 代码验证处理和加密处理。
这些程序可以由程序提供器208经由网络209和通信接口 203存储在 存储器设备204中,或者它们可以被存储在商业上发行的移动存储器介质 中,设定在读取设备206中并由CPU 200执行。作为移动存储器介质 210,可以使用多种类型的存储器介质,例如CD-ROM、软盘、光盘、光 磁盘和DVD。本发明模式中的安全处理器可以在存储于这种存储器介质 中的程序被读取设备206所读取时操作。
权利要求
1.一种安全处理器,包括安全进程标识符生成单元,其在发出生成进程的指令时,生成安全进程标识符,所述安全进程标识符要与对应于建立了安全页面标志的页面的安全进程标识符相比较,所述安全页面标志的建立指示出在执行对应于所述执行代码的所述进程之前存储执行代码的该页面被正确地验证;以及进程信息保持单元,其保持所生成的安全进程标识符,作为与所述进程相关的信息。
2. 如权利要求1所述的安全处理器,还包括安全进程标识符消除单 元,其在所述进程消失时,消除所生成并保持在所述进程信息保持单元中 的安全进程标识符。
3. 如权利要求1所述的安全处理器,其中 验证信息被添加到对应于所述进程的执行代码上,并且 当所生成的进程仍存在时,所述进程信息保持单元还保持验证密钥,用于对所述执行代码的验证。
4. 如权利要求3所述的安全处理器,其中被添加到所述执行代码上的 验证信息是在存储器中以页面为单位的信息。
5. 如权利要求4所述的安全处理器,还包括验证单元,其在对应于所述进程的执行代码被使用所述页面单位的验证密钥而成功验证时,在所述 执行代码被存储在所述存储器中未使用的页面中之后,在所述处理器中的 缓冲器中设定所述安全页面标志,并且对应于该页面的地址的安全进程标 识符被存储在所述缓冲器中。
6. 如权利要求5所述的安全处理器,还包括存储器访问控制单元,其 在所述执行代码的实际执行之前,将存储在所述缓冲器中的安全进程标识 符与保持在所述进程信息保持单元中的安全进程标识符相比较,其中在所 述缓冲器中设定了相应的安全页面标志,并且所述存储器访问控制单元在 所述两个标识符彼此匹配时,允许执行指令的指令执行单元(144)访问 存储器中的所述页面。
7. 如权利要求5所述的安全处理器,还包括直接存储器访问单元,其 与将执行代码存储在存储器中并行地执行验证所述执行代码所必需的计 算,保持所述计算的结果,并将所述结果给予所述验证单元。
8. 如权利要求5所述的安全处理器,还包括 用于加密/解密的专用密钥,其专用于所述处理器;以及 加密处理单元,其在将信息撤出到外部或从外部取回所述信息之前,使用所述处理器专用密钥来执行所述信息的加密/解密,所述信息包括存储 在缓冲器中的安全页面标志和安全进程标识符,以及存储执行代码的存储 器页面的地址。
9. 如权利要求5所述的安全处理器,还包括 用于加密/解密的专用密钥,其专用于所述处理器;以及篡改检测单元,其在将信息保存到外部时,使用所述处理器专用密钥 来生成用于所述信息的篡改检测信息,或者在从外部取回所述信息时使用 所述专用密钥来检测对所述信息的篡改,所述信息包括存储在缓冲器中的 安全页面标志和安全进程标识符,以及存储执行代码的存储器页面的地 址。
10. 如权利要求1所述的安全处理器,还包括具有各自的指令执行单元和缓存的核心,所述核心包括安全核心,其仅执行经验证的执行代 码;以及通常核心,其执行未经验证的常规执行代码。
11. 如权利要求IO所述的安全处理器,其中所述通常核心除了执行所述常规未经验证代码之外,还执行所述经验证代码。
12. 如权利要求1所述的安全处理器,还包括模式指定单元,其选择 安全模式和通常模式之一,并且所述核心响应于所给予的指令而在安全模 式和通常模式之一中执行,在所述安全模式中,具有执行单元的核心应当 仅执行经验证的执行代码,在所述通常模式中,所述核心仅执行未经验证 的常规执行代码。
13. 如权利要求1所述的安全处理器,还包括 用于加密/解密的密钥,其专用于所述处理器;以及加密处理单元,其在将信息撤出到外部或从外部取回所述信息时,使 用所述处理器专用密钥来执行所述信息的加密/解密,所述信息包含所述安 全进程标识符并被保持在所述进程信息保持单元中。
14.如权利要求1所述的安全处理器,还包括专用密钥,其专用于所述处理器;以及篡改检测单元,其在将信息撤出到外部时,使用所述处理器专用密钥 来生成用于所述信息的篡改检测信息,将所述篡改检测信息添加到所述信 息上,并在从外部取回所述信息时使用所述专用密钥来检测对所述信息的 篡改,所述信息包含所述安全进程标识符并被保持在所述进程信息保持单 元中。
全文摘要
本发明提供了一种安全处理器。指令代码包括存储在下述区域中的指令代码,在所述区域中加密指令代码以不可重写的格式存储,使用执行指令代码的核心所专用的专用密钥或者通过所述专用密钥验证的密钥来验证所述指令代码,以对核心和外界之间的输入和输出数据执行加密处理。
文档编号G06F21/02GK101174290SQ20071014045
公开日2008年5月7日 申请日期2005年6月30日 优先权日2004年6月30日
发明者后藤诚司, 田宫大司, 蒲田顺 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1