CN101178758B - 安全处理器 - Google Patents

安全处理器 Download PDF

Info

Publication number
CN101178758B
CN101178758B CN2007101404500A CN200710140450A CN101178758B CN 101178758 B CN101178758 B CN 101178758B CN 2007101404500 A CN2007101404500 A CN 2007101404500A CN 200710140450 A CN200710140450 A CN 200710140450A CN 101178758 B CN101178758 B CN 101178758B
Authority
CN
China
Prior art keywords
key
data
unit
instruction
address
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.)
Active
Application number
CN2007101404500A
Other languages
English (en)
Other versions
CN101178758A (zh
Inventor
后藤诚司
蒲田顺
田宫大司
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.)
Socionext Inc
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Publication of CN101178758A publication Critical patent/CN101178758A/zh
Application granted granted Critical
Publication of CN101178758B publication Critical patent/CN101178758B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/682Multiprocessor TLB consistency

Abstract

本发明公开了一种安全处理器。指令代码包括存储在下述区域中的指令代码,在所述区域中加密指令代码以不可重写的格式存储,使用执行指令代码的核心所专用的专用密钥或者通过所述专用密钥验证的密钥来验证所述指令代码,以对核心和外界之间的输入和输出数据执行加密处理。

Description

安全处理器
分案申请
本申请是申请日为2005年6月30日,发明名称为“安全处理器和用于安全处理器的程序”的中国发明专利申请第200510080503.5号的分案申请。
技术领域
本发明涉及用于确保诸如计算机之类的信息处理系统的安全性的系统。更准确地说,本发明涉及安全处理器和用于安全处理器的程序,其能够在如计算机和各种具有内置处理器的设备中防止恶意执行代码的操作。
背景技术
在使用处理器的系统中,操作可以由程序来描述,因此与完全由硬件配置的系统相比,这些操作显示出高的灵活性,并且可以容易地安装多种功能。由于这些特征,处理器已被用在多种系统中,所述系统例如有个人计算机、PDA、蜂窝电话和信息家庭应用设备,并且随着这些系统越来越普及,已广泛地执行了像在电子商务中这样要求较高安全性级别的处理。虽然已经采取了多种基于系统的措施,例如线路数据加密和用户验证,以便加强安全性,但近年来,在应对计算机病毒的传播和非法访问,以及处理系统级安全性时,软件级或处理器级的安全性成为了问题。
例如,当包括蜂窝电话和信息家庭应用设备在内的多种具有内置处理器的设备连接到网络时,该设备很有可能面临与个人计算机类似的外部威胁。当对诸如非法访问指令的问题进行准确分析时,其主要原因在于以下事实,即恶意执行代码在终端中操作。防止恶意代码或不需要的代码在处理器上执行是重要的,但传统上在处理器侧所采取的用于防止恶意代码操作的措施根本不够。结果,未能提供安全的软件执行环境这样的问题仍然存在。
接着,传统上如下执行处理:当在主存储器设备或辅助存储器设备中存储数据和用于指令的执行代码时,执行加密以确保安全性,然后加密数据在指令实际执行之前被解密并存储在处理器内的缓存中,并执行处理。在此情况下,用于执行加密处理的硬件被从外部加载在与处理器芯片不同的另一芯片上。因此存在以下问题,即诸如处理速度之类的加密处理性能易于变劣。
而且,在这种加密处理中,用于加密数据的加密密钥是在外部芯片上的加密处理侧确定的,因此与要在处理器侧执行的指令的种类、管理员/用户模式或用于取数据或指令的访问地址无关。另外,仍然存在以下问题,即无法响应于要执行的指令而选择适当的加密密钥,这是因为处理器侧的执行单元无法指定用于加密和解密的密钥。
以下文献可以作为关于此软件执行环境安全性的现有技术。
专利文献1:日本专利申请公开2002-353960,“code executionapparatus and code distributing method”。
该文献公开了一种指令执行装置,其中对加密执行代码进行验证,以确认加密代码的有效性,并且安全处理器取得与加密代码相应的指令,以将其作为安全任务来执行。
然而,在这种代码执行装置中,在对应于执行代码的进程与用于验证的密钥之间没有关系。例如,如果在操作系统(OS)中执行了恶意操作,并且然后在程序中分配了另一验证密钥,则恶意代码一定会操作,这样的问题是无法解决的。
发明内容
本发明的第一目的在于提供一种安全处理器,其基于在以不可重写的格式存储加密指令代码的存储器中作为基础的存储器内容,连续地对例如存储在辅助存储单元中的程序的执行代码进行验证,逐步地扩展安全可靠应用的范围,从而可以仅执行可靠的操作。
本发明的第二目的在于,使得可以选择要使用的密钥,以用于被执行的指令的数据和执行代码的加密/解密,以及通过在与处理器相同的芯片上安装加密处理模块,来提高加密处理性能。
本发明的第三目的在于,通过在将进程执行代码存储到主存储器中时使用与所述进程相对应的验证密钥对执行代码进行验证,从而仅使已被成功验证的执行代码成为可执行的,进而提高处理器所执行的信息处理的安全性。
本发明的一种安全处理器包括指令执行设备、加载/存储控制设备和加密处理设备。所述指令执行设备执行指令。所述加载/存储控制设备响应于来自指令执行设备的命令,控制数据对于外部存储器的加载/存储。所述加密处理设备对加载/存储控制设备与外部存储器之间的数据执行数据加密/解密。另外,所述指令执行设备响应于指令被执行,指定用于所述加密处理设备的数据加密/解密的密钥。
本发明的另一种安全处理器包括指令执行设备、加载/存储控制设备和加密处理设备。所述指令执行设备执行指令。所述加载/存储控制设备响应于来自指令执行设备的命令,控制数据对于外部存储器的加载/存储。所述加密处理设备对加载/存储控制设备与外部存储器之间的数据执行数据加密/解密。另外,所述指令执行设备响应于被执行的指令的数据/指令取得的访问地址,为加密处理设备给出指定要被用于数据加密/解密的密钥的信号。
附图说明
图1是示出本发明的安全处理器的主要配置的框图;
图2是示出第一实施例中的处理器的基本配置的框图;
图3是第一实施例中的处理器的基本处理流程图;
图4是示出包括代码验证处理模块和加密处理模块的处理的流程图;
图5是在指令区域和数据区域指定了不同的密钥时,加密处理模块的流程图;
图6是通过使用公钥加密的加密密钥的存储系统的说明图;
图7是通过使用公钥加密的加密密钥的存储处理的流程图;
图8是用于具有所添加的认证权威机构的签名的加密密钥的存储系统的说明图;
图9是用于具有所添加的认证权威机构的签名的加密密钥的存储处理的流程图;
图10是在检测到无效指令时的处理流程图;
图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是第三和第四实施例中的执行单元的I/O信号的说明图;
图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是作为第一实施例而示出安全处理器的基本配置的框图。在该图中,处理器10包括以下部件:核心11,其包含执行单元和缓存;加密处理模块12,其执行与外部接口的命令处理,并执行对总线数据(程序代码或数据)的加密/解密;代码验证处理模块13,其执行对指令代码的验证;加密ROM代码区域14,在其中对在激活处理器时使用的最基本的程序进行加密并存储;以及CPU专用密钥15,用于对存储在此代码区域14中的程序执行解密。加密处理模块12的操作将在后面的第三实施例中详细说明,而代码验证处理模块13的操作也将在后面的第五实施例中详细说明。
虽然命令和数据在核心11和加密处理模块12之间传输,但用于加密的密钥是受控的。验证接口安装在核心11和代码验证处理模块13之间。而且,加密处理模块12和代码验证处理模块13执行对主存储器17的访问,并且代码验证处理模块13执行对辅助存储器18的访问。
图3是第一实施例中的安全处理器的整体处理流程图。
当在图1中接通电源时,在步骤S1,图2所示的核心11使用CPU专用密钥15将存储在加密ROM代码区域14中的程序解密,并执行引导(激活)处理。由于内置ROM的缘故,对该程序的篡改是非常困难的。然而,即使通过某种方法而执行了篡改,所述程序也已经是加密的,难以执行有意义的篡改。因此,如果程序被正确地引导,则可以确定的是,在程序中没有进行篡改。结果,可以假定存储在加密ROM代码区域14中的程序是绝对可靠的程序。然后,此状态可被定义为程序的基本可靠点。
关于加密ROM代码区域14,如果使用了AES(Advanced EncryptionStandard,高级加密标准)方法,所述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)中的处理器的配置示例。在该图中,以下是处理器10与图6的示例No.1的示例相比的不同之处:设有签名核实单元28,代替了解密单元22;并且存储了认证权威机构29的证书作为认证权威机构的公钥,代替了处理器专用RSA私钥23。假定所述的认证权威机构29的证书记录在处理器内部,以避免对此证书的非法替换,并将包括具有认证权威机构的签名的加密密钥在内的加密密钥设定请求提供到加密密钥设定单元21。
图9是加密密钥获取操作示例(No.2)的处理的流程图。当在该图中处理开始时,起初在步骤S36由加密密钥设定单元21与签名一起接收加密密钥,在步骤S37,由签名核实单元28使用认证权威机构的签名和公钥来核实接收到的加密密钥,在步骤S38确定核实是否成功。如果核实成功,则将加密密钥设定单元21所接收的加密密钥存储在TLB24内部的密钥表27中,然后处理终止。或者,如果核实失败,则处理立即结束。为了提高加密密钥的可靠性,可以既执行操作示例No.1,即保持加密密钥的保密性,又结合执行操作示例No.2,即识别加密密钥。
图10是在第一实施例中,当在加密命令区域中执行命令期间检测到非法命令时的非法命令对待处理。在该图中,如果在步骤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中的程序来执行引导进程。即,在步骤S1,在安全核心的引导进程中使用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侧,在步骤S1的引导进程之后,代替步骤S2,在步骤S57建立密钥表操作处理、密钥管理处理和验证处理模块时,还执行系统审计(systemauditing)。在该系统审计中,核实系统配置改变的存在以及辅助存储器上程序中改变的存在,以便确认系统和系统配置的安全性功能没有问题。
随后,在步骤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和私钥Kd35。例如,其经由通常核心32将公钥Ke和N通知到处理器外部。在此情况下,不将私钥Kd递送到通常核心32侧,如前所述,通常核心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内部的TLB87或AMR88给出的密钥,以便执行加密或解密处理。
图42是图41的加密电路或解密电路中的密钥切换系统的说明图。在该图中,加密电路或解密电路的配置基本上与第三实施例的图26中相同,但添加了密钥选择器90。根据从执行单元给出的MMU开/关信号的值,在关的时候由密钥选择器90选择从执行单元给出的密钥,而在开的时候由密钥选择器90选择从TLB或AMR给出的密钥,然后将所选择的密钥给出到加密流水线60或解密流水线55。
图43是第三或第四实施例中的执行单元的I/O信号的说明图。在第三实施例的图20中,必需的信号包括作为输出信号的加载加密密钥、存储加密密钥、存储数据和命令,以及作为输入信号的加载数据(圆形记号),并且访问地址和加载/存储状态信号是根据结构而存在的信号(三角形记号)。
在图21中,加载密钥号指令而非加载解密密钥的输出信号,以及存储密钥号指令的输出信号是必需的。另外,由于对于执行单元,对密钥表存储器的更新所具有的值与寄存器访问相等,因此寄存器相关的I/O信号也变得必要。
在图22中,与命令访问状态相对应的I/O信号是必要的,并且作为输出信号的执行状态信号以及作为输入信号的命令取得数据被认为是必需的。
在图23和图24中,除了图20和图21中所使用的以外,还添加了密钥选择寄存器,寄存器相关的I/O信号也是必需的。
对以下说明进行了简化,仅说明特征性的部分。将图21、图22和图23合计起来,除了在合并这三种情况时的I/O信号以外,还添加了指示要执行的进程对应于哪些管理员和用户的管理员/用户状态信号,以及上下文,即进程ID(标识符)的数据。在第三实施例中,除了从执行单元输出的密钥号指令信号以外,这些管理员/用户状态信号和上下文ID数据也用于选择加密密钥和解密密钥。
图29以后的对应于第四实施例。对数据的访问地址成为必需的输出信号。此外,用于选择逻辑地址或物理地址的密钥选择指令信号也在图35和图36中输出。
在图38中,因为在存储器管理单元的TLB中添加了密钥表,所以从配置方面来看,存在寄存器相关的信号。另外,图中示出了添加了管理员/用户状态信号和上下文ID数据时的情况。在第三实施例中,这些添加的信号用于选择加密密钥和解密密钥,以及访问地址。
图41包括响应于指示存储器管理单元(MMU)的开/关的状态信号的值而使用来自执行单元的密钥输出的情况,以及使用来自TLB的密钥输出的情况。结果,所有的I/O信号以及管理员/用户状态信号和上下文ID数据变为必需的。
如上所述,在第三和第四实施例中,从执行单元指定密钥以用于数据和指令代码的加密/解密,使得加密处理可以在对应于要执行的命令的级别上执行。而且,由于加密/解密密钥由密钥选择寄存器或访问地址来指定,因此可以对每个程序单元或每次访问执行加密处理,从而,可以响应于多种条件而选择要执行的处理。
接下来将说明本发明的第五实施例。第五实施例示范了一种更精确的配置,以便实现作为第一实施例而提出的安全处理器的安全操作。下面将说明与其配置相对应的验证密钥的设定和诸如进程验证之类的操作,以便进一步提高进程(程序)的可靠性。
图44是用于说明第五实施例的处理器中所必需的功能性配置图。在该图中,处理器100连接到物理存储器101(例如图2中的主存储器17)、I/O设备102(例如辅助存储器18)。
处理器100包括:存储器访问控制单元105,其控制对物理存储器101和I/O设备102的访问;命令解释单元106,其对要执行的命令进行解释;验证单元107,其对存储执行代码的页面执行验证;加密/解密和签名生成/核实单元108,其例如执行对已被验证的页面的加密/解密;安全上下文标识符生成单元109,其在生成进程时生成与进程(即上下文)相对应的安全上下文标识符;安全上下文标识符消除单元110,其在消除进程时消除相应的标识符;处理器专用密钥111,其用于加密;经验证信息主要存储单元112,其存储与例如存储在物理存储器101中的物理页面相对应的经验证信息;以及安全DMA113,其用于在访问存储器时进行直接存储器访问。
处理器100的内部包括图39中所说明的翻译后备缓冲器(TLB)114,以及上下文信息存储单元115。TLB114存储页面表条目(PTE)122,所述PTE122例如参照物理页面,指示出逻辑地址和物理地址之间的对应关系。上下文信息存储单元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(安全哈希算法)-1HMAC(基于哈希的消息验证代码)被用作共享密钥系统,则验证密钥是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中存在有意义的值,并且如果建立了PTE122的安全页面标志字段,并且如果存储在安全上下文标识符寄存器118中的标识符的值与PTE122上的上下文标识符的值彼此匹配,则允许执行物理页面124上的命令。此控制由存储器访问控制单元105来执行。在此情况下,对数据读取/写入属性的检查和与物理页面相对应的管理员属性与本发明的内容并不直接相关,是单独执行的。
图58是存储器访问控制单元105的操作示例的说明图。在该图中,粗点划线所包围的内容对应于存储器访问控制单元105。另外,在TLB114中包括了安全页面标志字段和安全上下文标识符,作为PTE的属性数据。
和图39中一样,如果用逻辑地址作为访问地址来进行访问,则通过此地址选择的PTE的属性数据被读取,并由属性检查146与访问属性相比较。如果检查结果是OK,则使用对应于逻辑地址而读取的物理地址和属性检查结果来生成缓存命令147,并且例如检索缓存45中的标签148,在缓存命中的情况下直接返回数据响应。而例如在缓存缺失的情况下,从主存储器加载的数据经由队列和总线接口149存储在缓存中,并将数据响应返回到执行单元。
图59是在取得命令时存储器访问控制单元105的处理流程图。如果由图57所示的命令执行单元144输出用于命令取得的逻辑地址,则在步骤S98选择对应于所指定的逻辑地址的PTE的属性数据。并且在步骤S99,检查当前上下文,即当前要执行的上下文是不是安全上下文,即是否存在具有有效的安全上下文标识符的上下文。如果当前上下文是安全上下文,则在步骤S100,检查是否建立了对应于所述上下文的PTE的安全页面标志字段(SPF)。如果建立了,则确定当前上下文的安全上下文标识符,即存储在安全上下文标识符寄存器118中的标识符是否与存储在PTE中的安全上下文匹配。
如果匹配,则在步骤S102,检查作为对应于上下文的页面属性的读取/写入属性和管理员属性。如果OK,则在步骤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、安全DMA113、安全上下文标识符寄存器118、验证密钥寄存器119,以及PTE122中的安全页面标志字段和安全上下文标识符。
在图60中,基本上安全核心151仅执行在下述物理页面中的执行代码,在所述物理页面中,验证处理已完成并且在PTE中建立了安全页面标志字段,并且通常核心152仅执行未经验证的常规代码。然而,也可以是下述情况,即通常核心可被配置以使得通常核心除了常规代码以外还可执行经验证代码。
图61是具有在安全模式和通常模式之间切换的核心的处理器的配置框图。在该图中,模式寄存器155安装在核心154中,并且其中建立了安全页面标志字段的页面仅在安全模式情况下才可使用。安全模式和通常模式之间的切换可以通过使用中断作为触发的方法来执行,例如在通常用户模式和内核模式之间切换的情况,但也可使用其他方法。
图62是使用图44中的安全DMA113对物理存储器101的页面数据传输系统的说明图,所述系统作为存储器访问控制系统。图63是使用安全DMA113的数据传输处理的流程图。例如,在图53和图54的页面调入处理中,作为执行代码的页面数据起初存储在物理页面中,然后对这些执行代码进行验证。然而,由于验证处理需要诸如哈希值计算之类的处理,因此在该实施例中,在页面数据的每个传输单位处计算哈希值,并保持计算的结果作为哈希运算的中间结果。重复这些处理,并且哈希运算在传输末尾完成,使得结果可用在随后的验证处理中。
图62中的安全DMA113包括来自核心154的数据的传输源地址、传输目的地地址、接收传输大小的传输管理单元157、从I/O设备102读取数据的数据读取器158、用于执行哈希运算的哈希运算器159、在物理存储器101中写入页面数据的数据写入器160,以及物理页面顶地址保持单元161,其保持物理页面的顶地址和用于页面的哈希值。
当在图63中处理开始时,进行以下过程。使用在核心154上运行的程序,一般是由从OS接收诸如传输源地址之类指令的传输管理单元157来进行。数据读取器158被指示从I/O设备102中读取接下来的64字节数据,在步骤S111,这64字节数据被数据读取器158读取。在步骤S112,哈希运算器159被传输管理单元157指示执行哈希运算,在步骤S113由哈希运算器159执行哈希运算。保持中间结果,并且在步骤S114,数据写入器160被传输管理单元157指示将64字节数据写入物理存储器101,在步骤S115由数据写入器160将这64字节数据写入物理存储器101中。在步骤S116,确定一个页面的数据传输是否完成。如果未完成,则重复从步骤S110开始的处理,而如果完成了,则由传输管理单元157将作为传输目的地地址的由哈希值和物理页面顶地址所构成的对给出到保持单元161,以结束处理。
图64是在执行代码,包括存储器访问控制时的处理流程图。该图是在一般由OS进行的页面调入期间的处理流程图,并且本发明的特征点在于粗线所包围的处理。当处理开始时,起初在步骤S120,传输源/目的地地址、传输大小被指示到安全DMA113,并在步骤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的加密系统。存储在PTE122中的内容,即安全页面标志字段、安全上下文标识符、逻辑地址和物理地址的值被加密器165使用处理器专用密钥111而加密,并将加密PTE183存储在物理存储器中的页面表182中。
图72是用于图71所示的相应的加密PTE的解密系统的说明图。在该图中,存储在物理存储器101中的加密PTE183被用使用处理器专用密钥111的解密器168所解密,并作为PTE存储在TLB114中。
图73是对PTE的篡改检测信息添加系统的说明图,图74是用于PTE的篡改检测系统的说明图。在图73中,由篡改检测信息生成器169使用处理器专用密钥111来生成用于PTE122的篡改检测信息185,并将其与PTE122一起存储在页面表182中。
在图74中,由篡改检测器172使用变更检测信息185和处理器专用密钥111,在存储于页面表182中的PTE122中检测篡改。
如上所述,在第七实施例中,为安全处理器所使用的上下文信息和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或ROM201中,并且当这些程序被CPU200执行时,可以执行本发明的实施例中的安全处理器的操作。加密密钥的设定、代码验证处理和加密处理。
这些程序可以由程序提供器208经由网络209和通信接口203存储在存储器设备204中,或者它们可以被存储在商业上发行的移动存储器介质中,设定在读取设备206中并由CPU200执行。作为移动存储器介质210,可以使用多种类型的存储器介质,例如CD-ROM、软盘、光盘、光磁盘和DVD。本发明模式中的安全处理器可以在存储于这种存储器介质中的程序被读取设备206所读取时操作。

Claims (18)

1.一种安全处理器,包括:
指令执行单元,其执行指令;
加载/存储控制单元,其响应于来自所述指令执行单元的命令,控制数据对于外部存储器的加载/存储;
加密处理单元,其对所述加载/存储控制单元与所述外部存储器之间的数据执行数据加密/解密;以及
密钥存储单元,其存储多个密钥,其中
所述指令执行单元响应于被执行的指令,指定用于所述加密处理单元所进行的数据加密/解密的密钥,对于多个指令或被执行的指令的多个间隔指定不同的密钥,并且所述指令执行单元将用于指定密钥的密钥号输出到密钥存储单元,并且
所述密钥存储单元响应于所述密钥号,将要被用于数据加密/解密的密钥给予所述加密处理单元。
2.如权利要求1所述的安全处理器,其中,所述密钥存储单元存储用于对从外部加载的指令取得数据进行解密的密钥,并且
当所述指令执行单元处于指令取得状态时,所述密钥存储单元将所述用于解密的密钥给予所述加密处理单元。
3.如权利要求1所述的安全处理器,还包括:
密钥号存储单元,其存储用于指定密钥的密钥号,所述密钥号是由所述指令执行单元输出的,其中
所述密钥存储单元响应于从所述密钥号存储单元给出的密钥号,将要被用于数据加密/解密的密钥给予所述加密处理单元。
4.如权利要求1所述的安全处理器,还包括:
密钥号存储单元,其存储要被用于对从外部加载的指令取得数据进行解密的密钥的密钥号,其中
当所述指令执行单元处于指令取得状态时,所述密钥存储单元响应于从所述密钥号存储单元输出的密钥号,将要被用于对指令取得数据进行解密的密钥给予所述加密处理单元。
5.如权利要求1所述的安全处理器,其中所述指令执行单元除了输出作为指定所述密钥的信号的密钥号以外,还响应于所述指令,输出管理员/用户切换信号。
6.如权利要求1所述的安全处理器,其中所述指令执行单元除了输出作为指定所述密钥的信号的密钥号以外,还输出进程标识符,所述进程标识符包括被执行的指令。
7.如权利要求1所述的安全处理器,其中所述加载/存储控制单元还包括:
直写式缓存;以及
读取修改写入单元,其将合并的经由所述加密处理单元从所述外部存储器中加载的数据和要被存储在所述外部存储器中的数据给予所述加密处理单元。
8.如权利要求1所述的安全处理器,还包括数据旁路单元,所述数据旁路单元通过旁路所述加载/存储控制单元与所述外部存储器之间的加密处理单元,传输明文数据而不执行加密/解密。
9.一种安全处理器,包括:
指令执行单元,其执行指令;
加载/存储控制单元,其响应于来自所述指令执行单元的命令,控制数据对于外部存储器的加载/存储;
加密处理单元,其对所述加载/存储控制单元与所述外部存储器之间的数据执行加密/解密;以及
密钥存储单元,其存储多个密钥,其中
响应于基于被执行的指令的数据/指令取得的访问地址,所述指令执行单元将用于指定要被用于数据加密/解密的密钥的信号给予所述加密处理单元,对于多个数据/指令取得的访问地址指定不同的密钥,并且所述指令执行单元将逻辑地址作为所述访问地址输出到所述密钥存储单元,并且
所述密钥存储单元响应于所述逻辑地址,将用于数据加密/解密的密钥给予所述加密处理单元。
10.如权利要求9所述的安全处理器,其中
所述加载/存储控制单元响应于从所述指令执行单元给出的命令,将物理地址作为所述访问地址输出到所述密钥存储单元,并且所述密钥存储单元响应于作为所述访问地址的所述物理地址,将用于数据加密/解密的密钥给予所述加密处理单元。
11.如权利要求9所述的安全处理器,其中,所述密钥存储单元存储分别对应于作为所述访问地址的逻辑地址和物理地址的多个密钥,并且
所述密钥存储单元向所述加密处理单元给予用于加密/解密的密钥,所述密钥与基于来自所述指令执行单元的指令而选择的地址相对应,所述指令指示出应当选择由所述加载/存储控制单元给出的物理地址还是从所述指令执行单元给出的逻辑地址作为所述访问地址。
12.如权利要求9所述的安全处理器,还包括:
地址选择指令存储单元,其存储用于地址选择指令的数据,所述地址选择指令由所述指令执行单元输出,并且所述地址选择指令指示出响应于所述逻辑地址和物理地址之一应被给予到所述加密处理单元的密钥,其中
所述密钥存储单元基于存储在所述地址选择指令存储单元中的内容,将响应于所述逻辑地址或物理地址的密钥作为用于数据加密/解密的密钥给予所述加密处理单元。
13.如权利要求9所述的安全处理器,其中
所述加载/存储控制单元响应于在所述指令被执行时从所述指令执行单元给出的访问地址,选择存储在密钥存储单元中的密钥,并将所述密钥作为用于数据加密/解密的密钥给予所述加密处理单元。
14.如权利要求13所述的安全处理器,其中所述指令执行单元将指示密钥存储单元的开/关的信号,以及在所述密钥存储单元指示“关”状态时,将给出要被用于数据加密/解密的密钥的信号输出到所述加密处理单元,并且响应于所述开/关信号,所述加密处理单元在所述密钥存储单元指示“开”时使用从所述密钥存储单元给出的密钥,而在所述信号为“关”时使用从所述指令执行单元给出的密钥,作为用于数据加密和解密的密钥。
15.如权利要求9所述的安全处理器,其中所述指令执行单元除了输出作为指定所述密钥的信号的访问地址之外,还响应于所述指令而输出管理员/用户切换信号。
16.如权利要求9所述的安全处理器,其中所述指令执行单元除了输出作为指定所述密钥的信号的访问地址以外,还输出包括被执行指令在内的进程标识符。
17.如权利要求9所述的安全处理器,其中所述加载/存储控制单元还包括直写式缓存和读取修改写入单元,所述读取修改写入单元将合并的经由所述加密处理单元从所述外部存储器中加载的数据和要被存储在所述外部存储器中的数据给予所述加密处理单元。
18.如权利要求9所述的安全处理器,还包括数据旁路单元,所述数据旁路单元通过旁路所述加载/存储控制单元与所述外部存储器之间的加密处理单元,传输明文数据而不执行加密/解密。
CN2007101404500A 2004-06-30 2005-06-30 安全处理器 Active CN101178758B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004-194951 2004-06-30
JP2004194951 2004-06-30
JP2004194951A JP4447977B2 (ja) 2004-06-30 2004-06-30 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100805035A Division CN100361039C (zh) 2004-06-30 2005-06-30 安全处理器

Publications (2)

Publication Number Publication Date
CN101178758A CN101178758A (zh) 2008-05-14
CN101178758B true CN101178758B (zh) 2012-12-26

Family

ID=35266759

Family Applications (3)

Application Number Title Priority Date Filing Date
CN2007101404515A Active CN101174290B (zh) 2004-06-30 2005-06-30 安全处理器
CN2007101404500A Active CN101178758B (zh) 2004-06-30 2005-06-30 安全处理器
CNB2005100805035A Active CN100361039C (zh) 2004-06-30 2005-06-30 安全处理器

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2007101404515A Active CN101174290B (zh) 2004-06-30 2005-06-30 安全处理器

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB2005100805035A Active CN100361039C (zh) 2004-06-30 2005-06-30 安全处理器

Country Status (4)

Country Link
US (10) US7865733B2 (zh)
EP (5) EP2490147B1 (zh)
JP (1) JP4447977B2 (zh)
CN (3) CN101174290B (zh)

Families Citing this family (184)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2837944B1 (fr) * 2002-03-26 2004-07-09 Oberthur Card Syst Sa Procede et dispositif de validation automatique d'un programme informatique utilisant des fonctions de cryptographie
JP4612461B2 (ja) * 2004-06-24 2011-01-12 株式会社東芝 マイクロプロセッサ
JP4447977B2 (ja) 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US7702907B2 (en) * 2004-10-01 2010-04-20 Nokia Corporation System and method for safe booting electronic devices
JP4489030B2 (ja) * 2005-02-07 2010-06-23 株式会社ソニー・コンピュータエンタテインメント プロセッサ内にセキュアな起動シーケンスを提供する方法および装置
US8086871B2 (en) * 2005-04-26 2011-12-27 International Business Machines Corporation Method for fast decryption of processor instructions in an encrypted instruction power architecture
EP1890237A1 (en) * 2005-06-01 2008-02-20 Matsushita Electric Industrial Co., Ltd. Computer system and program creating device
US7496695B2 (en) 2005-09-29 2009-02-24 P.A. Semi, Inc. Unified DMA
US7620746B2 (en) * 2005-09-29 2009-11-17 Apple Inc. Functional DMA performing operation on DMA data and writing result of operation
US20070136609A1 (en) * 2005-12-13 2007-06-14 Rudelic John C Methods and apparatus for providing a secure channel associated with a flash device
US7594101B2 (en) * 2006-02-06 2009-09-22 Stmicroelectronics S.A. Secure digital processing unit and method for protecting programs
WO2008054456A2 (en) * 2006-02-22 2008-05-08 Luna Innovations Inc. Hardware-facilitated secure software execution environment
JP4795812B2 (ja) 2006-02-22 2011-10-19 富士通セミコンダクター株式会社 セキュアプロセッサ
JP2008003976A (ja) * 2006-06-26 2008-01-10 Sony Corp メモリアクセス制御装置および方法、並びに、通信装置
US8190917B2 (en) * 2006-09-12 2012-05-29 International Business Machines Corporation System and method for securely saving and restoring a context of a secure program loader
US8095802B2 (en) * 2006-09-12 2012-01-10 International Business Machines Corporation System and method for securely saving a program context to a shared memory
US7660769B2 (en) * 2006-09-12 2010-02-09 International Business Machines Corporation System and method for digital content player with secure processing vault
US7945789B2 (en) * 2006-09-12 2011-05-17 International Business Machines Corporation System and method for securely restoring a program context from a shared memory
KR100849334B1 (ko) * 2006-10-31 2008-07-29 삼성전자주식회사 이동 단말의 불법 사용을 방지하기 위한 방법 및 장치
EP2120176A4 (en) 2007-02-09 2016-05-18 Ntt Docomo Inc TERMINAL DEVICE AND SOFTWARE INSPECTION METHOD
JP4912921B2 (ja) * 2007-02-27 2012-04-11 富士通セミコンダクター株式会社 セキュアプロセッサシステム、セキュアプロセッサ及びセキュアプロセッサシステムの制御方法
US8069279B2 (en) * 2007-03-05 2011-11-29 Apple Inc. Data flow control within and between DMA channels
US8538012B2 (en) * 2007-03-14 2013-09-17 Intel Corporation Performing AES encryption or decryption in multiple modes with a single instruction
KR101058140B1 (ko) * 2007-05-11 2011-08-24 나그라스타 엘.엘.씨. 보안 환경에서 프로세서 실행을 제어하기 위한 장치
US8423789B1 (en) 2007-05-22 2013-04-16 Marvell International Ltd. Key generation techniques
JP2008305128A (ja) * 2007-06-07 2008-12-18 Panasonic Corp 情報処理装置及び改竄検証方法
US8205097B2 (en) * 2007-07-05 2012-06-19 Nxp B.V. Microprocessor in a security-sensitive system
US8375219B2 (en) * 2007-10-24 2013-02-12 Microsoft Corporation Program and operation verification
IL187038A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Secure data processing for unaligned data
US8515080B2 (en) * 2007-12-19 2013-08-20 International Business Machines Corporation Method, system, and computer program product for encryption key management in a secure processor vault
US9443068B2 (en) * 2008-02-20 2016-09-13 Micheal Bleahen System and method for preventing unauthorized access to information
US8726042B2 (en) * 2008-02-29 2014-05-13 Microsoft Corporation Tamper resistant memory protection
US8438385B2 (en) * 2008-03-13 2013-05-07 Fujitsu Limited Method and apparatus for identity verification
DE102008021567B4 (de) * 2008-04-30 2018-03-22 Globalfoundries Inc. Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
US8819839B2 (en) * 2008-05-24 2014-08-26 Via Technologies, Inc. Microprocessor having a secure execution mode with provisions for monitoring, indicating, and managing security levels
US8838924B2 (en) * 2008-05-24 2014-09-16 Via Technologies, Inc. Microprocessor having internal secure memory
US8639943B2 (en) 2008-06-16 2014-01-28 Qualcomm Incorporated Methods and systems for checking run-time integrity of secure code cross-reference to related applications
CA2728445C (en) * 2008-06-24 2017-01-24 Nagravision S.A. Secure memory management system and method
US20100017893A1 (en) * 2008-07-21 2010-01-21 Ati Technologies Ulc System for Securing Register Space and Method of Securing the Same
US9027084B2 (en) * 2008-07-28 2015-05-05 Evan S. Huang Methods and apparatuses for securely operating shared host devices with portable apparatuses
JP5374751B2 (ja) * 2008-07-31 2013-12-25 株式会社ハイパーテック メモリ管理方法
US8510560B1 (en) 2008-08-20 2013-08-13 Marvell International Ltd. Efficient key establishment for wireless networks
JP4752884B2 (ja) * 2008-08-21 2011-08-17 ソニー株式会社 情報処理装置、およびデータ処理方法、並びにプログラム
JP5489182B2 (ja) 2008-09-18 2014-05-14 マーベル ワールド トレード リミテッド プリロードする方法及びコントローラ
JP5272751B2 (ja) 2009-01-26 2013-08-28 富士通セミコンダクター株式会社 プロセッサ
JP5316148B2 (ja) * 2009-03-24 2013-10-16 富士通セミコンダクター株式会社 情報処理装置およびデータ修復方法
US8578175B2 (en) 2011-02-23 2013-11-05 International Business Machines Corporation Secure object having protected region, integrity tree, and unprotected region
US9954875B2 (en) 2009-06-26 2018-04-24 International Business Machines Corporation Protecting from unintentional malware download
US9298894B2 (en) 2009-06-26 2016-03-29 International Business Machines Corporation Cache structure for a computer system providing support for secure objects
US8819446B2 (en) 2009-06-26 2014-08-26 International Business Machines Corporation Support for secure objects in a computer system
US8954752B2 (en) 2011-02-23 2015-02-10 International Business Machines Corporation Building and distributing secure object software
US9846789B2 (en) 2011-09-06 2017-12-19 International Business Machines Corporation Protecting application programs from malicious software or malware
US20110099423A1 (en) * 2009-10-27 2011-04-28 Chih-Ang Chen Unified Boot Code with Signature
US9773431B2 (en) * 2009-11-10 2017-09-26 Maxim Integrated Products, Inc. Block encryption security for integrated microcontroller and external memory system
US8782429B2 (en) * 2009-12-23 2014-07-15 Ab Initio Technology Llc Securing execution of computational resources
US9202015B2 (en) * 2009-12-31 2015-12-01 Intel Corporation Entering a secured computing environment using multiple authenticated code modules
DE102010002472A1 (de) * 2010-03-01 2011-09-01 Robert Bosch Gmbh Verfahren zum Verifizieren eines Speicherblocks eines nicht-flüchtigen Speichers
US8639945B2 (en) * 2010-05-25 2014-01-28 Via Technologies, Inc. Branch and switch key instruction in a microprocessor that fetches and decrypts encrypted instructions
US9798898B2 (en) * 2010-05-25 2017-10-24 Via Technologies, Inc. Microprocessor with secure execution mode and store key instructions
US9911008B2 (en) * 2010-05-25 2018-03-06 Via Technologies, Inc. Microprocessor with on-the-fly switching of decryption keys
CN107015926B (zh) * 2010-05-25 2020-08-07 威盛电子股份有限公司 微处理器以及相关的操作方法
US9892283B2 (en) 2010-05-25 2018-02-13 Via Technologies, Inc. Decryption of encrypted instructions using keys selected on basis of instruction fetch address
US9967092B2 (en) 2010-05-25 2018-05-08 Via Technologies, Inc. Key expansion logic using decryption key primitives
US8812871B2 (en) * 2010-05-27 2014-08-19 Cisco Technology, Inc. Method and apparatus for trusted execution in infrastructure as a service cloud environments
US8990582B2 (en) * 2010-05-27 2015-03-24 Cisco Technology, Inc. Virtual machine memory compartmentalization in multi-core architectures
JP5353828B2 (ja) 2010-06-14 2013-11-27 富士通セミコンダクター株式会社 プロセッサ及びプロセッサシステム
JP5579003B2 (ja) * 2010-09-22 2014-08-27 三菱重工業株式会社 アドレス変換検査装置、中央処理演算装置、及びアドレス変換検査方法
US8645716B1 (en) 2010-10-08 2014-02-04 Marvell International Ltd. Method and apparatus for overwriting an encryption key of a media drive
US8904190B2 (en) 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
US20120110348A1 (en) * 2010-11-01 2012-05-03 International Business Machines Corporation Secure Page Tables in Multiprocessor Environments
US8976621B2 (en) * 2010-12-24 2015-03-10 Micron Technology, Inc. Continuous page read for memory
US20150317255A1 (en) * 2011-02-15 2015-11-05 Chengdu Haicun Ip Technology Llc Secure Printed Memory
US9864853B2 (en) 2011-02-23 2018-01-09 International Business Machines Corporation Enhanced security mechanism for authentication of users of a system
KR20120096969A (ko) * 2011-02-24 2012-09-03 삼성전자주식회사 암복호화 장치 및 이를 포함하는 시스템
US20120221767A1 (en) 2011-02-28 2012-08-30 Apple Inc. Efficient buffering for a system having non-volatile memory
JP5775738B2 (ja) * 2011-04-28 2015-09-09 富士通株式会社 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム
US20120331308A1 (en) * 2011-06-22 2012-12-27 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
US8595510B2 (en) * 2011-06-22 2013-11-26 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
US20120331303A1 (en) * 2011-06-23 2012-12-27 Andersson Jonathan E Method and system for preventing execution of malware
US9164924B2 (en) * 2011-09-13 2015-10-20 Facebook, Inc. Software cryptoprocessor
JP5857637B2 (ja) * 2011-11-04 2016-02-10 サンケン電気株式会社 情報処理プログラムおよび情報処理方法
US9436629B2 (en) 2011-11-15 2016-09-06 Marvell World Trade Ltd. Dynamic boot image streaming
US8983073B1 (en) * 2012-02-10 2015-03-17 Xilinx, Inc. Method and apparatus for restricting the use of integrated circuits
CN104247327B (zh) * 2012-02-21 2017-11-10 密克罗奇普技术公司 使用密钥加密密钥的密码发射系统
KR101944010B1 (ko) * 2012-02-24 2019-01-30 삼성전자 주식회사 애플리케이션의 변조 감지 방법 및 장치
CN103427981B (zh) * 2012-05-15 2016-07-06 北京华虹集成电路设计有限责任公司 一种实现加密、解密的方法以及装置
EP2850862B1 (en) * 2012-05-15 2018-10-03 Telefonaktiebolaget LM Ericsson (publ) Secure paging
US8955039B2 (en) * 2012-09-12 2015-02-10 Intel Corporation Mobile platform with sensor data security
US9043632B2 (en) 2012-09-25 2015-05-26 Apple Inc. Security enclave processor power control
US8873747B2 (en) 2012-09-25 2014-10-28 Apple Inc. Key management using security enclave processor
US9047471B2 (en) 2012-09-25 2015-06-02 Apple Inc. Security enclave processor boot control
US8775757B2 (en) 2012-09-25 2014-07-08 Apple Inc. Trust zone support in system on a chip having security enclave processor
US9684593B1 (en) * 2012-11-30 2017-06-20 EMC IP Holding Company LLC Techniques using an encryption tier property with application hinting and I/O tagging
US9881161B2 (en) 2012-12-06 2018-01-30 S-Printing Solution Co., Ltd. System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
KR20140073384A (ko) * 2012-12-06 2014-06-16 삼성전자주식회사 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법
US9575768B1 (en) 2013-01-08 2017-02-21 Marvell International Ltd. Loading boot code from multiple memories
US9280655B2 (en) * 2013-03-13 2016-03-08 Samsung Electronics Co., Ltd Application authentication method and electronic device supporting the same
US9355279B1 (en) 2013-03-29 2016-05-31 Secturion Systems, Inc. Multi-tenancy architecture
US9374344B1 (en) 2013-03-29 2016-06-21 Secturion Systems, Inc. Secure end-to-end communication system
US9317718B1 (en) 2013-03-29 2016-04-19 Secturion Systems, Inc. Security device with programmable systolic-matrix cryptographic module and programmable input/output interface
US9524399B1 (en) * 2013-04-01 2016-12-20 Secturion Systems, Inc. Multi-level independent security architecture
US9846656B2 (en) 2013-04-17 2017-12-19 Laurence H. Cooke Secure computing
US9280490B2 (en) 2013-04-17 2016-03-08 Laurence H. Cooke Secure computing
US9736801B1 (en) 2013-05-20 2017-08-15 Marvell International Ltd. Methods and apparatus for synchronizing devices in a wireless data communication system
US9521635B1 (en) 2013-05-21 2016-12-13 Marvell International Ltd. Methods and apparatus for selecting a device to perform shared functionality in a deterministic and fair manner in a wireless data communication system
WO2015015305A1 (en) 2013-07-31 2015-02-05 Marvell Word Trade Ltd. Parallelizing boot operations
TWI479359B (zh) * 2013-08-01 2015-04-01 Phison Electronics Corp 指令執行方法、記憶體控制器與記憶體儲存裝置
US9477603B2 (en) 2013-09-05 2016-10-25 Facebook, Inc. System and method for partitioning of memory units into non-conflicting sets
US9983894B2 (en) 2013-09-25 2018-05-29 Facebook, Inc. Method and system for providing secure system execution on hardware supporting secure application execution
US10049048B1 (en) 2013-10-01 2018-08-14 Facebook, Inc. Method and system for using processor enclaves and cache partitioning to assist a software cryptoprocessor
US9747450B2 (en) 2014-02-10 2017-08-29 Facebook, Inc. Attestation using a combined measurement and its constituent measurements
EP3105328B1 (en) 2014-02-11 2020-04-08 The Regents of the University of Colorado, a body corporate Crispr enabled multiplexed genome engineering
CN104883256B (zh) * 2014-02-27 2019-02-01 中国科学院数据与通信保护研究教育中心 一种抵抗物理攻击和系统攻击的密钥保护方法
US9734092B2 (en) 2014-03-19 2017-08-15 Facebook, Inc. Secure support for I/O in software cryptoprocessor
JP6368531B2 (ja) * 2014-04-28 2018-08-01 達広 白井 暗号処理装置、暗号処理システム、および暗号処理方法
US9240887B2 (en) * 2014-05-02 2016-01-19 Dell Products L.P. Off-host authentication system
US9300664B2 (en) * 2014-05-02 2016-03-29 Dell Products L.P. Off-host authentication system
US9639671B2 (en) * 2014-05-27 2017-05-02 Assured Information Security, Inc. Secure execution of encrypted program instructions
US9419954B1 (en) 2014-06-10 2016-08-16 Lockheed Martin Corporation Storing and transmitting sensitive data
US10430789B1 (en) 2014-06-10 2019-10-01 Lockheed Martin Corporation System, method and computer program product for secure retail transactions (SRT)
US20150363333A1 (en) * 2014-06-16 2015-12-17 Texas Instruments Incorporated High performance autonomous hardware engine for inline cryptographic processing
JP6584823B2 (ja) 2014-06-20 2019-10-02 株式会社東芝 メモリ管理装置、プログラム、及び方法
WO2016027121A1 (en) * 2014-08-20 2016-02-25 Intel Corporation Encrypted code execution
US9547778B1 (en) 2014-09-26 2017-01-17 Apple Inc. Secure public key acceleration
US9684608B2 (en) * 2014-10-28 2017-06-20 Intel Corporation Maintaining a secure processing environment across power cycles
CN107004099B (zh) * 2014-11-26 2020-06-05 惠普发展公司,有限责任合伙企业 存储器中攻击预防
EP3048776B2 (en) * 2015-01-22 2021-03-17 Nxp B.V. Methods for managing content, computer program products and secure element
US10571993B2 (en) * 2015-03-20 2020-02-25 Sanken Electric Co., Ltd. Micro controller unit
CN106209734B (zh) * 2015-04-30 2019-07-19 阿里巴巴集团控股有限公司 进程的身份认证方法和装置
EP3268866B1 (en) * 2015-06-18 2020-08-26 Hewlett-Packard Enterprise Development LP Transmitting contents of an operation field to a media controller
US10313129B2 (en) * 2015-06-26 2019-06-04 Intel Corporation Keyed-hash message authentication code processors, methods, systems, and instructions
US9667606B2 (en) * 2015-07-01 2017-05-30 Cyphermatrix, Inc. Systems, methods and computer readable medium to implement secured computational infrastructure for cloud and data center environments
US10073977B2 (en) * 2015-07-20 2018-09-11 Intel Corporation Technologies for integrity, anti-replay, and authenticity assurance for I/O data
US9639477B2 (en) * 2015-09-10 2017-05-02 Oracle International Corporation Memory corruption prevention system
US11283774B2 (en) 2015-09-17 2022-03-22 Secturion Systems, Inc. Cloud storage using encryption gateway with certificate authority identification
US9965402B2 (en) 2015-09-28 2018-05-08 Oracle International Business Machines Corporation Memory initialization detection system
TWI627556B (zh) * 2015-10-15 2018-06-21 威盛電子股份有限公司 微處理器與其中安全執行指令的方法
US10708236B2 (en) 2015-10-26 2020-07-07 Secturion Systems, Inc. Multi-independent level secure (MILS) storage encryption
EP3427435A1 (en) 2016-03-08 2019-01-16 Marvell World Trade Ltd. Methods and apparatus for secure device authentication
CN109688820B (zh) 2016-06-24 2023-01-10 科罗拉多州立大学董事会(法人团体) 用于生成条形码化组合文库的方法
US10721067B2 (en) * 2016-08-10 2020-07-21 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Secure processor for multi-tenant cloud workloads
EP4064088A1 (en) 2016-08-30 2022-09-28 Socionext Inc. Processing apparatus, and semiconductor integrated circuit and boot method therefor
CN106656502B (zh) * 2016-09-26 2020-09-01 上海兆芯集成电路有限公司 计算机系统及安全执行的方法
US10417433B2 (en) 2017-01-24 2019-09-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Encryption and decryption of data owned by a guest operating system
US10896267B2 (en) * 2017-01-31 2021-01-19 Hewlett Packard Enterprise Development Lp Input/output data encryption
US10637648B2 (en) * 2017-03-24 2020-04-28 Micron Technology, Inc. Storage device hash production
US10387687B2 (en) * 2017-04-07 2019-08-20 Nxp B.V. Method for symbolic execution on constrained devices
US9982279B1 (en) 2017-06-23 2018-05-29 Inscripta, Inc. Nucleic acid-guided nucleases
US10011849B1 (en) 2017-06-23 2018-07-03 Inscripta, Inc. Nucleic acid-guided nucleases
US10657071B2 (en) * 2017-09-25 2020-05-19 Intel Corporation System, apparatus and method for page granular, software controlled multiple key memory encryption
EP3460709B1 (en) * 2017-09-26 2022-02-09 Secure-IC SAS Devices and methods for secured processors
EP3483772A1 (en) * 2017-11-14 2019-05-15 Nagravision S.A. Integrated circuit personalisation with data encrypted with the output of a physically unclonable function
JP7007570B2 (ja) 2017-12-27 2022-01-24 株式会社ソシオネクスト 処理装置、半導体集積回路及び状態監視方法
US11347861B2 (en) 2018-04-10 2022-05-31 Raytheon Company Controlling security state of commercial off the shelf (COTS) system
GB201807257D0 (en) * 2018-05-02 2018-06-13 Nordic Semiconductor Asa Cryptographic key distribution
CN108881198B (zh) * 2018-06-07 2021-03-30 深圳市亿联智能有限公司 一种智能终端安全控制方法
US11120140B2 (en) * 2018-06-27 2021-09-14 International Business Machines Corporation Secure operations on encrypted data
US11263124B2 (en) 2018-08-03 2022-03-01 Micron Technology, Inc. Host-resident translation layer validity check
US11178159B2 (en) 2018-09-07 2021-11-16 Raytheon Company Cross-domain solution using network-connected hardware root-of-trust device
US10878101B2 (en) * 2018-09-07 2020-12-29 Raytheon Company Trusted booting by hardware root of trust (HRoT) device
US11423150B2 (en) 2018-09-07 2022-08-23 Raytheon Company System and method for booting processors with encrypted boot image
US10852964B2 (en) * 2018-09-25 2020-12-01 Micron Technology, Inc. Host-resident translation layer validity check techniques
CN109542518B (zh) * 2018-10-09 2020-12-22 华为技术有限公司 芯片和启动芯片的方法
US11216575B2 (en) 2018-10-09 2022-01-04 Q-Net Security, Inc. Enhanced securing and secured processing of data at rest
US10528754B1 (en) 2018-10-09 2020-01-07 Q-Net Security, Inc. Enhanced securing of data at rest
US11226907B2 (en) 2018-12-19 2022-01-18 Micron Technology, Inc. Host-resident translation layer validity check techniques
US11226894B2 (en) 2018-12-21 2022-01-18 Micron Technology, Inc. Host-based flash memory maintenance techniques
FR3093203A1 (fr) * 2019-02-22 2020-08-28 Proton World International N.V. Procédé d'authentification
FR3094520B1 (fr) * 2019-03-25 2021-10-22 St Microelectronics Rousset Clé de chiffrement et/ou de déchiffrement
US11513698B2 (en) 2019-04-01 2022-11-29 Raytheon Company Root of trust assisted access control of secure encrypted drives
EP3948608B1 (en) 2019-04-01 2023-04-26 Raytheon Company Adaptive, multi-layer enterprise data protection & resiliency platform
JP6671701B1 (ja) * 2019-07-19 2020-03-25 Eaglys株式会社 演算装置、演算方法、演算プログラム、および演算システム
CN110598403B (zh) * 2019-09-12 2020-11-27 北京环球国广媒体科技有限公司 一种进程数据保护方法
CN110659458A (zh) * 2019-10-10 2020-01-07 陈昶宇 支持软件代码数据保密可信执行的中央处理器设计方法
US11379588B2 (en) 2019-12-20 2022-07-05 Raytheon Company System validation by hardware root of trust (HRoT) device and system management mode (SMM)
CN111143247B (zh) * 2019-12-31 2023-06-30 海光信息技术股份有限公司 存储装置数据完整性保护方法及其控制器、片上系统
US20210200873A1 (en) * 2019-12-31 2021-07-01 Renesas Electronics America Inc. Method and system for continuously verifying integrity of secure instructions during runtime
US11763008B2 (en) 2020-01-15 2023-09-19 International Business Machines Corporation Encrypting data using an encryption path and a bypass path
US11520709B2 (en) * 2020-01-15 2022-12-06 International Business Machines Corporation Memory based encryption using an encryption key based on a physical address
JP7249968B2 (ja) 2020-03-09 2023-03-31 株式会社東芝 情報処理装置およびストレージ
US11403403B2 (en) 2020-04-13 2022-08-02 KameleonSec Ltd. Secure processing engine for securing a computing system
US11549051B2 (en) 2020-10-22 2023-01-10 Saudi Arabian Oil Company Methods and compositions for consolidating sand in subsurface formations
CN112269980A (zh) * 2020-10-30 2021-01-26 大唐高鸿信安(浙江)信息科技有限公司 处理器架构
US11876787B2 (en) * 2021-09-25 2024-01-16 RENent LLC Dynamic encrypted communications systems using encryption algorithm hopping

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4847902A (en) * 1984-02-10 1989-07-11 Prime Computer, Inc. Digital computer system for executing encrypted programs
US4825358A (en) 1985-04-10 1989-04-25 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
US4774659A (en) * 1986-04-16 1988-09-27 Astronautics Corporation Of America Computer system employing virtual memory
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
US5386469A (en) 1993-08-05 1995-01-31 Zilog, Inc. Firmware encryption for microprocessor/microcomputer
CA2136919A1 (en) * 1993-12-09 1995-06-10 John Timothy Hember Local area network encryption decryption system
JPH07182304A (ja) 1993-12-24 1995-07-21 Rohm Co Ltd マイクロコンピュータ及びその製造方法
JPH07327029A (ja) * 1994-05-31 1995-12-12 Fujitsu Ltd 暗号化通信システム
JP3713312B2 (ja) 1994-09-09 2005-11-09 株式会社ルネサステクノロジ データ処理装置
CA2225805C (en) * 1995-06-29 2002-11-12 Allan E. Alcorn Electronic casino gaming system with improved play capacity, authentication and security
JP3627384B2 (ja) 1996-01-17 2005-03-09 富士ゼロックス株式会社 ソフトウェアの保護機能付き情報処理装置及びソフトウェアの保護機能付き情報処理方法
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US6708274B2 (en) * 1998-04-30 2004-03-16 Intel Corporation Cryptographically protected paging subsystem
US5887131A (en) 1996-12-31 1999-03-23 Compaq Computer Corporation Method for controlling access to a computer system by utilizing an external device containing a hash value representation of a user password
US5859911A (en) * 1997-04-16 1999-01-12 Compaq Computer Corp. Method for the secure remote flashing of the BIOS of a computer
FR2765361B1 (fr) * 1997-06-26 2001-09-21 Bull Cp8 Microprocesseur ou microcalculateur imprevisible
US6704871B1 (en) * 1997-09-16 2004-03-09 Safenet, Inc. Cryptographic co-processor
US6708273B1 (en) * 1997-09-16 2004-03-16 Safenet, Inc. Apparatus and method for implementing IPSEC transforms within an integrated circuit
JPH11282667A (ja) 1998-03-31 1999-10-15 Nakamichi Corp 多重鍵方式の暗号処理機能を有するマイクロプロセッサ
US6735696B1 (en) * 1998-08-14 2004-05-11 Intel Corporation Digital content protection using a secure booting method and apparatus
US6832316B1 (en) * 1999-12-22 2004-12-14 Intertrust Technologies, Corp. Systems and methods for protecting data secrecy and integrity
JP4501197B2 (ja) * 2000-01-07 2010-07-14 ソニー株式会社 情報携帯処理システム、情報携帯装置のアクセス装置及び情報携帯装置
US6983374B2 (en) * 2000-02-14 2006-01-03 Kabushiki Kaisha Toshiba Tamper resistant microprocessor
DE60112045T2 (de) * 2000-02-17 2006-04-20 General Instrument Corporation Methode und gerät für sicheres fernladen von software
GB0015276D0 (en) * 2000-06-23 2000-08-16 Smith Neale B Coherence free cache
JP4153653B2 (ja) * 2000-10-31 2008-09-24 株式会社東芝 マイクロプロセッサおよびデータ保護方法
US6938164B1 (en) 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
DE60128007T2 (de) * 2000-12-25 2007-12-27 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung und verfahren zur sicherheitsbearbeitung von kommunikationspaketen
JP4074057B2 (ja) 2000-12-28 2008-04-09 株式会社東芝 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法
US6976174B2 (en) 2001-01-04 2005-12-13 Troika Networks, Inc. Secure multiprotocol interface
US7028184B2 (en) 2001-01-17 2006-04-11 International Business Machines Corporation Technique for digitally notarizing a collection of data streams
US6990444B2 (en) * 2001-01-17 2006-01-24 International Business Machines Corporation Methods, systems, and computer program products for securely transforming an audio stream to encoded text
US20020095586A1 (en) 2001-01-17 2002-07-18 International Business Machines Corporation Technique for continuous user authentication
US6968453B2 (en) 2001-01-17 2005-11-22 International Business Machines Corporation Secure integrated device with secure, dynamically-selectable capabilities
US6948066B2 (en) 2001-01-17 2005-09-20 International Business Machines Corporation Technique for establishing provable chain of evidence
US20020095587A1 (en) 2001-01-17 2002-07-18 International Business Machines Corporation Smart card with integrated biometric sensor
JP4098478B2 (ja) 2001-01-31 2008-06-11 株式会社東芝 マイクロプロセッサ
DE10108487A1 (de) * 2001-02-22 2002-09-12 Giesecke & Devrient Gmbh Verfahren und System zur verteilten Erstellung eines Programms für einen programmierbaren, tragbaren Datenträger
US6968460B1 (en) 2001-05-10 2005-11-22 Advanced Micro Devices, Inc. Cryptographic randomness register for computer system security
US7065654B1 (en) 2001-05-10 2006-06-20 Advanced Micro Devices, Inc. Secure execution box
JP2002353960A (ja) 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
FI114416B (fi) 2001-06-15 2004-10-15 Nokia Corp Menetelmä elektroniikkalaitteen varmistamiseksi, varmistusjärjestelmä ja elektroniikkalaite
US6976167B2 (en) 2001-06-26 2005-12-13 Intel Corporation Cryptography-based tamper-resistant software design mechanism
EP1276033B1 (de) * 2001-07-10 2012-03-14 Trident Microsystems (Far East) Ltd. Speichereinrichtung mit Datenschutz in einem Prozessor
EP1283464A1 (en) 2001-08-06 2003-02-12 Hewlett-Packard Company A boot process for a computer, a boot ROM and a computer having a boot ROM
US6996725B2 (en) * 2001-08-16 2006-02-07 Dallas Semiconductor Corporation Encryption-based security protection for processors
US7526654B2 (en) * 2001-10-16 2009-04-28 Marc Charbonneau Method and system for detecting a secure state of a computer system
FR2834361B1 (fr) 2001-12-28 2004-02-27 Bull Sa Module de securisation de donnees par chiffrement/dechiffrement et/ou signature/verification de signature
EP1331539B1 (en) 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
US7162644B1 (en) * 2002-03-29 2007-01-09 Xilinx, Inc. Methods and circuits for protecting proprietary configuration data for programmable logic devices
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US7840803B2 (en) 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
US6907522B2 (en) 2002-06-07 2005-06-14 Microsoft Corporation Use of hashing in a secure boot loader
EP1376367A2 (fr) 2002-06-26 2004-01-02 STMicroelectronics S.A. Vérification d'intégrité d'un code logiciel exécuté par un processeur intégré
JP4115759B2 (ja) 2002-07-01 2008-07-09 株式会社東芝 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム
US20040064457A1 (en) 2002-09-27 2004-04-01 Zimmer Vincent J. Mechanism for providing both a secure and attested boot
AU2003278347A1 (en) 2002-11-18 2004-06-15 Arm Limited Exception types within a secure processing system
GB2396930B (en) 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
US7149862B2 (en) * 2002-11-18 2006-12-12 Arm Limited Access control in a data processing apparatus
US7370210B2 (en) * 2002-11-18 2008-05-06 Arm Limited Apparatus and method for managing processor configuration data
GB2402785B (en) 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Processor switching between secure and non-secure modes
AU2003278350A1 (en) 2002-11-18 2004-06-15 Arm Limited Secure memory for protecting against malicious programs
GB2411254B (en) * 2002-11-18 2006-06-28 Advanced Risc Mach Ltd Monitoring control for multi-domain processors
WO2004046925A1 (en) 2002-11-18 2004-06-03 Arm Limited Security mode switching via an exception vector
US7171539B2 (en) * 2002-11-18 2007-01-30 Arm Limited Apparatus and method for controlling access to a memory
US7974416B2 (en) 2002-11-27 2011-07-05 Intel Corporation Providing a secure execution mode in a pre-boot environment
US20040199787A1 (en) 2003-04-02 2004-10-07 Sun Microsystems, Inc., A Delaware Corporation Card device resource access control
US7380136B2 (en) 2003-06-25 2008-05-27 Intel Corp. Methods and apparatus for secure collection and display of user interface information in a pre-boot environment
US7493435B2 (en) * 2003-10-06 2009-02-17 Intel Corporation Optimization of SMI handling and initialization
US7363491B2 (en) * 2004-03-31 2008-04-22 Intel Corporation Resource management in security enhanced processors
JP4447977B2 (ja) 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US20100077472A1 (en) * 2008-09-23 2010-03-25 Atmel Corporation Secure Communication Interface for Secure Multi-Processor System
DE102008062692B4 (de) 2008-12-17 2013-11-14 Texas Instruments Deutschland Gmbh Eingebettetes Mikrocontrollersystem und Verfahren zur Konfiguration eines eingebetteten Mikrocontrollersystems mit gesteuertem Schaltmodus
WO2012154664A2 (en) * 2011-05-06 2012-11-15 University Of North Carolina At Chapel Hill Methods, systems, and computer readable media for detecting injected machine code
US9489313B2 (en) * 2013-09-24 2016-11-08 Qualcomm Incorporated Conditional page fault control for page residency
JP6162652B2 (ja) * 2014-06-20 2017-07-12 株式会社東芝 メモリ管理装置、プログラム、及び方法
US10452566B2 (en) * 2015-10-02 2019-10-22 Nvidia Corporation Storing secure state information in translation lookaside buffer cache lines
US10515023B2 (en) * 2016-02-29 2019-12-24 Intel Corporation System for address mapping and translation protection
US11126714B2 (en) * 2017-11-29 2021-09-21 Arm Limited Encoding of input to storage circuitry
US11372972B2 (en) * 2018-03-19 2022-06-28 Intel Corporation Side-channel exploit detection
GB2572578B (en) * 2018-04-04 2020-09-16 Advanced Risc Mach Ltd Cache annotations to indicate specultative side-channel condition

Also Published As

Publication number Publication date
JP4447977B2 (ja) 2010-04-07
US20140089681A1 (en) 2014-03-27
EP2482222A3 (en) 2012-11-21
EP2482222A2 (en) 2012-08-01
EP1632835B1 (en) 2013-11-27
US10685145B2 (en) 2020-06-16
US11550962B2 (en) 2023-01-10
US20140089676A1 (en) 2014-03-27
US7865733B2 (en) 2011-01-04
EP1632835A2 (en) 2006-03-08
US9672384B2 (en) 2017-06-06
US20170046538A1 (en) 2017-02-16
US9141829B2 (en) 2015-09-22
CN1722046A (zh) 2006-01-18
US20140082371A1 (en) 2014-03-20
US10095890B2 (en) 2018-10-09
US8886959B2 (en) 2014-11-11
US10303901B2 (en) 2019-05-28
EP2490146A3 (en) 2012-11-28
EP2490147A3 (en) 2012-11-28
JP2006018528A (ja) 2006-01-19
CN100361039C (zh) 2008-01-09
EP2490148B1 (en) 2015-04-08
CN101174290A (zh) 2008-05-07
EP2490146B1 (en) 2015-11-25
EP2482222B1 (en) 2016-11-16
US9652635B2 (en) 2017-05-16
US20170046539A1 (en) 2017-02-16
US20200265169A1 (en) 2020-08-20
EP2490147B1 (en) 2015-04-08
EP2490148A2 (en) 2012-08-22
CN101178758A (zh) 2008-05-14
US9536110B2 (en) 2017-01-03
EP2490148A3 (en) 2012-11-21
US20140089680A1 (en) 2014-03-27
US20110167278A1 (en) 2011-07-07
EP1632835A3 (en) 2011-10-19
US20190236314A1 (en) 2019-08-01
EP2490147A2 (en) 2012-08-22
CN101174290B (zh) 2010-06-02
EP2490146A2 (en) 2012-08-22
US20060015748A1 (en) 2006-01-19

Similar Documents

Publication Publication Date Title
CN101178758B (zh) 安全处理器
US8788840B2 (en) Secure processor
JP5316592B2 (ja) セキュアプロセッサ用プログラム
JP5365664B2 (ja) セキュアプロセッサ
CN106233266A (zh) 安全的存储器系统及其方法
JP4783452B2 (ja) セキュアプロセッサ
Alliance Resistance is not Futile
JP2009301565A (ja) セキュアプロセッサ

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: FUJITSU MICROELECTRONICS CO., LTD.

Free format text: FORMER OWNER: FUJITSU LIMITED

Effective date: 20081024

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

Effective date of registration: 20081024

Address after: Tokyo, Japan, Japan

Applicant after: Fujitsu Microelectronics Ltd.

Address before: Kanagawa

Applicant before: Fujitsu Ltd.

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20080514

CI01 Publication of corrected invention patent application

Correction item: Rejection of patent application

Correct: Dismiss

False: Reject

Number: 32

Volume: 26

ERR Gazette correction

Free format text: CORRECT: PATENT APPLICATION REJECTION OF AFTER PUBLICATION; FROM: REJECTION TO: REVOCATION REJECTED

C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: Kanagawa

Applicant after: Fujitsu Semiconductor Co., Ltd.

Address before: Tokyo, Japan, Japan

Applicant before: Fujitsu Microelectronics Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: FUJITSU MICROELECTRON CO., LTD. TO: FUJITSU SEMICONDUCTOR CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: SUOSI FUTURE CO., LTD.

Free format text: FORMER OWNER: FUJITSU SEMICONDUCTOR CO., LTD.

Effective date: 20150512

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

Effective date of registration: 20150512

Address after: Kanagawa

Patentee after: Co., Ltd. Suo Si future

Address before: Kanagawa

Patentee before: Fujitsu Semiconductor Co., Ltd.