指令执行方法及其处理器、介质和系统技术方案

技术编号:21476856 阅读:18 留言:0更新日期:2019-06-29 04:37
本申请涉及信息处理的安全领域,公开了一种防止侧信道攻击的指令执行方法及其处理器和系统。本申请中的指令执行方法包括:确定第一指令的运算操作,并对第一指令和第一指令的操作数进行与第一指令的运算操作对应的第一运算预处理和第一运算;确定第二指令的运算操作,并对第二指令和第二指令的操作数进行与第二指令的运算操作对应的第二运算预处理和第二运算;其中,第一运算和第二运算为不同的运算,并且第一运算预处理和第一运算与第二运算预处理和第二运算并行进行。

【技术实现步骤摘要】
指令执行方法及其处理器、介质和系统
本申请涉及信息处理的安全领域,特别涉及一种指令执行方法及其处理器、介质和系统。
技术介绍
在普通的大数运算协处理装置中,一般是单一的协处理器,根据指令先后完成各种大数运算操作,从而完成RSA(RivestShamirAdleman,一种非对称加密算法)或ECC(EllipticCurveCryptography,椭圆曲线加密)的编解码、数字签名和密钥产生和交换。但是在侧信道攻击中,特别在基于能量的侧信道攻击中,对RSA或ECC的过程容易探测到,例如模幂和模逆过程就有显著的能量分布的特点:相对于其他的操作过程,一般这2个过程时间上比较长,能量上能清楚的探测到比特处理的痕迹。安全的算法过程的RSA、ECC本身的算法部分都是公开的,具体实现模幂、模逆或点乘的过程的算法基本也是通用的。
技术实现思路
本申请的目的在于提供一种指令执行方法及其处理器、介质和系统,可对运算装置执行不同类型运算时的功率谱产生混淆,从而加强运算装置防侧信道攻击的能力。为解决上述技术问题,本申请的实施例公开了一种指令执行方法,方法包括:确定第一指令的运算操作,并对所述第一指令和第一指令的操作数进行与所述第一指令的运算操作对应的第一运算预处理和第一运算;确定第二指令的运算操作,并对所述第二指令和第二指令的操作数进行与所述第二指令的运算操作对应的第二运算预处理和第二运算;其中,所述第一运算和第二运算为不同的运算,并且所述第一运算预处理和所述第一运算与所述第二运算预处理和所述第二运算并行进行。本申请的实施例还公开了一种处理器,该处理器包括:分类模块,用于确定第一指令和第二指令的运算操作;第一运算预处理模块,用于对分类模块确定的所述第一指令和该第一指令的操作数进行第一运算预处理;第一运算模块,用于对分类模块确定的所述第一指令和该第一指令的操作数进行第一运算;第二运算预处理模块,用于对分类模块确定的所述第二指令和该第二指令的操作数进行第二运算预处理;第二运算模块,用于对对分类模块确定的所述第二指令和该第二指令的操作数进行第二运算;其中,所述第一运算模块和第二运算模块进行不同的运算,并且所述第一运算预处理模块和第一运算模块与第二运算预处理模块和第二运算模块并行运行。本申请的实施例还公开了一种机器可读介质,其中,所述机器可读介质上存储有指令,该指令在机器上执行时使机器执行上述实施例所述的指令执行方法。本申请的实施例还公开了一种系统,包括:存储器,用于存储由系统的一个或多个处理器执行的指令,以及处理器,是系统的处理器之一,用于执行上述实施例所述的指令执行方法。本申请实施例包括,但不限于,如下效果:通过将不同运算类型的指令运算预处理和运算并行进行,能够对运算装置执行不同类型运算时的功率谱产生混淆,从而加强运算装置防侧信道攻击的能力。进一步地,在对运算装置执行不同类型运算时的功率谱产生混淆的同时,在时间上分别对不同的运算进行混淆,进一步提高运算装置防止侧信道攻击的能力。进一步地,在对运算装置执行不同类型运算时的功率谱产生混淆的同时,在时间上对指令的执行进行混淆,进一步提高运算装置防侧信道攻击的能力。进一步地,在大数运算装置中,乘法和非乘运算的运算逻辑相差较大,将两者并行执行,能够有效对两种运算产生的功率谱产生混淆,有效地防止对运算装置的侧信道攻击。附图说明在附图各图中通过示例而不是限制说明了本申请,其中相同标记指示相同元件,且其中:图1是根据本申请的一些实施例的执行指令执行方法的处理器的结构示意图。图2是根据本申请的一些实施例,图1中所示的处理器中的分类模块的结构示意图。图3是根据本申请的一些实施例,图1中所示的处理器执行指令的方法的流程示意图。图4是根据本申请的一些实施例执行指令执行方法的处理器的结构示意图。图5A是根据本申请的一些实施例的一种有序流水线的框图。图5B是根据本申请的一些实施例的将包括在处理器中的一种有序架构核的框图。图6是根据本申请一些实施例的可具有超过多核的处理器的框图。图7是根据本申请一些实施例的一种系统的框图。图8是根据本申请一些实施例的一种片上系统(SoC)的框图。具体实施例本申请的说明性实施例包括但不限于指令的执行方法、处理器、介质和系统。将使用本领域技术人员通常采用的术语来描述说明性实施例的各个方面,以将他们工作的实质传达给本领域其他技术人员。然而,对于本领域技术人员显而易见的是,可以使用所描述方面的部分来实践一些可替代实施例。出于解释的目的,为提供对说明性实施例的透彻理解,对具体的数字、材料和配置进行阐述。然而,对于本领域技术人员来说显而易见的是,可以在没有具体细节的情况下实现替代的实施例。在其他情况下,为了不对说明性实施例造成混淆,省略或简化了一些公知的特征。为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施例作进一步地详细描述。图1示出了执行本申请的指令执行方法的一示例处理器100的结构示意图,图2示出了图1所示的示例处理器中分类模块的结构示意图。具体地,如图1所示,处理器100为协处理器,其接收Host1发送的指令。该处理器100包括控制寄存器110、分类模块120、非乘预处理模块140和乘法预处理模块150、非乘模块160和乘法模块170、访问控制模块180和SRAM(StaticRandom-AccessMemory,静态随机存取存储器)190。其中Host为主处理器、任务或者应用程序。控制寄存器110由Host1通过总线进行控制,控制寄存器对Host1发送给协处理器100的操作码进行分配。Host1通过控制寄存器110间接访问SRAM190。数据选择器Mux130用于选择操作码指定的控制寄存器。分类模块120对接收自Host1的指令根据指令的运算操作类型进行分类。图2示出了分类模块120的具体结构示意图。如图2所示,分类模块120中的指令池1201存储有从Host1接收的指令和与指令对应的操作数。此外,指令池1201中也可以存储伪指令和与伪指令对应的操作数(可选地)。指令/操作数分类单元1202通过确定指令的运算操作对指令池中的指令(包括伪指令)进行分类,如果指令(即第一指令)的运算操作属于非乘模块160执行的运算,则将该指令及其操作数分类到非乘指令/操作数FIFO(FirstInputFirstOutput,先进先出)1203,如果指令(即第二指令)的运算操作属于乘法模块170执行的运算,则将该指令及其操作数分类到乘法指令/操作数FIFO1204。此外,分类模块120还可以包括非乘和乘法伪指令池1205、1206。非乘伪指令池1205存储有可以由非乘模块160执行的伪指令(即第一伪指令)和与伪指令对应的操作数,乘法伪指令池1206存储有可以由乘法模块170执行的伪指令(即第二伪指令)和与伪指令对应的操作数。在具有非乘伪指令池1205和乘法伪指令池1206的情况下,分类模块120还包括非乘数据选择器MUX1207和乘法数据选择器MUX1208。非乘数据选择器MUX1207从非乘指令/操作数FIFO1203和非乘伪指令池1205选择指令或者伪指令发送到非乘预处理模块140进行非乘运算前的预处理,乘法数据选择器MUX1208从乘法指令/操作数FIFO1本文档来自技高网...

【技术保护点】
1.一种指令执行方法,其特征在于,包括:确定第一指令的运算操作,并对所述第一指令和第一指令的操作数进行与所述第一指令的运算操作对应的第一运算预处理和第一运算;确定第二指令的运算操作,并对所述第二指令和第二指令的操作数进行与所述第二指令的运算操作对应的第二运算预处理和第二运算;其中,所述第一运算和第二运算为不同的运算,并且所述第一运算预处理和所述第一运算与所述第二运算预处理和所述第二运算并行进行。

【技术特征摘要】
1.一种指令执行方法,其特征在于,包括:确定第一指令的运算操作,并对所述第一指令和第一指令的操作数进行与所述第一指令的运算操作对应的第一运算预处理和第一运算;确定第二指令的运算操作,并对所述第二指令和第二指令的操作数进行与所述第二指令的运算操作对应的第二运算预处理和第二运算;其中,所述第一运算和第二运算为不同的运算,并且所述第一运算预处理和所述第一运算与所述第二运算预处理和所述第二运算并行进行。2.根据权利要求1所述的指令执行方法,其特征在于,还包括:从第一伪指令池获取第一伪指令,并对所述第一伪指令和第一伪指令的操作数进行第一运算预处理和第一运算,其中所述第一伪指令的运算操作与所述第一指令的运算操作相同;和/或从第二伪指令池获取第二伪指令,并对所述第二伪指令和第二伪指令的操作数进行第二运算预处理和第二运算,其中所述第二伪指令的运算操作与所述第二指令的运算操作相同。3.根据权利要求1所述的指令执行方法,其特征在于,在确定第一指令或第二指令的运算操作之前,所述方法还包括:判断第一指令或第二指令的执行所需的数据是否为另一指令执行完毕后的结果数据;如果所述判断的结果为是所述另一指令执行完毕后的结果数据且所述另一指令已执行完毕,则确定第一指令或第二指令的运算操作;如果所述判断的结果为不是所述另一指令执行完毕后的结果数据,则确定第一指令或第二指令的运算操作。4.根据权利要求3所述的指令执行方法,其特征在于,所述第一指令和/或第二指令为伪指令。5.根据权利要求1至4中任一项所述的指令执行方法,其特征在于,所述第一运算为非乘运算,所述第二运算为乘法运算。6.根据权利要求5所述的指令执行方法,其特征在于,所述预处理包括状态机、指令选择器和指令解析器对指令的处理。7.一种处理器,其特征在于,包括:分类模块,用于确定第一指令和第二指令的运算操作;第一运算预处理模块,用于对分类模块确定的所述第一指令和该第一指令的操作数进行第一运算预处理;第一运算模块,用于对分类模块确定的所述第一指令和该第一指令的操作数进行第一运...

【专利技术属性】
技术研发人员:沈卫杰吕达夫
申请(专利权)人:安谋科技中国有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1