保护多点乘法运算免受侧信道攻击的方法与流程

文档序号:35564449发布日期:2023-09-24 04:35阅读:29来源:国知局
保护多点乘法运算免受侧信道攻击的方法与流程

本发明涉及公钥密码学领域,并且更具体地说,涉及用于保护在椭圆曲线密码过程中执行的点乘法运算免受侧信道攻击的方法。


背景技术:

1、密码算法通常用于通过加密来确保通信的私密性,用于认证或用于生成可验证的签名。这种算法的示例有aes、des或dsa。

2、基于对执行加密的设备的功耗或电磁特征的分析,这种密码算法对侧信道攻击(sca)是敏感的,如图1所描绘。

3、椭圆曲线密码学(ecc)协议,诸如ecdsa,特别容易受到sca的攻击。事实上,除了秘密密钥之外,这种协议还使用称为随机数的其他值来执行密码运算。例如,随机数可以用作标量值来执行标量点乘法。并且已经在j.-.faugere等人在2012年的“attacking(ec)dsagiven only an implicit hint”以及甚至更近一些的j.jancar等人在2020年的“minerva:the curse of ecdsa nonces”中证明,即使当操纵秘密密钥的运算被保护免受sca攻击时,ecc协议仍然对这种攻击敏感:通过sca检索少量的随机数可能使攻击者能够通过执行格基归约攻击来检索完整的秘密密钥。因此,需要针对sca对ecc协议进行更好的保护。

4、当执行在单个运算中同时使用多个随机数的多点乘法时,针对sca保护使用随机数的ecc运算的这种问题尤其重要。

5、因此,需要保护ecc过程免受侧信道攻击的方法。当这种过程执行多点乘法时,这种方法应该是适用且有效的。


技术实现思路

1、为此目的并且根据第一方面,本发明因此涉及一种用于保护椭圆曲线密码过程的执行免受侧信道攻击的方法,所述椭圆曲线密码过程包括计算多点乘法运算结果的多点乘法运算,其中n是整数,n>=1,di是预定标量值,pi是由参数(f,e,g,n)连同点加法法则一起定义的有限域上的椭圆曲线的点,其中f是在其上定义曲线的域,e是曲线的方程,g是f上e中的基点,并且n是基点g的阶,所述方法由密码设备执行并且包括:

2、-生成掩蔽值irand,

3、-用所生成的掩蔽值irand对每个预定标量值di进行乘法掩蔽,以获得掩蔽标量di′,其中i在{1,…,n}中,

4、-计算掩蔽的多点乘法运算结果其中i在{1,…,n}中,

5、-通过解掩蔽所述掩蔽的多点乘法运算结果r′来获得所述多点乘法运算结果r。

6、这种方法使得能够以一种方式保护预定标量值,这种方式允许在点乘法被求和之后容易地解掩蔽多点乘法运算结果。

7、在实施例中,

8、-生成掩蔽值irand的步骤包括生成随机值rand,并通过反转随机值rand来计算掩蔽值irand(irand=1/rand mod n);并且

9、-解掩蔽所述掩蔽的多点乘法运算结果r′的步骤包括将所述掩蔽的多点乘法运算结果r′乘以所生成的随机值rand。

10、通过这样做,可以在计算过程结束时通过单个运算来取消掩蔽。

11、在实施例中,计算掩蔽的多点乘法运算结果r′的步骤包括:

12、=预先计算所有可能的总和ai在[0,2w-1]中,其中w是预定的整数w>=1,

13、-在无穷远点处初始化中间值a,

14、-对于步长为w的从0到|b|-w的整数j,b为预定标量值的比特数,进行以下步骤:

15、a.将所述中间值a乘以2w

16、b.在所预先计算的可能总和rk中选择总和rm,使得:其中di′j为di′的第j比特,

17、c.将所选择的总和rm与所述中间值a相加。

18、这种方法使得能够通过依赖预先计算的值来最小化计算时间和工作量,同时不断地保护预定标量di免受侧信道攻击。

19、所述随机值大小可以是32或64比特。这种随机值的减小大小限制了解掩蔽的成本,而没有减小掩蔽值irand的大小。

20、根据第二方面,本发明因此还涉及可直接加载到至少一个计算机的存储器中的计算机程序产品,包括当所述产品在计算机上运行时用于执行根据第一方面的方法步骤的软件代码指令。

21、根据第三方面,本发明因此还涉及存储可执行计算机代码的非暂时性计算机可读介质,当由包括具有至少一个硬件处理器的处理系统的密码设备执行时,所述计算机代码执行根据第一方面的方法步骤。

22、根据第四方面,本发明因此还涉及一种密码设备,包括:

23、-至少一个非易失性存储器和/或只读存储器,

24、-具有至少一个硬件处理器的处理系统,所述至少一个硬件处理器被配置成执行根据第一方面的方法步骤。

25、为了实现前述和相关目的,一个或多个实施例包括在下文中充分描述并在权利要求中特别指出的特征。



技术特征:

1.一种用于保护椭圆曲线密码过程的执行免受侧信道攻击的方法,所述椭圆曲线密码过程包括计算多点乘法运算结果的多点乘法运算,其中n是整数,n>=1,di是预定标量值,pi是由参数(f,e,g,n)连同点加法法则一起定义的有限域上的椭圆曲线的点,其中f是在其上定义曲线的域,e是曲线的方程,g是f上e中的基点,并且n是基点g的阶,

2.根据权利要求1所述的方法,

3.根据权利要求1或2所述的方法,其中计算掩蔽的多点乘法运算结果r′包括:

4.根据权利要求2至3中任一项所述的方法,其中所述随机值大小为32或64比特。

5.一种可直接加载到至少一个计算机的存储器中的计算机程序产品,包括当所述产品在计算机上运行时用于执行根据权利要求1至4中任一项的步骤的软件代码指令。

6.一种存储可执行计算机代码的非暂时性计算机可读介质,当由包括具有至少一个硬件处理器的处理系统的密码设备(100)执行时,所述计算机代码执行根据权利要求1至4中任一项的步骤。

7.一种密码设备(100),包括:


技术总结
本发明涉及用于保护椭圆曲线密码过程的执行免受侧信道攻击的方法,所述椭圆曲线密码过程包括计算多点乘法运算结果的多点乘法运算,其中n是整数,n>=1,di是预定标量值,Pi是由参数(F,E,G,N)连同点加法法则一起定义的有限域上的椭圆曲线的点,其中F是在其上定义曲线的域,E是曲线的方程,G是F上E中的基点,并且N是基点G的阶,所述方法由密码设备执行并且包括:‑生成(S1)掩蔽值iRand,‑用所生成的掩蔽值iRand对每个预定标量值d<subgt;i</subgt;进行乘法掩蔽(S2),以获得掩蔽标量d<subgt;i</subgt;′,其中i在{1,…,n}中,‑计算(S3)掩蔽的多点乘法运算结果其中i在{1,…,n}中,一通过解掩蔽所述掩蔽的多点乘法运算结果R′来获得(S4)所述多点乘法运算结果R。

技术研发人员:D·维吉兰特,S·马德科,M·鲁斯莱特
受保护的技术使用者:泰雷兹数字安全法国简易股份公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1