A computer-implemented method, program product, and system for converting the call graph representation of an algorithm into a protected call graph representation of the algorithm. The call graph includes input (a, b, f), internal variables as edges (c, d, e) of the graph, and basic functions as nodes of the graph. The functions are linear or nonlinear, and include output (g). The method includes: (1) the step of masking each input of the call graph, (2) replacing each of the call graphs with masked variables Steps for each unmasked internal variable, steps for substituting at least each nonlinear function of the call graph with an equivalent function applicable to the masked variable, steps for de-masking each output of the call graph.
【技术实现步骤摘要】
将掩蔽自动插入到算法中
本专利技术应用于密码领域,并且更具体地涉及用于对针对边信道攻击的算法的实现进行保护的方法。
技术介绍
涉及对敏感数据加密的现有加密算法提供了针对密码分析和内容恢复攻击的有效鲁棒性。这些技术被称为“黑盒技术”,因为攻击者只知道加密算法的输入和输出。大多数加密算法是标准化的,其中已知使用最多的一种算法是高级加密标准(AES)。加密的机密性基于共享的秘密加密密钥。攻击者忽略秘密密钥的最佳选择是尝试所有可能的组合(蛮力解码)。当密钥是128位或256位长的时,所需的迭代次数使得蛮力解码在计算上非常难以管理。然而,被称为边信道攻击(SCA)的一些攻击给予攻击者基于从加密算法的物理实现泄漏的信息(如定时信息、功耗、电磁泄漏等)取回在加密算法中执行的秘密信息的机会。因此,首要需求是提供用于保护敏感算法的实现免受这种攻击的方法。任何算法都可以被表示为运算图或调用图,其为有向图,其中每个节点是函数并且每个边是中间变量(也被称为内部变量)。该调用图也可以被称为数据流图或控制流图。函数可以是单个运算或运算的线性或非线性的组合。函数是没有任何跳转的一段直线型代码。当函数包含多个操作数时,其可以分解成多个一元或二元操作数。典型的运算是可以在给定技术中实现的运算。例如,软件程序可以计算算术和逻辑运算,例如,加法(“+”)或异布尔OR(“XOR”)。数字信号处理器(DSP)或现场可编程门阵列(FPGA)可以使用MAC单元(累乘-累加)来计算在查找表(LUT)或算术运算中实现的任何函数。专用集成电路(ASIC)可以利用标准单元库来计算任何类型的运算。函数可以用高级 ...
【技术保护点】
1.一种用于将算法的调用图表示变换成所述算法的受保护调用图表示的计算机实现的方法,所述调用图包括至少一个输入(a,b,f)、至少一个边(c,d,e)、至少一个节点(P,Q,R,S)以及至少一个输出(g),所述调用图的边表示所述算法的内部变量,所述调用图的节点表示所述算法的线性基本函数或非线性基本函数,所述计算机实现的方法包括:‑对所述调用图的每个输入进行掩蔽的步骤(601),‑用经掩蔽的变量替代所述调用图的每个未掩蔽的内部变量的步骤(602),‑用适用于经掩蔽的变量的等价函数至少替代所述调用图的每个非线性函数的步骤(603),‑对所述调用图的每个输出解除掩蔽的步骤(604)。
【技术特征摘要】
2017.02.24 EP 17305202.81.一种用于将算法的调用图表示变换成所述算法的受保护调用图表示的计算机实现的方法,所述调用图包括至少一个输入(a,b,f)、至少一个边(c,d,e)、至少一个节点(P,Q,R,S)以及至少一个输出(g),所述调用图的边表示所述算法的内部变量,所述调用图的节点表示所述算法的线性基本函数或非线性基本函数,所述计算机实现的方法包括:-对所述调用图的每个输入进行掩蔽的步骤(601),-用经掩蔽的变量替代所述调用图的每个未掩蔽的内部变量的步骤(602),-用适用于经掩蔽的变量的等价函数至少替代所述调用图的每个非线性函数的步骤(603),-对所述调用图的每个输出解除掩蔽的步骤(604)。2.根据权利要求1所述的计算机实现的方法,其中,所述调用图包括被迭代地处理的部分,用经掩蔽的内部变量替代未掩蔽的内部变量的步骤(602)包括对用作所述调用图的被迭代地处理的部分的输入和输出两者的内部变量(b,g)进行识别,以及针对这些变量在所述调用图的所述部分的输入和输出中使用相同的掩码(m2)。3.根据权利要求1所述的计算机实现的方法,其中,所述调用图包括被迭代地处理的部分,用经掩蔽的内部变量替代未掩蔽的内部变量的步骤(602)包括对用作所述调用图的被迭代地处理的部分的输入和输出两者的内部变量(b,g)进行识别,以及在所述迭代部分的反馈边中插入用于对所述内部变量的掩码进行修改的附加节点(120)。4.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述调用图的被迭代地处理的部分中的内部变量的掩码以定期的间隔被改变,并且相关联的函数被相应地修改。5.根据权利要求4所述的计算机实现的方法,还包括在所述调用图中插入用于对所述迭代部分的内部变量的掩码...
【专利技术属性】
技术研发人员:P·阮,S·吉耶,
申请(专利权)人:智能IC卡公司,
类型:发明
国别省市:法国,FR
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。