微处理器以及相关的操作方法

文档序号:6523465阅读:154来源:国知局
微处理器以及相关的操作方法
【专利摘要】本发明涉及微处理器以及相关的操作方法。该微处理器包括:一指令高速缓冲存储器;一提取单元,根据一序列多个提取地址数值自该指令高速缓冲存储器提取一加密程序中的具有一序列多个区块的加密指令,其中,提取该序列各个区块时,该提取单元更以该提取单元内多个密钥数值以及所提取该区块的提取地址数值的部分内容为一函数产生一解密密钥,以解密所提取该区块的加密指令;以及一密钥切换指令,在该提取单元自该指令高速缓冲存储器提取该序列上述多个区块时,指示该微处理器更新该提取单元内的上述多个密钥数值。
【专利说明】微处理器以及相关的操作方法
[0001]本申请为申请日为2011年5月25日、申请号为201110136447.8的发明名称为“微处理器以及相关的操作方法、以及加密、解密方法”的申请案的分案申请。
【技术领域】
[0002]本发明涉及微处理器(microprocessor)领域,特别是涉及用于增加微处理器所执行的程序的安全性。
【背景技术】
[0003]很多软件程序在面临破坏计算机系统安全的攻击时,通常是脆弱不堪的。例如,黑客可藉由攻击一运行中程序的缓冲溢位区漏洞(buffer overflow vulnerability)植入不当程序码、并转移主控权给该不当程序码。如此一来,所植入的程序码将主导被攻击的程序。一种防范软件程序遭攻击的方案为指令集随机化(instruction set randomization) 0概略解释之,指令集随机化技术会先将程序加密(encrypt)为某些形式,再于处理器将该程序自存储器提取后,于该处理器内解密(decrypt)该程序。如此一来,黑客便不易植入恶意指令,因为所植入的指令必须被适当地加密(例如,使用与所攻击程序相同的加密密钥或演算法)方会被正确地执行。例如,参阅文件「Counter Code-1njection Attackswith Instruction-Set Randomization, by Gaurav S.Kc,Angelos D.Keromytis, andVassilis Prevelakis,CCS,03,0ctober27-30,2003, Washington, DC, USA, ACMl-58113-738-9/03/0010」,其中叙述 Bochs_x86Pentium 模拟器(emulator)的改良版本。相关技术的缺点已被广泛讨论。例如,参阅数据「Where’ s the FEEB?The Effectivenessof Instruction Set Randomization, by Ana Nora Sovarel, David Evans, and NathanaelPaul, http://www.cs.Virginia, edu/feeb」。

【发明内容】

[0004]本发明一种实施方式揭示一微处理器。该微处理器包括一指令高速缓冲存储器、一指令解码单元、以及一提取单元。该提取单元用于:(a)自该指令高速缓冲存储器提取一区块的指令数据;(b)以一数据实体对该区块执行一布林异运算,以产生纯文字指令数据;以及(C)将上述纯文字指令数据提供给该指令解码单元。在一第一状况下,该区块包括加密指令数据、且该数据实体为解密密钥。在一第二状况下,该区块包括非加密指令数据、且该数据实体为多个位的二进位零值。无论该区块的指令数据为加密或非加密,实行上述内容(a)、(b)以及(C)所需要的时间在该第一状况下以及该第二状况下是相同的。
[0005]本发明另外一种实施方式揭示一方法,用以操作具有一指令高速缓冲存储器的一微处理器。该方法包括:(a)自该指令高速缓冲存储器提取一区块的指令数据;(b)以一数据实体对该区块进行一布林异运算,以产生纯文字指令数据;以及(C)供应上述纯文字指令数据给一指令解码单元。在一第一状况下,该区块包括加密指令数据、且该数据实体为解密密钥。在一第二状况下,该区块包括非加密指令数据、且该数据实体为多个位的二进位零值。无论该区块的指令数据为加密或非加密,实行上述内容(a)、(b)以及(C)所需要的时间在该第一状况下以及该第二状况下是相同的。
[0006]本发明一种实施方式提供一微处理器。该微处理器包括一指令高速缓冲存储器以及一提取单元。该提取单元会自该指令高速缓冲存储器一序列多个提取地址提取一加密程序一序列多个区块的加密指令。在提取该序列各个区块时,提取单元更以多个密钥数值以及所提取该区块的提取地址的部份内容为一函数,生成解密密钥。针对提取出的该序列各个区块,提取单元还采用对应的解密密钥解密其中加密指令。该微处理器还包括一密钥切换指令,在该提取单元自该指令高速缓冲存储器提取该序列上述多个区块时,指示该微处理器更新该提取单元内的这些密钥数值。
[0007]本发明另外一种实施方式揭示一种方法,操作具有一指令高速缓冲存储器的一微处理器。该方法包括自该指令高速缓冲存储器提取一程序多个第一加密指令,且将之以一第一解密密钥解密为多个第一非加密指令。该方法还包括将该第一解密密钥以一第二解密密钥取代,回应这些第一非加密指令中的一密钥切换指令。该方法还包括自该指令高速缓冲存储器提取该程序的多个第二加密指令,且将之以该第二解密密钥解密为多个第二非加密指令。
[0008]本发明另外一种实施方式揭不一种方法,用于操作一微处理器。该方法包括自一指令高速缓冲存储器一序列多个提取地址提取一加密程序一序列多个区块的加密指令。该方法还包括在提取该序列各个区块时,以多个密钥数值以及所提取该区块的提取地址的部份内容为一函数生成解密密钥。该方法还包括针对该序列内各区块,使用对应的上述解密密钥解密其中的加密指令。该方法还包括在提取该序列上述多个区块时,执行一密钥切换指令。执行上述密钥切换指令包括更新用于生成上述解密密钥的这些密钥数值。
[0009]本发明一种实施方式揭示一种微处理器。该微处理器包括一提取单元,使用第一解密密钥数据提取并且解密一分支与切换密钥指令。该微处理器还包括微代码。上述微代码在该分支与切换密钥指令的方向不被采用的状况下,令该提取单元采用上述第一解密密钥数据提取并且解密该分支与切换密钥指令之后的接续指令。该微代码还在该分支与切换密钥指令被采用的状况下,令该提取单元采用不同于上述第一解密密钥数据的第二解密密钥数据提取并且解密该分支与切换密钥指令的一目标指令。
[0010]本发明另外一种实施方式揭不一方法,以一微处理器处理一加密程序。该方法包括使用第一解密密钥数据提取并且解密一分支与切换密钥指令。此方法还包括,在该分支与切换密钥指令的方向不被采取的状况下,以上述第一解密密钥数据提取并且解密该分支与切换密钥指令之后的接续指令。该方法还包括,在该分支与切换密钥指令的方向被采取的状况下,以不同于上述第一解密密钥数据的第二解密密钥数据提取并且解密该分支与切换密钥指令的一目标指令。
[0011]本发明另外一种实施方式亦揭示一方法,用于加密一程序,以供用于解密与执行加密程序的一微处理器日后执行。该方法包括接收一非加密程序的一目的文件,其中包括传统分支指令,所指示的目标地址可于该微处理器执行该程序前判定。该方法还包括分析该程序以获得块信息。上述块信息将该程序划分成一序列多个块。各块包括一序列多个指令。上述块信息还包括各块相关的加密密钥数据。各块对应的加密密钥数据不相同。该方法还包括将上述传统分支指令中目标地址与自身坐落不同块者各自以一分支与切换密钥指令取代。该方法还包括基于上述块信息加密该程序。
[0012]本本发明另外一种实施方式亦揭示一方法,用于加密一程序,以供用于解密与执行加密程序的一微处理器日后执行。该方法包括接收一非加密程序的一目的文件,其中包括传统分支指令,所指示的目标地址仅能在该微处理器执行该程序时判定。该方法还包括分析该程序以获得块信息。上述块信息将该程序划分成一序列多个块。各块包括一序列多个指令。上述块信息还包括各块相关的加密密钥数据。各块对应的加密密钥数据不相同。该方法还包括将上述传统分支指令各自以一分支与切换密钥指令取代。该方法还包括基于上述块信息,加密该程序。
[0013]本发明一种实施方式揭不一微处理器。该微处理器包括一架构寄存器,该架构寄存器包括一位。该微处理器负责设定该位。该微处理器还包括一提取单元。该提取单元自一指令高速缓冲存储器提取加密指令、并在执行上述加密指令前将上述加密指令解密,以回应该微处理器将该位设定的操作。若接收到一中断,该微处理器储存该位的数值至一堆迭内存、并且随后将该位清除。在微处理器清除该位后,该提取指令是自该指令高速缓冲存储器提取非加密指令,并不对上述非加密指令作解密操作即执行之。该微处理器还自该堆迭内存将先前储存的数值用来修复该架构寄存器的该位,以回应自中断指令返回的操作。若判定该位修复后的数值为设定状态,该提取单元重新提取并且解密加密指令。
[0014]本发明另外一种实施方式揭示一种方法,用于操作具有一指令高速缓冲存储器以及一架构寄存器的一微处理器。该方法包括设定该架构寄存器内的一位,并且随后自该指令高速缓冲存储器提取加密指令,并且在执行上述加密指令前将上述加密指令解密。在面对一中断时,该方法还包括储存该架构寄存器该位的数值,并且随后清除该位。在清除该位后,该方法还包括自该指令高速缓冲存储器提取非加密指令,并且不作解密即执行上述非加密指令。该方法还包括以先前储存的数值修复该架构寄存器该位,以回应自中断指令返回的操作。若判定该位修复后的数值为设定状态,该方法还包括重新提取并且解密并且执行加密指令。
[0015]本发明另外一种实施方式揭不一微处理器。该微处理器包括一架构寄存器以及一提取单元,该架构寄存器包括一位。该微处理器储存该位的数值,以回应中断执行中程序的一要求。该位标示执行中程序为加密或非加密。该微处理器以先前储存的数值修复该位,并且重新提取被中断的程序作为执行中程序,以回应自中断指令返回的操作。若该位修复后的数值为设定状态,该微处理器在重新提取中断的程序之前,先将解密密钥数值修复,以使用修复的解密密钥数值解密所提取的指令。若该位修复后的数值为清除状态,该微处理器不作解密密钥数值修复、并且不对所提取的指令作解密。
[0016]本发明另外一种实施方式揭示一种方法,用以操作一微处理器。该方法包括储存该微处理器一位的数值,以回应中断执行中程序的一要求。该位标示执行中程序为加密或非加密。回应自中断指令返回的操作,该方法还包括以先前储存的数值修复该位,并且重新提取中断的程序作为执行中程序。若该位修复后的数值为设定状态,该方法还包括在重新提取中断程序之前,将解密密钥数值修复,并且以修复后的解密密钥数值解密所提取的指令。若该位修复后的数值为清除状态,该方法不会作解密密钥修复操作,也不对提取的指令作解密。
[0017]本发明一种实施方式揭不一种微处理器。该微处理器包括一储存兀件,具有多个位置各自储存一个加密程序的解密密钥数据。该微处理器还包括一控制寄存器,以一字段标示该储存元件上述多个位置中与执行中的加密程序相关者。回应自中断指令返回的操作,该微处理器自存储器将先前储存的该字段的数值用来修复该控制寄存器。该微处理器还包括一提取单元,用以提取执行中的加密程序的加密指令、并且将之以该字段修复后的数值在该储存元件所标示的位置所储存的解密密钥数据解密。
[0018]本发明另外一种实施方式揭示一方法,用以操作具有一控制寄存器以及一储存元件的一微处理器,该储存元件内多个位置各自储存一个加密程序的解密密钥数据。该方法包括自存储器将先前储存的该字段的数值用来修复该控制寄存器内一字段,以回应自中断指令返回的操作,其中,该字段的数值标示该储存元件上述多个位置中与执行中加密程序有关。该方法还包括提取执行中的加密程序的加密指令。该方法还包括以该字段修复后的数值在该储存元件所标示的位置所储存的解密密钥数据解密所提取的加密指令。
[0019]本发明一种实施方式揭不一种微处理器。该微处理器包括一分支目标地址高速缓冲存储器(BTAC)记录先前执行过的分支与切换密钥指令的历史信息。上述历史信息包括所记录的分支与切换密钥指令的目标地址以及标识符。上述标识符标示与所属的分支与切换密钥指令相关的多个密钥数值。该微处理器还包括一提取单元,耦接该分支目标地址高速缓冲存储器。该提取单元提取先前执行过的分支与切换密钥指令时,会接收该分支目标地址高速缓冲存储器所作的预测、并且自该分支目标地址高速缓冲存储器接收关于所提取的分支与切换密钥指令的上述目标地址以及标识符。该提取单元还根据所接收的目标地址提取加密指令数据、并且根据所接收的标识符所标示的多个密钥数值解密所提取的加密指令数据,以回应接收到的上述预测。
[0020]本发明另外一种实施方式揭不一种方法,用于操作一微处理器。该方法包括以一分支目标地址高速缓冲存储器(BTAC)记录先前执行过的分支与切换密钥指令的历史信息。上述历史信息包括所记录的分支与切换密钥指令的目标地址以及标识符。上述标识符标示与所属的分支与切换密钥指令相关的多个密钥数值。该方法更于先前执行过的分支与切换密钥指令被提取时接收该分支目标地址高速缓冲存储器所作的预测、并且自该分支目标地址高速缓冲存储器接收关于所提取的分支与切换密钥指令的上述目标地址以及标识符。该方法更根据所接收的目标地址提取加密指令数据、并且根据所接收的标识符所标示的多个密钥数值解密所提取的加密指令数据,以回应接收到的上述预测。
【专利附图】

【附图说明】
[0021]图1为一方块图,图解根据本发明技术实现的一微处理器;
[0022]图2为一方块图,用以详细说明图解图1的提取单元;
[0023]图3为一流程图,根据本发明技术,图解图2提取单元的操作;
[0024]图4为一方块图,根据本发明技术,图解图1标志寄存器的字段;
[0025]图5为一方块图,根据本发明技术,图解一密钥载入指令的格式;
[0026]图6为一方块图,根据本发明技术,图解一密钥切换指令的格式;
[0027]图7为一流程图,根据本发明技术,图解图1微处理器的操作,其中执行图6的密钥切换指令;
[0028]图8为一方块图,根据本发明技术,图解一加密程序的存储器用量,该加密程序包括多个图6所接露的密钥切换指令;
[0029]图9为一方块图,根据本发明技术,图解一分支与切换密钥指令的格式;
[0030]图10为一流程图,根据本发明技术,图解图1微处理器的操作,其中执行图9的分支与切换密钥指令;
[0031]图11为一流程图,根据本发明技术,图解一后处理器的操作,由软件工具实现,可用于后部处理一程序、且加密之,以由图1微处理器执行;
[0032]图12为一方块图,图解本发明另外一种实施方式的分支与切换密钥指令的格式;
[0033]图13为一方块图,根据本发明技术,图解块地址范围表;
[0034]图14为一流程图,根据本发明技术,图解图1微处理器的操作,其中执行图12的分支与切换密钥指令;
[0035]图15为一方块图,图解本发明另外一种实施方式的分支与切换密钥指令的格式;
[0036]图16为一方块图,根据本发明技术,图解块地址范围表;
[0037]图17为一流程图,根据本发明技术,图解图1微处理器的操作,其中执行图15的分支与切换密钥指令;
[0038]图18为一流程图,图解本发明技术另外一种实施方式,其中叙述一后处理器的操作,用于后部处理一程序、且加密之,由图1微处理器执行;
[0039]图19为一流程图,根据本发明技术,图解图1微处理器的操作,用于应付一任务切换,切换于一加密程序以及一纯文字程序之间;
[0040]图20图解一流程图,根据本发明技术,图解图1微处理器所执行的系统软件的操作;
[0041]图21图解一方块图,根据本发明另外一种实施方式,图解图1标志寄存器的字段;
[0042]图22为一流程图,根据本发明技术,图解采用图21的标志寄存器的图1微处理器的操作,用于应付一任务切换,切换于多个加密程序之间;
[0043]图23为一流程图,根据本发明技术,图解采用图21的标志寄存器的图1微处理器的操作,用于应付一任务切换,切换于多个加密程序之间;
[0044]图24为一方块图,根据本发明另外一种实施方式,图解图1密钥寄存器文档中的单一个寄存器;
[0045]图25为一流程图,根据本发明另外一种实施方式,图解采用图21标志寄存器以及图24密钥寄存器文档的图1微处理器的操作,以应付一任务切换,切换于多个加密程序之间;
[0046]图26为一流程图,根据本发明另外一种实施方式,图解采用图21标志寄存器以及图24密钥寄存器文档的图1微处理器的操作,以应付一任务切换,切换于多个加密程序之间;
[0047]图27为一方块图,图解图1微处理器100部分内容的其他实施方式;
[0048]图28为一方块图,根据本发明技术,详细图解图27的分支目标地址高速缓冲存储器(BTAC);
[0049]图29为一方块图,根据本发明技术,详细图解图28的BTAC各单元的内容;
[0050]图30为一流程图,根据本发明技术,图解图27微处理器采用图28BTAC的操作;[0051]图31为一流程图,根据本发明技术,图解图27微处理器采用图28BTAC的操作;以及
[0052]图32为一流程图,根据本发明技术,图解图27微处理器对一分支与切换密钥指令的操作;以及
[0053]附图符号说明
【权利要求】
1.一种微处理器,包括: 一指令高速缓冲存储器; 一提取单元,根据一序列多个提取地址数值自该指令高速缓冲存储器提取一加密程序中的具有一序列多个区块的加密指令,其中,提取该序列各个区块时,该提取单元更以该提取单元内多个密钥数值以及所提取该区块的提取地址数值的部分内容为一函数产生一解密密钥,以解密所提取该区块的加密指令;以及 一密钥切换指令,在该提取单元自该指令高速缓冲存储器提取该序列上述多个区块时,指示该微处理器更新该提取单元内的上述多个密钥数值。
2.如权利要求1所述的微处理器,其中该提取单元先天供应一有效解密密钥长度用于解密该加密程序,其中,该有效解密密钥长度取决于上述多个密钥数值的总量、以及该提取单元产生上述解密密钥的方式,其中,在该加密程序内以该密钥切换指令更新该提取单元内的上述多个密钥数值的操作将扩展该有效解密密钥长度,使之超越先天供应的长度。
3.如权利要求2所述的微处理器,其中,被扩展的该有效解密密钥长度与该加密程序一样长。
4.如权利要求1所述的微处理器,还包括: 一寄存器文档,储存多套密钥数值; 其中,上述密钥切换指令标示一索引数值,指示该寄存器文档中上述多套密钥数值的其中一套的位置,该微处理器会以该密钥切换指令所标示的该索引数值,且该索引数值所指示的该套密钥数值更新该提取单元内用于产生上述解密密钥的上述多个密钥数值。
5.如权利要求1所述的微处理器,其中该微处理器包括一管线,该管线包括有: 一执行单元位于该提取单元后; 其中,该提取单元提取并且解密该加密程序的一第一以及一第二加密指令,而得到一第一以及一第二非加密指令; 其中,若该密钥切换指令执行,该执行单元将用以解密第一加密指令的一第一解密密钥以一第二解密密钥取代,其中该第二解密密钥用以解密第二加密指令。
6.如权利要求5所述的微处理器,其中该微处理器更将程序顺序中新于该密钥切换指令的第一非加密指令的管道指令清空。
7.如权利要求1所述的微处理器,还包括: 微代码,用于实现该密钥切换指令。
8.如权利要求1所述的微处理器,其中,该微处理器还跳跃至程序顺序中位于该密钥切换指令之后的接续指令,以回应该密钥切换指令的执行。
9.一种操作方法,操作具有一指令高速缓冲存储器的一微处理器,该操作方法包括: 自该指令高速缓冲存储器提取一程序中多个第一加密指令,且将之以一第一解密密钥解密为多个第一非加密指令; 将该第一解密密钥以一第二解密密钥取代,以回应上述多个第一非加密指令中一密钥切换指令的执行;以及 自该指令高速缓冲存储器提取该程序多个第二加密指令,且将之以该第二解密密钥解密成多个第二非加密指令。
10.如权利要求9所述的操作方法,其中,该密钥切换指令标示一索引数值,以指示该微处理器内一寄存器文档的一位置,其中,上述将该第一解密密钥以该第二解密密钥取代的步骤包括自该索引数值所指示的该寄存器文档的位置将该第二解密密钥载入该微处理器一提取单元。
11.如权利要求9所述的操作方法,其中,上述提取这些第二加密指令的步骤包括跳跃至程序顺序中该密钥切换指令之后接续的指令。
12.如权利要求9所述的操作方法,其中,该程序包括一第一块连续指令以及紧随在后的一第二块连续指令,其中,该第一块连续指令包括这些第一加密指令、且该第二块连续指令包括这些第二加密指令,其中,该第一块连续指令是以该第一解密密钥加密、且该第二块连续指令是以该第二解密密钥加密,其中,该密钥切换指令是该第一块连续指令的最后一个指令。
13.一种操作方法,用以操作一微处理器,该操作方法包括: 自一指令高速缓冲存储器的一序列多个提取地址提取一加密程序中的一序列多个区块的加密指令; 在提取该序列各个区块时,以多个密钥数值以及所提取该区块的提取地址的部份数值为一函数,生成一解密密钥; 关于该序列中所提取的各区块,以所对应生成的上述解密密钥解密其中的加密指令;以及 在提取该序列这些区块间执行密钥切换指令,其中,上述执行密钥切换指令的步骤包括更新用来生成上述解密密钥的这些密钥数值。
14.如权利要求13所述的操作方法,其中,上述密钥切换指令是一个解密后的指令,由所提取该序列的这些区块的一的加密指令中解密而得。
15.如权利要求13所述的操作方法,其中,由这些密钥数值以及对应的提取地址的部份数值所形成的该函数先天提供一有效解密密钥长度用于解密该加密程序,其中,该有效解密密钥长度先天的尺寸取决于这些密钥数值的总量以及上述解密密钥的产生操作方法,其中,在上述密钥切换指令更新这些密钥数值将扩展该有效解密密钥长度超越先天的尺寸。
16.如权利要求15所述的操作方法,其中,扩展后的该有效解密密钥长度与该加密程序等长。
17.如权利要求13所述的操作方法,其中,上述密钥切换指令标示一索引数值指示微处理器中保存这些密钥数值的一位置,以用于执行上述更新步骤。
【文档编号】G06F21/72GK103699833SQ201310680122
【公开日】2014年4月2日 申请日期:2011年5月25日 优先权日:2010年5月25日
【发明者】G·葛兰·亨利, 泰瑞·派克斯, 布兰特·比恩, 汤姆士·A·克理斯宾 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1