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

免受侧信道分析的保护方法和设备技术

技术编号:16974103 阅读:42 留言:0更新日期:2018-01-07 09:15
本发明专利技术涉及一种防止侧信道分析的保护方法和设备。本发明专利技术涉及一种用于由电路执行用以将第一输入数据与第二输入数据相组合的运算的方法,所述方法包括:定义数据对,由此将第一输入集的每个数据与第二输入集的相应数据进行关联,所述第一和第二输入集中的数据通过对所述第一和第二输入数据以及对第一和第二掩码集中的所有第一和第二掩码参数应用异或(XOR)运算而获得;以及通过对所述数据对中的每一者应用所述运算来计算输出数据以获得输出集,所述第一和第二掩码集是这样的掩码集:使得相应第一和第二掩码参数构成的每个对通过XOR运算的组合产生第三掩码集,每个掩码集包括字列,所述字列包括的字的所有可能值的出现次数相同。

【技术实现步骤摘要】
免受侧信道分析的保护方法和设备
本专利技术涉及一种用于使电路或程序免受旨在发现由所述电路或程序处理的机密数据的值(特别是由加密或解密算法用于变换消息的私钥)的侧信道分析的方法和设备。本专利技术特别涉及实现诸如AES(高级加密标准)之类的密码算法的智能卡集成电路或集成到计算机和其它电子和IT设备(USB驱动器、电视解码器、游戏控制台等)的母板上的硬件加密组件。本专利技术还涉及实现这种算法的程序,该程序用于在安全或不安全的环境中执行。更一般地说,本专利技术涉及实现组合了需要隐藏的两个数据的运算的电路和软件。
技术介绍
实现密码算法的电路可以包括中央处理单元(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])在2001年做出。存在其它侧信道分析,例如“模板分析”(参考文献[5])和“交互信息分析”(MIA)(参考文献[6])。所有上述分析都基于所有被分析的踪迹的时间对准。换言之,在给定时间(例如从命令的执行被电路激活的时间)执行的所有测量都必须对应于由算法处理的相同数据。由申请人于2016年2月22日提交的专利申请N°FR1651443公开了一种用于在电路连续地对不同的输入数据执行运算时分析代表电路活动的踪迹的方法。此方法包括提取每个踪迹的一部分,并且通过对出现在这些踪迹的每个提取部分中的每个可能值的出现次数进行计数,根据每个提取的踪迹部分生成直方图。然后通过对每个输入数据和运算中涉及的密钥的一部分的每个可能值应用运算来计算运算的部分结果。然后,此方法针对密钥的每个可能的部分值,识别提供相同部分结果的所有输入数据。对于密钥的每个可能的部分值,然后将直方图中与识别的输入数据和密钥的部分值对应的出现次数进行相加。密钥的一部分可以通过对相加的出现次数进行统计分析来确定。统计分析假设如果与密钥相关的值已经在所提取的踪迹部分中泄露,则可以通过相加的出现次数突显它。可能期望提出一种使集成电路或软件程序免受这些侧信道分析中的一种或多种的保护。
技术实现思路
描述了一种用于由电路执行用以将第一输入数据与第二输入数据相组合的运算的方法。所述方法可以包括:定义数据对,由此将第一输入集的每个数据与第二输入集的相应数据进行关联,所述第一输入集包括第一输入数据,所述第一输入集中的数据通过对所述第一输入数据和对第一掩码集中的所有第一掩码参数应用异或XOR运算而获得,所述第一掩码集中的每个第一掩码参数包括至少一个第一字,所述第一掩码集中的所述第一字具有相同大小并且形成第一字子集,所述第一字子集包括来自所述第一掩码集的每个第一掩码参数的单个字并且包括的所述第一字的所有可能值的出现次数相同,所述第二输入集包括所述第二输入数据,所述第二输入集中的数据通过对所述第二输入数据和对第二掩码集中的所有第二掩码参数应用XOR运算而获得,所述第二掩码集中的每个第二掩码参数包括至少一个第二字,所述第二掩码集中的所述第二字具有相同大小并且形成第二字子集,所述第二字子集包括来自所述第二掩码集的每个第二掩码参数的单个字并且包括的所述第二字的所有可能值的出现次数相同;以及通过对所述数据对中的每一者应用所述运算来计算输出数据,所述运算的输出集包括对所述数据对中的一者应用所述运算而产生的所有输出数据,其中生成所述第二掩码集,以使得所述第一掩码集中的所述第一掩码参数中的每一者与所述第二掩码集中的对应第二掩码参数的借助XOR运算的组合产生包括第三掩码参数的第三掩码集,所述第三掩码集中的每个第三掩码参数包括至少一个第三字,所述第三掩码集中的所述第三字具有相同大小并且形成第三字子集,所述第三字子集包括来自所述第三掩码集的每个第三掩码参数的单个字并且包括的所述第三字的所有可能值的出现次数相同。根据一个实施例,所述运算是异或。根据一个实施例,所述第二输入集等于所述第一掩码集。根据一个实施例,所述第一和第二掩码集从第一对的第一和第二字置换来生成,每个字置换包括的字的所有可能值的出现次数相同,以使得所述第一置换中的每个字与所述第二置换的相应字的借助XOR运算的组合提供合成置换(resultantpermutation),所述合成置换包括字并且所述字的所有可能值的出现次数相同,所述第一和第二掩码集使用以下等式来生成:U1[l]=PM(u1[l]⊕UR),和V1[l]=PM(v1[l]⊕VR),或U1[l]=PM(u1[l])⊕UR,和V1[l]=PM(v1[l])⊕VR对于每个索引I,其中UR和VR是具有掩码参数U1[I]或V1[I]中的任一者的大小的随机字,u1和v本文档来自技高网
...
免受侧信道分析的保护方法和设备

【技术保护点】
一种用于由电路执行用以将第一输入数据与第二输入数据相组合的运算的方法,所述方法包括:定义数据对,由此将第一输入集的每个数据与第二输入集的相应数据进行关联,所述第一输入集包括第一输入数据,所述第一输入集中的数据通过对所述第一输入数据和对第一掩码集中的所有第一掩码参数应用异或XOR运算而获得,所述第一掩码集中的每个第一掩码参数包括至少一个第一字,所述第一掩码集中的所述第一字具有相同大小并且形成第一字子集,所述第一字子集包括来自所述第一掩码集的每个第一掩码参数的单个字并且包括的所述第一字的所有可能值的出现次数相同,所述第二输入集包括所述第二输入数据,所述第二输入集中的数据通过对所述第二输入数据和对第二掩码集中的所有第二掩码参数应用XOR运算而获得,所述第二掩码集中的每个第二掩码参数包括至少一个第二字,所述第二掩码集中的所述第二字具有相同大小并且形成第二字子集,所述第二字子集包括来自所述第二掩码集的每个第二掩码参数的单个字并且包括的所述第二字的所有可能值的出现次数相同;以及通过对所述数据对中的每一者应用所述运算来计算输出数据,所述运算的输出集包括对所述数据对中的一者应用所述运算而产生的所有输出数据,其中生成所述第二掩码集,以使得所述第一掩码集中的所述第一掩码参数中的每一者与所述第二掩码集中的对应第二掩码参数的借助XOR运算的组合产生包括第三掩码参数的第三掩码集,所述第三掩码集中的每个第三掩码参数包括至少一个第三字,所述第三掩码集中的所述第三字具有相同大小并且形成第三字子集,所述第三字子集包括来自所述第三掩码集的每个第三掩码参数的单个字并且包括的所述第三字的所有可能值的出现次数相同。...

【技术特征摘要】
2016.06.28 EP 16176716.5;2016.06.28 EP 16176717.3;1.一种用于由电路执行用以将第一输入数据与第二输入数据相组合的运算的方法,所述方法包括:定义数据对,由此将第一输入集的每个数据与第二输入集的相应数据进行关联,所述第一输入集包括第一输入数据,所述第一输入集中的数据通过对所述第一输入数据和对第一掩码集中的所有第一掩码参数应用异或XOR运算而获得,所述第一掩码集中的每个第一掩码参数包括至少一个第一字,所述第一掩码集中的所述第一字具有相同大小并且形成第一字子集,所述第一字子集包括来自所述第一掩码集的每个第一掩码参数的单个字并且包括的所述第一字的所有可能值的出现次数相同,所述第二输入集包括所述第二输入数据,所述第二输入集中的数据通过对所述第二输入数据和对第二掩码集中的所有第二掩码参数应用XOR运算而获得,所述第二掩码集中的每个第二掩码参数包括至少一个第二字,所述第二掩码集中的所述第二字具有相同大小并且形成第二字子集,所述第二字子集包括来自所述第二掩码集的每个第二掩码参数的单个字并且包括的所述第二字的所有可能值的出现次数相同;以及通过对所述数据对中的每一者应用所述运算来计算输出数据,所述运算的输出集包括对所述数据对中的一者应用所述运算而产生的所有输出数据,其中生成所述第二掩码集,以使得所述第一掩码集中的所述第一掩码参数中的每一者与所述第二掩码集中的对应第二掩码参数的借助XOR运算的组合产生包括第三掩码参数的第三掩码集,所述第三掩码集中的每个第三掩码参数包括至少一个第三字,所述第三掩码集中的所述第三字具有相同大小并且形成第三字子集,所述第三字子集包括来自所述第三掩码集的每个第三掩码参数的单个字并且包括的所述第三字的所有可能值的出现次数相同。2.根据权利要求1所述的方法,其中所述运算是异或。3.根据权利要求1或2所述的方法,其中所述第二输入集等于所述第一掩码集。4.根据权利要求1至3中的一项所述的方法,其中所述第一和第二掩码集从第一对的第一和第二字置换来生成,每个字置换包括的字的所有可能值的出现次数相同,以使得所述第一置换中的每个字与所述第二置换的相应字的借助XOR运算的组合提供合成置换,所述合成置换包括字并且所述字的所有可能值的出现次数相同,所述第一和第二掩码集使用以下等式来生成:U1[l]=PM(u1[l]⊕UR),和V1[l]=PM(v1[l]⊕VR),或U1[l]=PM(u1[l])⊕UR,和V1[l]=PM(v1[l])⊕VR对于每个索引I,其中UR和VR是具有掩码参数U1[I]或V1[I]中的任一者的大小的随机字,u1和v1分别是通过所述等式获得的预先计算的集或等于所述第一对的掩码集,并且PM是被应用于集u1和v1的随机选择的置换。5.根据权利要求1至4中的一项所述的方法,其中通过替换运算在相应经掩蔽替换表中选择所述第二输入集中的每个第二输入数据,所述经掩蔽替换表从输入替换表来生成,并且针对所述第一掩码集中的所述第一掩码参数中的每一者和所述第二掩码集中的所述对应第二掩码参数包括一个经掩蔽替换表。6.根据权利要求5所述的方法,其中生成所述经掩蔽替换表,方式为:生成所述第一掩码集;生成所述第二掩码集,所述第二掩码集包括数量等于所述输入替换表中的值的数量的第二掩码参数;在所述第一和第二掩码集中选择一次每个掩码参数以形成掩码对,每个掩码对包括所述第一掩码参数中的一者和所述第二掩码参数中的一者;针对所述第一掩码集中的每个掩码参数生成所述经掩蔽替换表中的一者,所述经掩蔽替换表中的每一者的生成包括:选择所述输入替换表中的每个数据,并且针对每个选定数据:通过对所述选定数据和对与所述第一掩码参数对应的所述第二掩码参数或对所述第一掩码参数的变换后的值应用XOR运算来计算经掩蔽数据;通过对原始索引和对所述第一掩码参数或所述第一掩码参数的变换后的值应用XOR运算来计算经掩蔽索引;以及将所述经掩蔽数据存储在所述经掩蔽替换表中,所述选定数据在所述原始索引处被选择并且所述经掩蔽数据被存储在所述经掩蔽索引处,...

【专利技术属性】
技术研发人员:A·武尔科尔
申请(专利权)人:埃沙尔公司
类型:发明
国别省市:法国,FR

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

1