【技术实现步骤摘要】
使替换运算免受侧信道分析的方法
本专利技术涉及一种用于使电路或程序免受旨在发现由所述电路或程序处理的机密数据的值(特别是由加密或解密算法用于变换消息的私钥)的侧信道分析的方法和设备。本专利技术特别涉及实现诸如AES(高级加密标准)之类的密码算法的智能卡集成电路或集成到计算机和其它电子和IT设备(USB驱动器、电视解码器、游戏控制台等)的母板上的硬件加密组件。本专利技术还涉及实现这种算法的程序,该程序用于在安全或不安全的环境中执行。更一般地说,本专利技术涉及实现组合了需要隐藏的两个数据的运算的电路和软件。
技术介绍
实现密码算法的电路可以包括中央处理单元(CPU),并且可能包括专用于密码计算的电路,例如密码协处理器。这些电路可以包括根据所执行的运算以不同的方式切换的数千个逻辑门。这些切换操作在电流消耗上产生短暂变化(例如几纳秒),并且这些变化可以被测量。具体而言,CMOS型集成电路包括在切换时(即,当逻辑节点将其状态变为1或0时)才消耗电流的逻辑门。因此,电流消耗取决于中央处理单元所处理的数据及其各种外围设备(存储器、数据和地址总线、密码协处理器等)。此外,使用加密或模糊技术(例如白盒密码技术)的某些软件程序可以以非常难以通过逆向工程确定的方式来集成机密数据。某些软件程序还可以通过安全通信通道从外部接收机密数据。基于观察这些电路的电流消耗、或它们的磁或电磁辐射时,这些电路可能会受到所谓的侧信道分析攻击。此类攻击旨在发现机密数据,特别是加密密钥。当前侧信道攻击实施诸如SPA(“单功耗分析”)、DPA(“差分功耗分析”)、CPA(“相关功耗分析”)或EMA(“电 ...
【技术保护点】
一种用于通过电路执行应用于包括至少一个字的输入数据的运算的方法,所述方法包括:将所述运算应用于包括通过对所述输入数据和对第一掩码集中的所有第一掩码参数应用异或XOR运算而获得的数据的输入集中的所有数据,所述第一掩码集中的每个第一掩码参数包括至少一个字,所述第一掩码集中的所述字具有相同大小并且形成第一字子集,所述第一字子集包括来自所述第一掩码集的每个第一掩码参数的单个字并且包括的所述字的所有可能值的出现次数相同;以及提供作为所述运算的输出的输出集,所述输出集包括对所述输入集中的所述数据之一应用所述运算而产生的所有数据,所述输出数据是通过对所述输出集中的任一所述数据以及对第二掩码集中的相应第二掩码参数应用XOR运算而获得的,所述第二掩码集中的每个第二掩码参数包括至少一个字,所述第二掩码集中的所述字具有相同大小并且形成第二字子集,所述第二字子集包括来自所述第二掩码集的每个第二掩码参数的单个字并且包括的所述字的所有可能值的出现次数相同。
【技术特征摘要】
2016.06.28 EP 16176716.5;2016.06.28 EP 16176717.3;1.一种用于通过电路执行应用于包括至少一个字的输入数据的运算的方法,所述方法包括:将所述运算应用于包括通过对所述输入数据和对第一掩码集中的所有第一掩码参数应用异或XOR运算而获得的数据的输入集中的所有数据,所述第一掩码集中的每个第一掩码参数包括至少一个字,所述第一掩码集中的所述字具有相同大小并且形成第一字子集,所述第一字子集包括来自所述第一掩码集的每个第一掩码参数的单个字并且包括的所述字的所有可能值的出现次数相同;以及提供作为所述运算的输出的输出集,所述输出集包括对所述输入集中的所述数据之一应用所述运算而产生的所有数据,所述输出数据是通过对所述输出集中的任一所述数据以及对第二掩码集中的相应第二掩码参数应用XOR运算而获得的,所述第二掩码集中的每个第二掩码参数包括至少一个字,所述第二掩码集中的所述字具有相同大小并且形成第二字子集,所述第二字子集包括来自所述第二掩码集的每个第二掩码参数的单个字并且包括的所述字的所有可能值的出现次数相同。2.根据权利要求1所述的方法,其中使用随机置换函数来生成所述第一掩码集。3.根据权利要求1或2所述的方法,其中所述运算是替换运算,借助该替换运算使用所述输入数据作为索引在输入替换表中选择输出数据,所述方法包括:使用从所述输入替换表生成的经掩蔽替换表,并且针对所述第一掩码集中的每个所述第一掩码参数包括一个经掩蔽替换表;以及针对所述第一掩码集中的每个第一掩码参数,选择所述经掩蔽替换表中与该第一掩码参数相对应的一个经掩蔽替换表,并且使用所述输入集中与该第一掩码参数相对应的第二数据作为索引来在所选择的经掩蔽替换表中选择第一数据,所述输出集包括在所述经掩蔽替换表中的一个经掩蔽替换表中选择的所有第一数据。4.根据权利要求3所述的方法,其中所述经掩蔽替换表通过以下方式生成:生成所述第一掩码集;生成第二掩码集,所述第二掩码集包括数量与所述输入替换表中的值的数量相等的第二掩码参数,每个第二掩码参数在所述第二掩码集中具有相同的出现次数;在所述第一和第二掩码集中分别选择一次每个掩码参数以形成掩码对,每个掩码对包括所述第一掩码参数之一和所述第二掩码参数之一;针对每个掩码对生成一个所述经掩蔽替换表,每个所述经掩蔽替换表的生成包括:选择所述输入替换表中的每个数据,并且针对每个选定数据:通过对所述选定数据和对所述掩码对的所述第二掩码参数应用XOR运算来计算经掩蔽数据,通过对所述掩码对的所述第一掩码参数和原始索引应用XOR运算来计算经掩蔽索引,以及将所述经掩蔽数据存储在所述经掩蔽替换表中,所述选定数据在所述原始索引处被选择并且所述经掩蔽数据被存储在所述经掩蔽索引处,或者所述选定数据在所述经掩蔽索引处被选择并且所述经掩蔽数据被存储在所述原始索引处。5.根据权利要求3和4中的一项所述的方法,其中:每个掩码对的所述第一和第二掩码参数是相同的,或者使用与被应用于所述第一掩码集中的所述第一掩码参数的秩的位移函数相组合或不相组合的双射函数从所述第一掩码集导出所述第二掩码集,或者,使用随机置换函数生...
【专利技术属性】
技术研发人员:A·武尔科尔,C·克拉维耶,
申请(专利权)人:埃沙尔公司,
类型:发明
国别省市:法国,FR
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。