当前位置: 首页 > 专利查询>埃沙尔公司专利>正文

测试电路对侧信道分析的抵抗力的方法技术

技术编号:16101710 阅读:18 留言:0更新日期:2017-08-29 22:28
本发明专利技术涉及一种测试电路对侧信道分析的抵抗力的方法,所述方法包括以下步骤:获取多个值集(Ci),每个值集包括物理量或逻辑信号的值,当受测试电路(CT)执行被应用于相同机密数据(SD)的不同密码运算(OPRK)时,所述值集与所述电路的活动关联;对于每个值集,对该集合中的值的出现次数(HT)计数;对于每个运算和所述机密数据的一部分的每个可能值(g),计算该运算的部分结果(VL);计算出现次数的总和(CH),每个总和是通过将对应于所述运算的出现次数相加而获得的,当被应用于所述机密数据的所述部分的相同可能值时,所述运算提供具有相同值的部分运算结果;以及分析出现次数的总和以确定所述机密数据的所述部分。

【技术实现步骤摘要】
测试电路对侧信道分析的抵抗力的方法
本专利技术涉及一种用于测试电路的方法,具体涉及被设计为处理机密数据的电路,特别涉及用于通过使用密钥的加密算法来变换消息的电路。本专利技术特别涉及实现密码算法的设备,诸如安全设备(智能卡集成电路、安全元件、安全存储卡)、移动设备(移动电话、智能手机、物联网)、家用和汽车设备、以及集成到计算机和其他电子和IT设备(USB驱动器、电视解码器、游戏控制台等)的母板上的硬件加密组件等。本专利技术还涉及包括加密运算的软件,该软件用于在安全或不安全的环境中执行。本专利技术具体涉及实现诸如DES(数据加密标准)或三重DES、AES(高级加密标准)、RSA(Rivest、Shamir和Adleman)、DSA(数字签名算法)或ECDSA(椭圆曲线数字签名算法)等加密算法之类的密码算法的电路。本专利技术还涉及实现诸如HMAC(密钥散列消息认证码)之类的散列函数的电路。
技术介绍
实现密码算法的微电路配备有中央处理单元(CPU)。一些微电路配备有专用于密码计算的电路,例如加密协处理器。这些微电路包括根据所执行的运算以不同的方式切换的数千个逻辑门。这些开关在电流消耗上产生短暂变化,例如可以被测量的几纳秒。具体而言,CMOS型集成电路包括在切换时(即,当逻辑节点变为1或0时)才消耗电流的逻辑门。因此,电流消耗取决于中央单元处理的数据及其各种外围设备(存储器)上的数据、在数据或地址总线上流动的数据、密码协处理器等。此外,具体使用加密或模糊技术(诸如“白盒密码术”技术)产生的某些软件程序可以以使得难以通过逆向工程确定的方式来集成机密数据。某些软件程序还可以通过安全通信信道从外部接收机密数据。当观察到这些微电路的电流消耗、或它们的磁或电磁辐射、或可以在执行加密算法的同时观察到的其它任何信息时,这些微电路可能会受到所谓的侧信道分析攻击。此类攻击旨在发现它们使用的机密数据,特别是它们的加密密钥。频繁的侧信道攻击实施诸如SPA(“单功耗分析”)、DPA(“差分功耗分析”)、CPA(“相关功耗分析”)或EMA(“电磁分析”)之类的统计分析方法。SPA分析(参考文献[1])通常只需要获取单个电流消耗踪迹。其目的是通过观察对应于密码计算的消耗踪迹的一部分来获得关于集成电路的活动的信息,因为当前踪迹根据所执行的运算和所处理的数据而变化。软件在被电路执行期间也可能经历这种侧信道攻击。DPA(参考文献[2])和CPA分析使得能够通过获取大量数据或测量踪迹并通过对这些踪迹进行统计分析以查找搜索的信息来找到加密算法的密钥。它们基于这样的前提:即,当寄存器中或总线上的位从0变为1时,CMOS型集成电路的消耗发生变化,以及当位保持等于0、保持等于1或从1变为0(MOS晶体管的寄生电容的放电)时,其不发生变化。或者,可以认为当位从0变为1或从1变为0时,CMOS型集成电路的消耗发生变化,并且当位保持等于0或保持等于1时,CMOS型集成电路的消耗不变。该第二假设使得能够使用常规的“汉明距离”或“汉明权重”函数来开发不需要已知集成电路的结构可应用的消耗模型。DPA分析涉及通过对大量消耗踪迹的统计处理来放大该消耗差异,目的在于突出根据公式假设区分的两个消耗踪迹族之间的测量差异。CPA分析(参考文献[3])基于线性电流消耗模型,并且涉及计算首先所测量的形成捕获的消耗踪迹的消耗点与其次根据线性消耗模型和有关由微电路处理的待发现的变量以及有关加密密钥的值的假设而计算的推定消耗值之间的相关系数。电磁分析(EMA)基于如下原理:即,微电路可以以近场或远场电磁辐射的形式泄漏信息。假设晶体管在其状态改变时发射电磁信号,则可以通过诸如SPA、DPA和CPA分析中的一种或其它分析,像电流消耗变化信号那样处理这些信号。此分析的一个应用实例由Jean-JacquesQuisquater(参考文献[4])做出。存在其它侧信道攻击,例如“模板攻击”(参考文献[5])和“交互信息分析”(MIA)(参考文献[6])。参考文献[7]公开了一种组合了侧信道技术和合理的强力尝试的攻击。所有上述攻击都基于所有被分析的踪迹的时间对准。换言之,在给定时间(例如从命令的执行被电路激活的时间)执行的所有测量必须对应于由算法处理的相同值。为了保护此类电路及其执行的密码算法免受这些侧信道攻击,通常提供应对措施。几种普遍的应对措施均旨在避免这种时间对准。为此,这些应对措施引入为计算电路定速的时钟频率的变化,或引入伪时钟周期或伪运算。另几种应对措施涉及使得要保护的算法适合独立于由电路处理的数据的实际值来呈现这些数据。这几种应对措施中的某些应对措施被称为“掩蔽型应对措施”-使用随机掩码(二进制数),在执行加密方法期间,这些随机掩码与另一要保护的数据(例如密钥和/或消息)组合在一起。此类应对措施是有效的,但是需要修改算法,因此,在由专用协处理器执行的情况下,需要专用于实现此应对措施的协处理器,或者在由微电路的中央处理单元或编程协处理器执行的情况下,需要更复杂的程序。通过多次执行实现的应对措施可以用不包括任何应对措施手段的常规协处理器来实现。其中仅涉及通过伪密钥或伪消息来多次执行加密方法。为此,提供了例如控制加密程序或协处理器的应对措施程序,该程序以随机的顺序,通过伪密钥多次执行加密方法,从而使得通过正确的密钥(即,真实的密钥)对加密方法的执行被“隐藏”在一组伪执行中。通过多次执行实现这种应对措施提供了以下优点:即,可以通过不包括任何特定的应对措施手段的常规协处理器来实现此应对措施。有时可以借助特定的专业知识以及多次尝试来恢复这种时间对准,特别是使用大量要被重新对准的踪迹或应用一些信号处理。尽管如此,仍存在以下情况:即,不能恢复这种时间对准,这样,即使在踪迹中存在机密数据泄漏,侧信道测试也会失败。为了检查旨在上市的安全集成电路提供的安全级别,在电路上市之前安排资格和/或认证测试,这些测试具体包括集成电路防侧信道分析的鲁棒性测试,目的是发现由集成电路处理的机密数据。还有一些测试可以评估软件程序对侧信道攻击的抵抗力。因此,期望提出一种用于测试电路或软件程序对侧信道分析的抵抗力的方法,其具体能够检测机密数据泄漏,而不需要对电流消耗踪迹或表示电路活动的其它任何物理或逻辑量的任何先前时间对准处理。还希望此方法能够独立于执行软件程序或应用的电路来测试软件程序或应用的鲁棒性。还可能期望将此测试方法集成到旨在检查电路或由给定电路执行的软件对侧信道分析的抵抗力以及它们在信息泄漏方面的严密性的工业资格和/或认证处理中。还可能期望提出在包括这种测试方法的资格和/或认证过程之后,使得集成电路或软件程序能够被认为能够在产品中使用的应对措施手段。
技术实现思路
某些实施例涉及一种测试方法,包括:获取多个值集,每个值集包括物理量或逻辑信号的值,当受测试电路执行被应用于待发现的相同数据的不同密码运算的运算集中的运算时,所述值集与所述电路的活动关联;对于每个值集,通过处理单元对由被应用于该值集中的值的第一满射函数变换的值的出现次数计数,以形成该值集的出现次数集;对于所述运算集中的每个运算以及待发现的数据的一部分的每个可能值,通过所述处理单元计算部分运算结果;通过所述处理单元计算累积出现次数集,每个累积出现次数集是通过将对应于所述运算本文档来自技高网
...
测试电路对侧信道分析的抵抗力的方法

【技术保护点】
一种测试方法,包括:获取多个值集,每个值集包括物理量或逻辑信号的值,当受测试电路执行被应用于待发现的相同数据的不同密码运算的运算集中的运算时,所述值集与所述电路的活动关联,对于每个值集,通过处理单元对由被应用于该值集中的值的第一满射函数变换的值的出现次数计数,以形成该值集的出现次数集,对于所述运算集中的每个运算以及待发现的数据的一部分的每个可能值,通过所述处理单元计算部分运算结果,通过所述处理单元计算累积出现次数集,每个累积出现次数集是通过将对应于所述运算集中的运算的出现次数集相加而获得的,当被应用于所述待发现的数据的所述部分的可能值的相同值或等价值时,所述运算提供具有应用第二满射函数所获得的相同变换值的部分运算结果,以及通过所述处理单元分析所述累积出现次数集以确定所述待发现的数据的所述部分,从而知道如果所述待发现的数据已经泄漏到所述值集中,则在与所述待发现的数据的所述部分的值对应的所述累积出现次数集中找到所述待发现的数据。

【技术特征摘要】
2016.02.22 FR 1651443;2016.02.22 FR 1651444;2016.01.一种测试方法,包括:获取多个值集,每个值集包括物理量或逻辑信号的值,当受测试电路执行被应用于待发现的相同数据的不同密码运算的运算集中的运算时,所述值集与所述电路的活动关联,对于每个值集,通过处理单元对由被应用于该值集中的值的第一满射函数变换的值的出现次数计数,以形成该值集的出现次数集,对于所述运算集中的每个运算以及待发现的数据的一部分的每个可能值,通过所述处理单元计算部分运算结果,通过所述处理单元计算累积出现次数集,每个累积出现次数集是通过将对应于所述运算集中的运算的出现次数集相加而获得的,当被应用于所述待发现的数据的所述部分的可能值的相同值或等价值时,所述运算提供具有应用第二满射函数所获得的相同变换值的部分运算结果,以及通过所述处理单元分析所述累积出现次数集以确定所述待发现的数据的所述部分,从而知道如果所述待发现的数据已经泄漏到所述值集中,则在与所述待发现的数据的所述部分的值对应的所述累积出现次数集中找到所述待发现的数据。2.根据权利要求1所述的方法,包括选择每个值集中的值,出现次数的计数是针对选定值而执行的。3.根据权利要求1或2所述的方法,包括:向所述电路发送多个不同的命令,每个命令触发由所述电路执行被应用于所述待发现的数据的所述运算集中的运算之一,以及在由所述电路执行所述运算集中的一个运算期间,由测量设备收集所述值集中的一个值集的值。4.根据权利要求1至3中任一项所述的方法,其中所述值集包括:所述电路的电流消耗的测量,和/或由所述电路发射的电磁辐射的测量,和/或所述电路周围存在的磁场的吸收的测量,和/或在所述电路中收集的逻辑信号或数字值。5.根据权利要求1至4中任一项所述的方法,其中所述第一和第二满射函数中的每一者是以下函数之一:恒等函数,这样的函数:其提供结果值,该结果值然后被简化为对应于汉明权重的值,这样的函数:其提供该函数被应用到的值的汉明权重,或这样的函数:其提供值与该函数被应用到的先前值之间的汉明距离。6.根据权利要求1至5中任一项所述的方法,包括如果分析步骤确定所述待发现的数据的所述部分,则拒绝所述电路或由所述电路执行的程序。7.根据权利要求1至6中任一项所述的方法,其中针对所述待发现的数据的先前确定的部分和所述待发现的数据的另一部分,执行计算所述待发现的数据的一部分的每个可能值的运算结果的步骤、计算所述累积出现次数集的步骤、以及分析所述累积出现次数集的步骤。8.根据权利要求1至7中任一项所述的方法,其中每个值集中的所述选定值包括:该值集的连续值,和/或该值集的非连续值,和/或该值集的局部极值,和/或该值集的全部值。9.根据权利要求1至8中任一项所述的方法,其中所述运算集中的所述运算包括将单个运算应用于所述待...

【专利技术属性】
技术研发人员:H·西博尔德德拉克鲁伊
申请(专利权)人:埃沙尔公司
类型:发明
国别省市:法国,FR

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

1