验证执行模幂计算的电子电路的敏感度制造技术

技术编号:14778406 阅读:53 留言:0更新日期:2017-03-09 14:14
本公开的实施例涉及验证执行模幂计算的电子电路的敏感度。一种验证在第一寄存器和第二寄存器中执行模幂计算的电子电路的敏感度的方法,连续地包括针对指数的每个比特:将寄存器中根据指数的比特的状态从第一寄存器和第二寄存器之中选择的一个寄存器的内容乘以第一寄存器和第二寄存器中的另一个寄存器的内容、将结果放置在寄存器中的所述一个寄存器中的第一步骤;通过将该结果放置在该另一寄存器中来对寄存器中的所述另一个的内容求平方的第二步骤,其中在对第一步骤的执行期间,针对指数的每个比特,扰乱第一寄存器和第二寄存器中包含第一步骤的操作的乘数的内容。

【技术实现步骤摘要】

本公开内容总体上涉及电子电路,并且更具体地涉及执行模幂运算操作的电路。本公开内容更具体地涉及保护这样的计算免受故障注入攻击。
技术介绍
在许多应用中,电子电路实施加密、认证、签名计算的算法,并且更一般地实施操纵对其的访问期望被保留给特定用户或电路的数据(被称为秘密数据)的算法。在这样的算法之中,一些算法使用对包括秘密数据中的全部或部分的模幂运算操作。存在用于尝试发现或盗取这样的秘密数据的许多方法(被称为攻击)。在这样的攻击之中,所谓的故障注入攻击包括在对电路操作的执行的特定时间扰乱该操作。对这样的故障注入对电路操作或所提供的结果的后果的解译给出了与秘密数据有关的盗取信息。
技术实现思路
实施例有助于克服用于保护由执行模幂运算的算法操纵的数据免受故障注入攻击的常用方法和电路的缺点中的全部或部分。在实施例中,由电子电路对模幂运算的计算的方法有助于克服常用方法的缺点中的全部或部分。实施例提供一种验证故障注入攻击对执行模幂计算的电子电路的敏感度的方法。实施例提供一种验证在第一寄存器和第二寄存器中执行模幂计算的电子电路的敏感度的方法,所述方法包括连续地针对指数的每个比特(bit):将寄存器中的根据指数的比特的状态从第一寄存器和第二寄存器之中选择的一个寄存器的内容乘以第一寄存器和第二寄存器中的另一个寄存器的内容并将结果放置在寄存器中的所述一个寄存器中的第一步骤;以及对寄存器中的所述另一个的内容求平方并将结果放置在该另一寄存器中的第二步骤,其中在对第一步骤的执行期间,针对指数的每个比特,第一寄存器和第二寄存器包含第一步骤的操作的乘数的内容被扰乱。根据实施例,由Montgomery阶梯来实施第一步骤。根据实施例,第一寄存器的内容在第一步骤的每次迭代之前被扰乱。根据实施例,模幂运算的结果被包含在所述第一寄存器中。根据实施例,在结果在多个利用相同操作数的计算的执行之间不同的情况下,电路被认为对故障注入敏感。根据实施例,所述方法包括以下步骤:将第一寄存器初始化为值1;将第二寄存器初始化为要被提交到模幂运算的数的值;连续地,针对指数的每个比特;如果指数的当前比特的状态为1:则将第一寄存器的内容乘以第二寄存器的内容并将结果存储在第一寄存器中;对第二寄存器的内容求平方并将结果存储在第二寄存器中;或者如果指数的当前比特的状态为0:则将第二寄存器的内容乘以第一寄存器的内容并将结果存储在第二寄存器中;对第一寄存器的内容求平方并将结果存储在第一寄存器中;以及当指数的所有比特已经被处理时,恢复第一寄存器的内容。根据实施例,无论指数的比特的状态如何,都在乘法步骤中执行扰乱。根据实施例,在RSA算法中实施模幂运算。实施例提供一种电子电路,其在操作时实施本文中描述的方法中的一个或多个方法。在实施例中,一种方法包括:验证使用第一寄存器和第二寄存器执行模幂计算的电子电路的敏感度,其中:执行模幂计算包括,连续地针对计算的指数的每个比特:将寄存器中根据指数的当前比特的状态从第一寄存器和第二寄存器之中选择的一个寄存器的内容乘以第一寄存器和第二寄存器中的另一个寄存器的内容并将乘法的结果放置在寄存器中的所述一个寄存器中;并且对第一寄存器和第二寄存器中的所述另一个寄存器的内容求平方并将求平方的结果放置在第一寄存器和第二寄存器中的另一寄存器中;并且所述验证包括:在乘法期间,针对计算的指数的每个比特,扰乱第一寄存器和第二寄存器中的至少一个的内容;并且基于模幂计算的经扰乱的结果来确定电子电路的敏感度。在实施例中,使用Montgomery阶梯来实施乘法。在实施例中,验证包括在乘法的每次乘法之前扰乱第一寄存器的内容。在实施例中,模幂的结果被包含在所述第一寄存器中。在实施例中,如果计算的结果在多个利用相同操作数对计算的执行之间不同,则电子电路被认为对故障注入敏感。在实施例中,执行模幂计算包括:将第一寄存器初始化为值1;将第二寄存器初始化为要被提交到模幂运算的数的值;连续地针对指数中的每个比特;如果指数的当前比特的状态为1:则将第一寄存器的内容乘以第二寄存器的内容并将乘法的结果存储在第一寄存器中;对第二寄存器的内容求平方并将求平方的结果存储在第二寄存器中;并且如果指数的当前比特的状态为0:则将第二寄存器的内容乘以第一寄存器的内容并将乘法的结果存储在第二寄存器中;对第一寄存器的内容求平方并将求平方的结果存储在第一寄存器中;并且当指数的所有比特已经被处理时,输出第一寄存器的内容。在实施例中,无论指数的比特的状态如何,都在乘法步骤中执行扰乱。在实施例中,在RSA算法中实施模幂运算。在实施例中,在乘法期间扰乱第一寄存器和第二寄存器中的至少一个寄存器的内容包括:扰乱存储乘法的乘数的寄存器。在实施例中,一种装置包括:接口,其被配置为耦合到包括第一寄存器和第二寄存器的加密电路;以及控制电路,其耦合到接口,其中,控制电路在操作时:生成用于使得加密电路执行模幂计算的信号,执行模幂计算包括,连续地针对计算的指数的每个比特:将第一寄存器和第二寄存器中根据指数的当前比特的状态从第一寄存器和第二寄存器之中选择的一个寄存器的内容乘以第一寄存器和第二寄存器中的另一个寄存器的内容并将乘法的结果放置在第一寄存器和第二寄存器中的所述一个寄存器中;并且对第一寄存器和第二寄存器中的所述另一个寄存器的内容求平方并将求平方的结果放置在第一寄存器和第二寄存器中的另一寄存器中;并且生成用于在模幂计算的乘法期间针对计算的指数的每个比特扰乱第一寄存器和第二寄存器中的至少一个寄存器的内容的信号。在实施例中,其中控制电路在操作时基于经扰乱的模幂计算的结果来提取计算的指数的至少一个比特。在实施例中,扰乱包括故障注入攻击。在实施例中,控制电路在操作时基于经扰乱的模幂计算的结果来验证加密电路对故障注入攻击的敏感度。在实施例中,如果计算的结果在多个利用相同操作数的计算的执行之间不同,则加密电路被认为对故障注入敏感。在实施例中,使用Montgomery阶梯来实施乘法。在实施例中,扰乱包括在乘法的每次乘法之前扰乱第一寄存器的内容。在实施例中,模幂运算的结果被包含在所述第一寄存器中。在实施例中,执行模幂计算包括:将第一寄存器初始化为值1;将第二寄存器初始化为要被提交到模幂运算的数的值;连续地针对指数中的每个比特;如果指数的当前比特的状态为1:则将第一寄存器的内容乘以第二寄存器的内容并将乘法的结果存储在第一寄存器中;对第二寄存器的内容求平方并将求平方的结果存储在第二寄存器中;并且如果指数的当前比特的状态为0:则将第二寄存器的内容乘以第一寄存器的内容并将乘法的结果存储在第二寄存器中;对第一寄存器的内容求平方并将求平方的结果存储在第一寄存器中;并且当指数的所有比特已经被处理时,输出第一寄存器的内容。在实施例中,在RSA算法中实施模幂运算。在实施例中,在乘法期间扰乱第一寄存器和第二寄存器中的至少一个寄存器的内容包括:扰乱第一寄存器和第二寄存器中的存储乘法的乘数的寄存器。在实施例中,一种方法包括:使用包括第一寄存器和第二寄存器的加密电路执行模幂计算,执行模幂计算包括,连续地针对计算的指数的每个比特:将第一寄存器和第二寄存器中根据指数的当前比特的状态从第一寄存器和第二寄存器之中选本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201610101988.html" title="验证执行模幂计算的电子电路的敏感度原文来自X技术">验证执行模幂计算的电子电路的敏感度</a>

【技术保护点】
一种方法,包括:验证使用第一寄存器和第二寄存器执行模幂计算的电子电路的敏感度,其中:执行所述模幂计算包括连续地针对所述计算的指数的每个比特:将所述寄存器中根据所述指数的当前比特的状态从所述第一寄存器和所述第二寄存器之中选择的一个寄存器的内容乘以所述第一寄存器和所述第二寄存器中的另一个寄存器的内容,并且将所述乘法的结果放置在所述第一寄存器和所述第二寄存器中的所述一个寄存器中;并且对所述第一寄存器和所述第二寄存器中的所述另一个寄存器的内容求平方,并且将所述求平方的结果放置在所述第一寄存器和所述第二寄存器中的所述另一个寄存器中;以及所述验证包括:在所述乘法期间,针对所述计算的所述指数的每个比特,扰乱所述第一寄存器和所述第二寄存器中的至少一个寄存器的内容;并且基于所述模幂计算的经扰乱的结果来确定所述电子电路的所述敏感度。

【技术特征摘要】
2015.08.27 FR 15579761.一种方法,包括:验证使用第一寄存器和第二寄存器执行模幂计算的电子电路的敏感度,其中:执行所述模幂计算包括连续地针对所述计算的指数的每个比特:将所述寄存器中根据所述指数的当前比特的状态从所述第一寄存器和所述第二寄存器之中选择的一个寄存器的内容乘以所述第一寄存器和所述第二寄存器中的另一个寄存器的内容,并且将所述乘法的结果放置在所述第一寄存器和所述第二寄存器中的所述一个寄存器中;并且对所述第一寄存器和所述第二寄存器中的所述另一个寄存器的内容求平方,并且将所述求平方的结果放置在所述第一寄存器和所述第二寄存器中的所述另一个寄存器中;以及所述验证包括:在所述乘法期间,针对所述计算的所述指数的每个比特,扰乱所述第一寄存器和所述第二寄存器中的至少一个寄存器的内容;并且基于所述模幂计算的经扰乱的结果来确定所述电子电路的所述敏感度。2.根据权利要求1所述的方法,其中所述乘法使用Montgomery阶梯被实施。3.根据权利要求1所述的方法,其中所述验证包括:在所述乘法中的每次乘法之前,扰乱所述第一寄存器的内容。4.根据权利要求1所述的方法,其中所述模幂计算的结果被包含在所述第一寄存器中。5.根据权利要求1所述的方法,其中如果所述计算的所述结果在利用相同操作数的所述计算的多个执行之间不同,则所述电子电路被认为对故障注入敏感。6.根据权利要求1所述的方法,其中执行所述模幂计算包括:将所述第一寄存器初始化为值1;将所述第二寄存器初始化为要被提交到所述模幂计算的数的值;连续地针对所述指数的每个比特;如果所述指数的所述当前比特的所述状态为1:则将所述第一寄存器的内容乘以所述第二寄存器的内容,并且将所述乘法的结果存储在所述第一寄存器中;对所述第二寄存器的内容求平方,并且将所述求平方的结果存储在所述第二寄存器中;以及如果所述指数的所述当前比特的所述状态为0:则将所述第二寄存器的内容乘以所述第一寄存器的内容,并且将所述乘法的结果存储在所述第二寄存器中;对所述第一寄存器的内容求平方,并且将所述求平方的结果存储在所述第一寄存器中;以及当所述指数的所有比特已经被处理时,输出所述第一寄存器的所述内容。7.根据权利要求6所述的方法,其中无论所述指数的比特的状态如何,都在所述乘法步骤中执行所述扰乱。8.根据权利要求1所述的方法,其中所述模幂计算被实施在RSA算法中。9.根据权利要求1所述的方法,其中在所述乘法期间扰乱所述第一寄存器和所述第二寄存器中的至少一个寄存器的内容包括:扰乱存储所述乘法的乘数的寄存器。10.一种装置,包括:接口,所述接口被配置为耦合到包括第一寄存器和第二寄存器的加密电路;以及控制电路,所述控制电路耦合到所述接口,其中所述控制电路在操作时:生成用于使得所述加密电路执行模幂计算的信号,执行所述模幂计算包括连续地针对所述计算的指数的每个比特:将所述第一寄存器和所述第二寄存器中根据所述指数的当前比特的状态从所述第一寄存器和所述第二寄存器之中选择的一个寄存器的内容乘以所述第一寄存器和所述第二寄存器中的另一个寄存器的内容,并且将所述乘法的结果放置在所述第一寄存器和所述第二寄存器中的所述一个寄存器中;并且对所述第一寄存器和所述第二寄存器中的所述另一个寄存器的内容求平方,并且将所述求平方的结果放置在所述第一寄存器和所述第二寄存器中的所述另一个寄存器中;以及生成用于在所述模幂...

【专利技术属性】
技术研发人员:Y·特戈利亚
申请(专利权)人:意法半导体鲁塞公司
类型:发明
国别省市:法国;FR

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

1