防旁信道分析的架构制造技术

技术编号:16330766 阅读:68 留言:0更新日期:2017-09-29 22:00
一种用于实施密码过程的分布式技术对有效和不相关数据两者并行执行运算,以防止基于加密密钥内容来辨别所述运算。控制实体将有效数据切换到或使其指向负责例如求平方或相乘等运算的适当CPU。还将不相关数据切换到或使其指向与对所述有效数据进行运算的所述CPU并行地执行运算的适当CPU。所述分布式技术有助于混淆来自观察的旁信道分析现象,使得密码运算无法容易地连系到所述加密密钥的所述内容。

【技术实现步骤摘要】
【国外来华专利技术】防旁信道分析的架构
技术介绍
旁信道分析(SCA)是一种可用来观察密码过程(例如公钥/私钥加密或解密过程)的若干部分的技术。通过观察在硬件中实施的密码过程的运算特性(例如运算时序、电力消耗或电磁签名)来进行SCA,以确定所述密码过程的参数。可监视进行密码过程的处理器,来检测例如与密码过程中所涉及的运算有关的电磁脉冲。SCA攻击密码过程分析,例如来自进行密码过程的处理器的电磁脉冲,以推导加密密钥的内容。具有SCA攻击的加密密钥的确定可使得加密不安全。通常使用公钥/私钥对加密或解密、RSA运算和ECC运算,对经由网络的通信实施两个不同的密码过程。RSA过程(RSA表示基础算法的创建者罗纳德·里韦斯特(RonRivest)、阿迪·沙米尔(AdiShamir)和伦纳德·阿德尔曼(LeonardAdleman)的缩写)使用表示计算中所使用的指数的加密密钥来对符号块进行加密或解密。为了执行效率,进行运算来实施RSA过程的处理器通常经配置以对将运算数求平方的运算与使运算数相乘的运算之间的运算进行分组。求平方运算和相乘运算由执行RSA过程的处理器以不同方式处理。通常,求平方可在处理器内比相乘更高效地进行,且可使用SCA来观察运算中的差异。对RSA过程的SCA攻击通常力图确定何时进行求平方或相乘运算中的任一者,且接着使那些运算与密码过程相关。在RSA过程中进行的求平方或相乘运算的选择对形成加密密钥的位敏感。可监视进行RSA过程的处理器来寻找若干参数,例如信号时序、电力消耗或电磁签名,来检测求平方或相乘运算,并推导导致所述运算进行的加密密钥的位。举例来说,参看图1,可通过监视处理器来检测从进行RSA密码过程的处理器观察到电磁辐射的迹线100。如果检测到,那么可将以S或M标注的迹线的若干部分解释为指示处理器分别执行了求平方(S)运算或相乘(M)运算。类似于RSA过程,ECC(椭圆曲线密码术)过程使用公钥密码术。然而,实施ECC过程的处理器通常执行若干加倍和相加运算来进行加密或解密。加倍运算在所述处理器上通常比相加运算更高效地执行,且使用SCA可观察所述差异。EEC过程执行中的加倍或相加运算的选择常常对加密密钥的位敏感。ECC过程上的SCA攻击通常力图确定何时进行加倍或相加运算中的任一者,且接着使那些运算与ECC过程以及形成加密密钥的位有关。可监视进行ECC过程的处理器来寻找若干参数,例如信号时序、电力消耗或电磁签名,来检测加倍或相加运算,并推导与正进行的运算有关的加密密钥的位。
技术实现思路
实例实施方案提供一种用于实施密码过程的设备,其包括:第一运算模块,其经配置以执行第一运算或第二运算中的一者,所述第一运算不同于所述第二运算;第二运算模块,其经配置以执行所述第一运算或所述第二运算中的另一者;以及控制模块,其以通信方式耦合到所述第一操作模块和所述第二运算模块,且经配置以将第一信息提供到第一操作模块或第二运算模块中的一者,使得在密码过程期间,所述第一操作或所述第二运算中的至少一者至少执行一次,以产生不相关数据。另一实例实施方案提供一种用于实施密码过程的方法,所述方法包括:确定第一运算或第二运算中的选定一者来接收第一信息,以执行所述第一运算或所述第二运算中的相应一者,使得在密码过程期间,所述第一运算或所述第二运算中的至少一者至少执行一次以产生不相关数据;使用所述第一信息来执行第一运算或第二运算中的选定一者;以及与第一运算或第二运算中的选定一者同时执行第一运算或第二运算中的另一者。另一实例实施方案提供一种包括指令的非暂时性机器可读媒体,所述指令用于实施密码过程,且其经配置以致使机器:确定第一运算或第二运算中的选定一者来接收第一信息,以执行所述第一运算或所述第二运算中的相应一个,使得在所述密码过程期间,第一运算或第二运算中的至少一者至少执行一次,以产生不相关数据;使用所述第一信息来执行第一运算或第二运算中的选定一者;且与第一运算或第二运算中的选定一者同时执行第一运算或第二运算中的另一者。另一实例实施方案提供一种用于实施密码过程的设备,所述方法包括:用于确定第一运算或第二运算中的选定一者来接收第一信息,以执行所述第一运算或所述第二运算中的相应一者,使得在密码过程期间,所述第一运算或所述第二运算中的至少一者至少执行一次以产生不相关数据的装置;用于使用所述第一信息来执行第一运算或第二运算中的选定一者的装置;以及用于与第一运算或第二运算中的选定一者同时执行第一运算或第二运算中的另一者的装置。附图说明图1是旁信道分析期间的处理器活动的迹线;图2是计算机系统的框图;图3是说明用于防旁信道分析的实例过程的流的过程流程图;图4是用于防旁信道分析的实例过程的流程图;图5是用于防旁信道分析的另一实例过程的流程图;图6是用于防旁信道分析的另一实例过程的流程图;图7是用于防旁信道分析的另一实例过程的流程图;图8是图2中所示的计算机系统的功能框图;以及图9是用于防旁信道分析的另一实例过程的流程图。具体实施方式呈现用于实施密码过程的分布式技术。此类技术中的一或多者的一些实施方案包含对有效数据和不相关数据两者并行执行运算,以帮助防止基于加密密钥内容来辨别所述运算。有效数据是指输入到密码过程中,且根据用于实施密码过程来操纵(例如经加密/解密)以产生所要的、预期或有效结果的算法的数据。不相关数据是指输入到产生不相关的中间结果或并不促进产生最终所要、预期或有效结果的运算中并由所述运算产生的数据。有效数据可用以形成所述不相关数据,例如通过使用产生并不促成获得最终有效结果的结果的运算中的有效数据。还可使用任意数据或任意数据源来形成不相关数据,或可与非任意或计划的数据一起形成。可提供控制实体,其准许至少两个中央处理单元(CPU)中的每一者在密码过程期间的不同时间存取有效数据或不相关数据,取决于加密密钥内容。一个CPU可存取有效或不相关数据,而另一CPU可在密码过程的给定重复循环中存取有效或不相关数据。举例来说,CPU在至少一些重复中并行操作,一个CPU具有有效数据,且一个CPU具有不相关数据。由CPU中的每一者执行的运算可相同或不同,且可或可不在密码过程的执行期间变化。CPU所执行的运算可包含求平方和相乘,或加倍和相加,且可基于正执行的密码过程的类型来选择。举例来说,一个CPU可在密码过程的一部分或全部期间执行求平方运算,而另一CPU可执行同时相乘运算。同时意味着所述运算在密码过程的相同循环或重复中执行,不管所述运算是否具有时间重叠。执行求平方运算和相乘运算的时间可至少部分地重叠,例如至少部分地并行执行。所述CPU中的每一者可在密码过程的执行期间执行多于一个类型的运算。举例来说,可控制第一CPU来在密码过程的一些重复期间执行求平方运算,且控制第一CPU来在其它重复期间执行相乘运算。对哪一CPU在密码过程期间的给定时间执行哪一运算的控制的实施方案是内部过程。所述控制经配置以选择哪一CPU执行哪一运算,且确保根据适当的运算(例如提供到执行适当运算的适当CPU)来处理有效数据,以实施用于所述密码过程的算法。所述控制优选关于SCA现象比相乘或求平方运算小若干数量级。因此,SCA可示出进行相同或不同类型的运算的不同CPU,但不一定示出哪一CPU正对有效数据进行操作。通过此技术本文档来自技高网
...
防旁信道分析的架构

【技术保护点】
一种用于实施密码过程的设备,其包括:第一运算模块,其经配置以执行第一运算或第二运算中的一者,所述第一运算不同于所述第二运算;第二运算模块,其经配置以执行所述第一运算或所述第二运算中的另一者;以及控制模块,其以通信方式耦合到所述第一运算模块和所述第二运算模块,且经配置以将第一信息提供到所述第一运算模块或所述第二运算模块中的一者,使得在所述密码过程期间,所述第一运算或所述第二运算中的至少一者至少执行一次,以产生不相关数据。

【技术特征摘要】
【国外来华专利技术】2015.03.06 US 14/641,1191.一种用于实施密码过程的设备,其包括:第一运算模块,其经配置以执行第一运算或第二运算中的一者,所述第一运算不同于所述第二运算;第二运算模块,其经配置以执行所述第一运算或所述第二运算中的另一者;以及控制模块,其以通信方式耦合到所述第一运算模块和所述第二运算模块,且经配置以将第一信息提供到所述第一运算模块或所述第二运算模块中的一者,使得在所述密码过程期间,所述第一运算或所述第二运算中的至少一者至少执行一次,以产生不相关数据。2.根据权利要求1所述的设备,其中所述控制模块进一步经配置以基于加密密钥的至少一部分,将所述信息提供到所述第一运算模块或所述第二运算模块。3.根据权利要求1所述的设备,其中所述控制模块进一步经配置以在所述第一运算模块和所述第二运算模块上同步发起所述密码过程。4.根据权利要求1所述的设备,其中所述第一运算模块和所述第二运算模块经配置以使得每当所述第一运算模块执行所述第一运算或所述第二运算中的一者时,所述第二运算模块执行所述第一运算或所述第二运算中的另一者。5.根据权利要求4所述的设备,其中所述控制模块经配置以:针对所述第一运算和所述第二运算的每一执行,将第二信息提供到所述第一运算模块或所述第二运算模块中的另一者,所述第二信息包括有效数据或不相关数据。6.根据权利要求5所述的设备,其中所述第一运算模块和所述第二运算模块经配置以同时执行所述第一运算和所述第二运算。7.根据权利要求1所述的设备,其中所述第一运算或所述第二运算中的一者是求平方,且另一者是相乘,或者所述第一运算或所述第二运算中的一者是加倍,且另一者是相加。8.根据权利要求1所述的设备,其中所述第一运算和所述第二运算对于所述密码过程的至少一些重复中的每一者执行两次。9.一种用于实施密码过程的方法,所述方法包括:确定第一运算或第二运算中的选定一者来接收第一信息以执行所述第一运算或所述第二运算中的相应一者,使得在所述密码过程期间,所述第一运算或所述第二运算中的至少一者至少执行一次,以产生不相关数据;使用所述第一信息来执行所述第一运算或所述第二运算中的所述选定一者;以及与所述第一运算或所述第二运算中的所述选定一者同时执行所述第一运算或所述第二运算中的另一者。10.根据权利要求9所述的方法,其进一步包括基于加密密钥的至少一部分来确定所述第一运算或所述第二运算中的所述选定一者,以接收所述第一信息。11.根据权利要求9所述的方法,其进一步包括同步执行所述第一运算和所述第二运算,使得所述第一运算和所述第二运算中的每一者占用大约相同时间间隔。12.根据权利要求9所述的方法,其进一步包括将所述第一信息存储在可由所述第一运算和所述第二运算存取的存储器中。13.根据权利要求9所述的方法,其进一步包括当执行所述第一运算或所述第二运算中的所述选定一者时,在所述密码过程的相同重复中执行所述第一运算或所述第二运算中的所述另一者。14.根据权利要求9所述的方法,其中所述第一信息包括有效数据或不相关数据。15.根据权利要求9所述的方法,其进一步包括:使用执行所述第一运算或所述第二运算中的所述另一者的第一结果来执行所述第一运算或所述第二运算中的所述选定一者;以及使用执行所述第一运算或所述第二运算中的所述选定一者的第二结果,来执行所述第一运算或所述第二运算中的所述另一者。16.根据权利要求9所述的方法,其中所述第一运算或所述第二运算中的一者是求平方,且另一者是相乘,或者所述第一运算或所述第二运算中的一...

【专利技术属性】
技术研发人员:奥利维尔·让·伯努瓦罗萨里奥·卡马罗塔
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国,US

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

1