买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
摘要:本公开涉及数据处理。数据处理电路包括:一组两个或更多个计算单元,其用于执行相应的计算操作;指令解码器,其用于对连续的数据处理指令进行解码,并且对于给定的数据处理指令,控制所述计算单元中的一者或多者以执行执行所述给定的数据处理指令所需的那些计算操作;以及控制电路,其在执行所述给定的数据处理指令期间,响应于所述给定的数据处理指令,控制所述计算单元中的一个或多个其他计算单元以执行除了执行所述给定的数据处理指令所需的计算操作之外的另外的计算操作。
主权项:1.一种用于数据处理的电路,包括:两个或更多个计算单元的组,其用于执行相应的计算操作;指令解码器,其用于对连续的数据处理指令进行解码,并且对于给定的数据处理指令,控制所述计算单元中的一者或多者以执行运行所述给定的数据处理指令所需的那些计算操作;以及控制电路,其在执行所述给定的数据处理指令期间,响应于所述给定的数据处理指令,通过控制所述计算单元中的一个或多个其他计算单元以执行除了执行所述给定的数据处理指令所需的计算操作之外的另外的计算操作,并且从而将所述计算单元中的一个或多个其他计算单元的功耗特性叠加在所述数据处理电路的功耗特性上,来屏蔽在执行所述给定的数据处理指令期间的数据处理电路的功耗特性,并且其中,所述控制电路响应于对所述给定的数据处理指令的分类以访问配置数据,所述配置数据针对解码数据处理指令的一组可能分类中的每个分类定义了相应的一组一个或多个计算单元以执行所述另外的计算操作。
全文数据:数据处理技术领域本公开涉及数据处理领域。背景技术保持在处理期间的数据安全和机密,使得数据和对数据的处理从外部对未经授权的观察者是不可见的,这在处理敏感数据的系统中是公知的问题。例如,智能卡可以存储用于对用户不能访问的机密数据进行加密的加密密钥。已经发现,在系统运行期间使用诸如对系统进行的所谓的差分功率分析或DPA之类的技术可以提供能允许人们来确定关于安全数据例如存储在系统内的密码密钥的信息的数据。实验人员已通过DPA观察到某些数据处理操作有时包括它们的操作数或输出数据是可以与功耗中的特性变化相关联的。已经设计了各种技术来尝试抑制这种对系统安全性的攻击。在处理机密数据的系统中提供更高的安全性将是合乎需要的。发明内容在示例性布置中,提供了数据处理电路,包括:两个或更多个计算单元的组,其用于执行相应的计算操作;指令解码器,其用于对连续的数据处理指令进行解码,并且对于给定的数据处理指令,控制所述计算单元中的一者或多者以执行执行所述给定的数据处理指令所需的那些计算操作;以及控制电路,其在执行所述给定的数据处理指令期间,响应于所述给定的数据处理指令,控制所述计算单元中的一个或多个其他计算单元以执行除了执行所述给定的数据处理指令所需的计算操作之外的另外的计算操作。在另一示例性布置中,提供了数据处理电路,包括:用于执行相应的计算操作的两个或更多个计算装置的组;用于对连续的数据处理指令进行解码,并且对于给定的数据处理指令,用于控制所述计算装置中的一者或多者以执行执行所述给定的数据处理指令所需的那些计算操作的装置;以及控制装置,其在执行所述给定的数据处理指令期间,响应于所述给定的数据处理指令,控制所述计算装置中的一个或多个其他计算装置以执行除了执行所述给定的数据处理指令所需的计算操作之外的另外的计算操作。在另一示例性布置中,提供了一种操作数据处理电路的方法,所述数据处理电路具有用于执行相应的计算操作的两个或更多个计算单元的组,所述方法包括:对连续的数据处理指令进行解码;对于给定的数据处理指令,控制所述计算单元中的一者或多者以执行执行所述给定的数据处理指令所需的那些计算操作;以及在执行所述给定的数据处理指令期间,响应于所述给定的数据处理指令,控制所述计算单元中的一个或多个其他计算单元以执行除了执行所述给定的数据处理指令所需的计算操作之外的另外的计算操作。本技术的另外的相应方面和特征由所附权利要求来限定。附图说明将仅通过示例的方式,参考如附图中所示的本技术的实施例,来进一步描述本技术,在附图中:图1示意性地示出了数据处理电路;图2提供了配置数据的示意性示例;图3是示意性时序图;图4示意性地示出了功率检测器;以及图5和图6是示出相应方法的示意性流程图。具体实施方式在参考附图讨论实施例之前,提供对实施例的以下描述。示例性实施例提供了数据处理电路,包括:两个或更多个计算单元的组,其用于执行相应的计算操作;指令解码器,其用于对连续的数据处理指令进行解码,并且对于给定的数据处理指令,控制计算单元中的一者或多者以执行执行给定的数据处理指令所需的那些计算操作;以及控制电路,其在执行给定的数据处理指令期间,响应于给定的数据处理指令,控制计算单元中的一个或多个其他计算单元以执行除了执行给定的数据处理指令所需的计算操作之外的另外的计算操作。本公开的实施例通过提供除执行当前执行的指令所需的一个或多个计算单元之外的一个或多个计算单元的并发操作,解决了上述数据处理操作可能易受DPA损害的问题。例如,另外的计算操作可以是不需要执行给定的数据处理指令的操作。这可以通过使用一个或多个其他计算单元并发地执行不需要的或“伪dummy”计算操作,来屏蔽实际执行的计算操作的DPA特性。在一些示例中,所述电路包括:两个或更多个数据处理寄存器的组,其用于向计算单元提供输入以及从计算单元接收输出以执行数据处理指令;以及一个或多个另外的数据处理寄存器;所述控制电路被配置为:选择性地控制所述计算单元中的一个或多个其他计算单元以在所述一个或多个另外的数据处理寄存器中存储另外的计算操作的结果。在示例性布置中,计算单元的操作可能导致输出或结果数据的生成和数据存储操作。在示例性实施例中,这可以通过使用另外的数据处理寄存器来处理,该寄存器被配置为不提供用于“真实”数据处理操作的输入,而是允许执行“伪”数据读写操作,以便模仿真实数据读写操作的功耗特性。计算单元可以具有相关联的执行周期,例如被表示为多个时钟周期。一个或多个其他计算单元可以具有比被屏蔽的实际操作更长或更短的执行周期。如果一个或多个其他计算单元具有更长的执行周期,则当要屏蔽的操作完成时,可以终止它们的操作。如果一个或多个其他计算单元具有更短的执行周期,则它们的操作可以被延长或者来自不同的计算单元的潜在的多个伪操作可按顺序被执行,从而占据实际计算单元的执行周期。因此,在示例性布置中,控制电路被配置为控制计算单元中的一个或多个其他计算单元以执行另外的计算操作,直到完成执行给定的数据处理指令。在一些示例中,控制电路响应于对给定的数据处理指令的分类而访问配置数据,该配置数据针对解码数据处理指令的一组可能分类中的每个分类定义了相应的一组一个或多个计算单元以执行另外的计算操作。指令解码器本身可以响应于对给定的数据处理指令进行解码而为给定的数据处理指令生成分类数据。例如,配置数据可以表示用于执行数据处理指令的计算单元和用于屏蔽其功率特征的相关的一个或多个其他计算单元的排列的矩阵,例如提供在分类数据的每个可能实例与计算单元中的相应的一组一个或多个其他计算单元之间的映射,以执行另外的计算操作。映射可以例如响应于由检测器对某种操作的功率特征的检测而变化,以便更好地屏蔽该操作例如通过更改或补充用于该操作的另外的多个计算单元。或者,用户可以通过程序控制来改变映射。因此,在一些示例中,电路包括检测器以检测数据处理电路的功耗;其中控制电路被配置为响应于所检测到的功耗来改变配置数据。在一些示例中,可执行一个或多个数据处理指令以改变配置数据。便利地,作为指令解码器的操作的一部分,指令解码器可以生成要执行的当前指令的分类。在这样的示例中,指令解码器被配置为响应于对给定的数据处理指令进行解码来为给定的数据处理指令生成分类数据。配置数据可以便利地提供分类数据的每个可能实例与计算单元中的相应的一组一个或多个其他计算单元之间的映射,以执行另外的计算操作。在示例性布置中,计算单元可以包括以下各项中的一项或多项:加法单元、乘法单元、除法单元、和逻辑组合单元。在示例性布置中,计算单元可以包括地址生成单元,其中另外的计算操作包括以下各项操作中的一者或两者:到存储器的预留区域写入操作;和从存储器读取操作。另一示例性实施例提供数据处理电路,包括:用于执行相应的计算操作的两个或更多个计算装置的组;用于对连续的数据处理指令进行解码,并且对于给定的数据处理指令,用于控制计算装置中的一者或多者以执行执行给定的数据处理指令所需的那些计算操作的装置;以及控制装置,该控制装置在执行给定的数据处理指令期间,响应于给定的数据处理指令,控制计算装置中的一个或多个其他计算装置以执行除了执行给定的数据处理指令所需的计算操作之外的另外的计算操作。另一示例性实施例提供了一种操作数据处理电路的方法,该数据处理电路具有用于执行相应的计算操作的两个或更多个计算单元的组,该方法包括:对连续的数据处理指令进行解码;对于给定的数据处理指令,控制计算单元中的一者或多者以执行执行给定的数据处理指令所需的那些计算操作;以及在执行给定的数据处理指令期间,响应于给定的数据处理指令,控制计算单元中的一个或多个其他计算单元以执行除了执行所述给定的数据处理指令所需的计算操作之外的另外的计算操作。图1示意性地示出了数据处理电路100,其包括两个或更多个计算单元的组形成算术逻辑单元或ALU110,以执行相应的计算操作。该示例中的计算单元包括:逻辑组合单元,例如ANDOR与或单元112、加法单元ADD114、乘法单元MUL116和除法单元DIV118。还可以提供其他计算单元。这些一起表示被称为ALU110的组的示例。在操作中,每个计算单元在来自指令解码器130的控制信号120的控制下操作,并且执行执行由指令解码器130解码的数据处理指令所需的计算操作。控制信号可以定义所需操作的特定性质、输入和输出例如寄存器标识符以及任何其他参数。在执行计算操作时,计算单元通常从一组处理寄存器140接收输入数据135,并生成将被写回处理寄存器140的输出数据137。指令解码器130从存储器系统150接收要解码的指令,存储器系统150可能包括通过由地址生成单元155生成的地址访问的主存储器以及可选地包括一个或多个级别的高速缓冲存储器。提取逻辑160使用这些地址并且从存储器系统150提取指令以用于由指令解码器进行解码。因此,总之,指令解码器被布置为对连续的数据处理指令进行解码,并且对于给定的数据处理指令,控制计算单元110中的一者或多者以执行执行给定的数据处理指令所需的那些计算操作。在执行给定的数据处理指令期间,控制电路170还响应于给定的数据处理指令,并且控制计算单元110中的一个或多个其他计算单元以执行除了执行给定的数据处理指令所需的计算操作之外的另外的计算操作。执行这种另外的计算操作的一个原因在于至少部分地屏蔽数据处理电路的功耗特性。在安全操作例如加密操作等的背景下,对外部观察者隐藏秘密数据项或秘密操作可能是重要的。秘密可以是一种算法,但在许多实例中,它是数据项,例如SSH密钥、私有PGP密钥等。外部观察者所使用的技术例如差分功率分析DPA在某些情况下可以提供对数据处理电路的瞬时功耗的检测与被使用的算法和由数据处理电路操作的数据项中的一者和两者之间的相关性。在本公开中,注意到计算单元110可以趋向于具有特有的功耗特征,例如指示操作的周期长度的特征和或取决于由操作执行的数据值的特征。在执行给定的数据处理指令期间,为了将这样的特征与DPA攻击屏蔽开,控制电路170控制其他计算单元中的一者或多者,以执行除了执行给定的数据处理指令所需的计算操作之外的另外的计算操作。例如,另外计算操作可以是执行给定的数据处理指令实际上不需要的所谓的伪操作。以这种方式,可以通过将计算单元中的另一个或多个计算单元的功耗特性叠加来屏蔽在执行特定数据处理指令期间的数据处理电路的功耗特性。控制电路可以对当前的给定的数据处理指令的分类进行响应。例如,分类172可以由指令解码器130提供。分类可以指定,例如,为了执行当前的给定的数据处理指令,将激活计算单元110中的哪一个或多个。控制电路170可以访问配置数据174,该配置数据174针对解码数据处理指令的一组可能的分类中的每一个分类,定义相应的一组一个或多个其他计算单元以执行另外的计算操作。下面将参考图2描述配置数据的示例。如上所述,该电路包括一组两个或多个数据处理寄存器140,以向计算单元提供输入以及从计算单元接收输出,以用于执行数据处理指令。然而,为了协助这里讨论的功耗屏蔽操作,提供了一个或多个另外的“伪”数据处理寄存器142。一个或多个另外的数据处理寄存器的原因是,可以在上面讨论的另外的伪计算操作的背景下发起的计算单元110的至少一些操作可以导致输出数据值的生成。对该输出数据值的存储将构成计算单元的正常功耗特性的一部分,尽管这样,在伪另外的计算操作的情况下,通过执行这样的存储操作而不对任何“正常”数据处理寄存器140产生破坏,这种方式却是适当的。向伪操作提供的输入数据可以是来自正常寄存器寄存器140中的一者的,因为伪操作的执行将不会破坏寄存器140所保存的数据。但是,当由控制电路170发起伪另外的计算操作并且需要用于存储其输出的目的地时,控制电路可以选择性地控制计算单元中的一个或多个其他计算单元以将另外的计算操作的结果存储在一个或多个另外的伪数据处理寄存器142中。如上所述,计算单元的示例包括加法单元114、乘法单元116、除法单元118和逻辑组合单元112。计算单元的另外的示例是加载存储单元LSU180,除了由提取单元160控制的那些之外,其还控制往返于存储器系统150的读和或写访问。在本操作的背景下,一个或多个另外的计算操作可以包括到预留的存储器区域的写操作以便不损坏存储在存储器中的其他“有用”数据和读操作其可以来自于存储器空间中的任何地方中的一者或两者。如上所述,寻址由地址生成单元AGU155处理。在本示例中,AGU155与ALU110分开的事实允许独立于ALU110中的计算单元的操作而由AGU有效地从ALU的屏蔽操作的角度来看产生功耗。图2是示出由控制电路访问的配置数据174的示意性示例。如上所述,这针对解码数据处理指令的一组可能的分类中的每个分类例如定义在数据处理指令的正常执行中所涉及的示例性计算操作的分类200,定义相应的一组一个或多个计算单元210,以执行另外的计算操作。将看出的是,图2的表的主对角线具有空条目,因为如果当前的数据处理指令被表征为需要例如使用加法器单元114,那么加法器单元因此不能被分类为用于执行伪或另外的计算操作的另外的计算单元。然而,计算单元中的执行当前数据处理执行所不需要的其他计算单元可以被分类为另外的计算单元。在图2的示例中,勾号指示在当前的背景下使用计算单元作为另外的计算单元。因此,例如,在由逻辑组合112执行数据处理指令期间,另外的计算单元可以是执行读写操作的乘法单元116或LSU180。因此,响应于从指令解码器130接收到分类信息172,控制电路170查阅配置数据174并生成控制信号176,以控制计算单元的操作从而执行伪计算操作。下面将讨论用于建立图2的配置数据的技术。图3是示出上面讨论的操作的时序方面的示意性时序图。如前所述,各种计算单元的正常操作可以花费不同的时间长度,例如以时钟信号的周期数为单位来测量。图3的顶线示意性地示出了加法单元114的正常操作可以纯粹作为示意性示例花费四个时钟周期,并且第二线示意性地示出了除法单元118的正常操作可以再次纯粹示意性地花费七个时钟周期。为了屏蔽由计算单元进行的计算操作的功率特性,控制电路170被配置为控制其他计算单元以执行另外的计算操作,直到完成执行给定的当前的数据处理构建。因此,例如,如果图2的配置数据指定在由加法器单元114执行加法操作期间,另外的伪计算操作应该由除法单元118来执行,则这种操作在本实施例中仅维持加法操作处理的持续时间300。在这种背景下,除法单元118的另外的或伪操作并未完成。图3的最低线给出了一个示例,该示例通过加法单元114的另外的伪计算操作来屏蔽通常需要七个时钟周期的除法单元的操作。这里,加法操作的正常持续时间是四个时钟周期,但是为了掩盖除法单元118的整个操作,必须屏蔽七个时钟周期。为了实现这一点,控制电路170可以控制加法单元114以执行持续四个时钟周期的第一操作310,并且然后控制加法单元或者实际上另一个单元以执行持续三个时钟周期的后续操作320。以这种方式,在示例性实施例中,控制电路被配置为控制计算单元中的一个或多个其他计算单元以执行另外的计算操作,直到完成执行给定的数据处理指令。现在将参考图4和图5讨论用于建立和或修改图2的配置数据的两种技术。在第一种技术中,可以以类似于将数据写入其他寄存器140的方式由一个或多个数据处理指令写入配置数据14,所述一个或多个数据处理指令可执行以改变配置数据。因此,配置数据在用户程序控制之下。例如,配置数据可以被设置为使得数据处理电路在特别敏感的操作期间执行屏蔽,但是可以被设置为在其他时间不提供屏蔽。在另一种可能的布置中,图4示意性地示出了上面讨论的数据处理电路的表示400,该数据处理电路设置有相对于接地连接420的电源V410。检测器430被布置为检测数据处理电路的功耗。控制电路170从检测器430接收信息,并且被配置为响应于所检测到的功耗改变图2的配置数据。这种操作模式由图5的示意性流程图表示,其中在步骤500,检测器430检测电路400的主要功耗的一个或多个特性,并且在步骤510,将所述特性与期望的特性进行比较。例如,期望的特性可以是恒定的或“平坦”的功耗,或者期望的特性可以是检测器430不能与个体计算单元的已知特性相关联的特性。响应于比较结果,检测器430在步骤520向控制电路指示在适当的情况下修改配置数据或图2,以便更接近期望的功耗特性。然后,可以通过返回到步骤500来重复该过程。最后,图6是示出数据处理电路的操作方法的示意性流程图,所述数据处理电路具有用于执行相应的计算操作的两个或更多个计算单元的组,该方法包括:对连续的数据处理指令进行解码在步骤600;对于给定的数据处理指令,控制在步骤610计算单元中的一者或多者以执行执行给定的数据处理指令所需的那些计算操作;在执行给定的数据处理指令期间,响应于给定的数据处理指令,控制在步骤620计算单元中的一个或多个其他计算单元以执行除了执行给定的数据处理指令所需的计算操作之外的另外的计算操作。在本申请中,术语“被配置为……”用于表示装置的元件具有能够执行所定义的操作的配置。在该背景下,“配置”意指硬件或软件的互连的布置或方式。例如,装置可以具有提供所定义的操作的专用硬件,或者处理器或其他处理设备例如,如上面讨论的处理元件可以被编程为执行该功能。“被配置为”并不意味着需要以任何方式改变装置元件以提供所定义的操作。尽管已经参考附图在本文中详细描述了本技术的说明性实施例,但是要理解的是,本技术不限于那些精确的实施例,并且在不脱离如所附权利要求定义的技术的范围和精神的情况下,各种变化、添加和修改可以由本领域技术人员在其中实现。例如,在不脱离本技术的范围的情况下,可以将从属权利要求的特征与独立权利要求的特征进行各种组合。
权利要求:1.一种数据处理电路,包括:两个或更多个计算单元的组,其用于执行相应的计算操作;指令解码器,其用于对连续的数据处理指令进行解码,并且对于给定的数据处理指令,控制所述计算单元中的一者或多者以执行执行所述给定的数据处理指令所需的那些计算操作;以及控制电路,其在执行所述给定的数据处理指令期间,响应于所述给定的数据处理指令,控制所述计算单元中的一个或多个其他计算单元以执行除了执行所述给定的数据处理指令所需的计算操作之外的另外的计算操作。2.根据权利要求1所述的电路,包括:两个或更多个数据处理寄存器的组,其用于向所述计算单元提供输入以及从所述计算单元接收输出,以用于执行数据处理指令;以及一个或多个另外的数据处理寄存器;所述控制电路被配置为:选择性地控制所述计算单元中的一个或多个其他计算单元以在所述一个或多个另外的数据处理寄存器中存储另外的计算操作的结果。3.根据权利要求1所述的电路,其中,所述控制电路被配置为控制所述计算单元中的一个或多个其他计算单元以执行所述另外的计算操作,直到完成执行所述给定的数据处理指令。4.根据权利要求1所述的电路,其中:所述控制电路响应于对所述给定的数据处理指令的分类以访问配置数据,所述配置数据针对解码数据处理指令的一组可能分类中的每个分类定义了相应的一组一个或多个计算单元以执行所述另外的计算操作。5.根据权利要求4所述的电路,包括:检测器,其用于检测所述数据处理电路的功耗;其中,所述控制电路被配置为响应于所检测到的功耗来改变所述配置数据。6.根据权利要求4所述的电路,其中,一个或多个数据处理指令能够执行以改变所述配置数据。7.根据权利要求4所述的电路,其中,所述指令解码器被配置为响应于对所述给定的数据处理指令进行解码来为所述给定的数据处理指令生成分类数据。8.根据权利要求7所述的电路,其中,所述配置数据提供了在所述分类数据的每个可能实例与所述计算单元中的相应的一组一个或多个其他计算单元之间的映射,以执行所述另外的计算操作。9.根据权利要求1所述的电路,其中,所述另外的计算操作是不需要执行所述给定的数据处理指令的操作。10.根据权利要求1所述的电路,其中,所述计算单元包括以下各项中的一项或多项:加法单元;乘法单元;除法单位;以及逻辑组合单元。11.根据权利要求1所述的电路,其中,所述计算单元包括地址生成单元,并且其中,所述另外的计算操作包括以下操作中的一者或两者:到存储器的预留区域写入操作;以及从存储器读取操作。12.一种数据处理电路,包括:用于执行相应的计算操作的两个或更多个计算装置的组;用于对连续的数据处理指令进行解码,并且对于给定的数据处理指令,用于控制所述计算装置中的一者或多者以执行运行所述给定的数据处理指令所需的那些计算操作的装置;以及控制装置,其在执行所述给定的数据处理指令期间,响应于所述给定的数据处理指令,控制所述计算装置中的一个或多个其他计算装置以执行除了执行所述给定的数据处理指令所需的计算操作之外的另外的计算操作。13.一种操作数据处理电路的方法,所述数据处理电路具有用于执行相应的计算操作的两个或更多个计算单元的组,所述方法包括:对连续的数据处理指令进行解码;对于给定的数据处理指令,控制所述计算单元中的一者或多者以执行运行所述给定的数据处理指令所需的那些计算操作;以及在执行所述给定的数据处理指令期间,响应于所述给定的数据处理指令,控制所述计算单元中的一个或多个其他计算单元以执行除了执行所述给定的数据处理指令所需的计算操作之外的另外的计算操作。
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。