CN116803051A - 保护多点乘法运算免受侧信道攻击的方法 - Google Patents

保护多点乘法运算免受侧信道攻击的方法 Download PDF

Info

Publication number
CN116803051A
CN116803051A CN202280009694.8A CN202280009694A CN116803051A CN 116803051 A CN116803051 A CN 116803051A CN 202280009694 A CN202280009694 A CN 202280009694A CN 116803051 A CN116803051 A CN 116803051A
Authority
CN
China
Prior art keywords
value
point
masking
point multiplication
irand
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280009694.8A
Other languages
English (en)
Inventor
D·维吉兰特
S·马德科
M·鲁斯莱特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales Digital Security France Easy Stock Co
Original Assignee
Thales Digital Security France Easy Stock Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thales Digital Security France Easy Stock Co filed Critical Thales Digital Security France Easy Stock Co
Publication of CN116803051A publication Critical patent/CN116803051A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

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

Description

保护多点乘法运算免受侧信道攻击的方法
技术领域
本发明涉及公钥密码学领域,并且更具体地说,涉及用于保护在椭圆曲线密码过程中执行的点乘法运算免受侧信道攻击的方法。
背景技术
密码算法通常用于通过加密来确保通信的私密性,用于认证或用于生成可验证的签名。这种算法的示例有AES、DES或DSA。
基于对执行加密的设备的功耗或电磁特征的分析,这种密码算法对侧信道攻击(SCA)是敏感的,如图1所描绘。
椭圆曲线密码学(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协议进行更好的保护。
当执行在单个运算中同时使用多个随机数的多点乘法时,针对SCA保护使用随机数的ECC运算的这种问题尤其重要。
因此,需要保护ECC过程免受侧信道攻击的方法。当这种过程执行多点乘法时,这种方法应该是适用且有效的。
发明内容
为此目的并且根据第一方面,本发明因此涉及一种用于保护椭圆曲线密码过程的执行免受侧信道攻击的方法,所述椭圆曲线密码过程包括计算多点乘法运算结果的多点乘法运算,其中n是整数,n>=1,di是预定标量值,Pi是由参数(F,E,G,N)连同点加法法则一起定义的有限域上的椭圆曲线的点,其中F是在其上定义曲线的域,E是曲线的方程,G是F上E中的基点,并且N是基点G的阶,所述方法由密码设备执行并且包括:
-生成掩蔽值iRand,
-用所生成的掩蔽值iRand对每个预定标量值di进行乘法掩蔽,以获得掩蔽标量di′,其中i在{1,…,n}中,
-计算掩蔽的多点乘法运算结果其中i在{1,…,n}中,
-通过解掩蔽所述掩蔽的多点乘法运算结果R′来获得所述多点乘法运算结果R。
这种方法使得能够以一种方式保护预定标量值,这种方式允许在点乘法被求和之后容易地解掩蔽多点乘法运算结果。
在实施例中,
-生成掩蔽值iRand的步骤包括生成随机值Rand,并通过反转随机值Rand来计算掩蔽值iRand(iRand=1/Rand mod N);并且
-解掩蔽所述掩蔽的多点乘法运算结果R′的步骤包括将所述掩蔽的多点乘法运算结果R′乘以所生成的随机值Rand。
通过这样做,可以在计算过程结束时通过单个运算来取消掩蔽。
在实施例中,计算掩蔽的多点乘法运算结果R′的步骤包括:
=预先计算所有可能的总和ai在[0,2w-1]中,其中w是预定的整数w>=1,
-在无穷远点处初始化中间值A,
-对于步长为w的从0到|B|-w的整数j,B为预定标量值的比特数,进行以下步骤:
a.将所述中间值A乘以2w
b.在所预先计算的可能总和Rk中选择总和Rm,使得: 其中dij为di′的第j比特,
c.将所选择的总和Rm与所述中间值A相加。
这种方法使得能够通过依赖预先计算的值来最小化计算时间和工作量,同时不断地保护预定标量di免受侧信道攻击。
所述随机值大小可以是32或64比特。这种随机值的减小大小限制了解掩蔽的成本,而没有减小掩蔽值iRand的大小。
根据第二方面,本发明因此还涉及可直接加载到至少一个计算机的存储器中的计算机程序产品,包括当所述产品在计算机上运行时用于执行根据第一方面的方法步骤的软件代码指令。
根据第三方面,本发明因此还涉及存储可执行计算机代码的非暂时性计算机可读介质,当由包括具有至少一个硬件处理器的处理***的密码设备执行时,所述计算机代码执行根据第一方面的方法步骤。
根据第四方面,本发明因此还涉及一种密码设备,包括:
-至少一个非易失性存储器和/或只读存储器,
-具有至少一个硬件处理器的处理***,所述至少一个硬件处理器被配置成执行根据第一方面的方法步骤。
为了实现前述和相关目的,一个或多个实施例包括在下文中充分描述并在权利要求中特别指出的特征。
附图说明
以下描述和附图详细阐述了某些说明性方面,并且仅指示了可以采用实施例的原理的各种方式中的一些。当结合附图考虑时,从以下详细描述中,其他优点和新颖特征将变得清楚,并且所公开的实施例旨在包括所有这些方面及其等同物。
·图1是根据本发明实施例的包括密码设备的***的示意图;
·图2示意性地示出了根据本发明实施例的用于保护椭圆曲线密码过程的执行免受侧信道攻击的方法,该椭圆曲线密码过程包括多点乘法运算;
·图3示意性地示出了根据本发明实施例(当n=2且w=1时)用于保护椭圆曲线密码过程的执行免受侧信道攻击的方法的实现示例,该椭圆曲线密码过程包括多点乘法运算。
具体实施方式
本发明旨在保护包括多点乘法运算的椭圆曲线密码过程的执行免受侧信道攻击。
这种过程可以由密码设备100来执行,其示意图示在图1给出。密码设备100可以包括经由总线102连接到随机存取存储器(RAM)103、只读存储器(ROM)104和/或非易失性存储器(NVM)105的处理器101。密码设备100还可以包括通信接口106,密码设备100可以通过该通信接口106连接到网络。这种接口可以是连接到天线的无线接口,并且可以用于将密码设备100连接到各种形式的无线网络,例如广域网、WiFi网络或移动电话网络。可替代地,这种接口可以是有线接口,例如以太网互联网。密码设备100还可以包括向密码设备100的用户提供接口的输入/输出构件107,例如一个或多个屏幕、扬声器、鼠标、触觉表面、键盘等。
这种密码设备例如可以是智能卡、移动电话、平板电脑或个人计算机。它也可以是嵌入身份证件(诸如护照)或硬件安全模块(HSM)中的智能芯片。
由密码设备执行的椭圆曲线密码过程可以是例如ECDSA协议,其在协议中执行多点乘法。
多点乘法运算计算多点乘法运算结果其中n是整数,n>=1,di是预定标量值,Pi是由参数(F,E,G,N)连同点加法法则一起定义的有限域上的椭圆曲线的点,其中F是在其上定义曲线的域,E是曲线的方程,G是F上E中的基点,并且N是基点G的阶。符号“.”表示点乘法,其中d.P意指计算d乘以点加法群法则P+P+...+P,而符号“*”表示整数之间的乘法。对某个整数进行欧几里得除法后的余数的计算(也称为模)记为“模(mod)”。
用于这种计算的预定标量值di被称为随机数。如上所介绍的,为了保护密码过程的秘密密钥,应该保护这种随机数免受侧信道攻击。
本发明的主要思想是通过在执行多点乘法运算之前对这些随机数应用乘法掩蔽来保护随机数不被攻击者从SCA踪迹中猜到。问题于是成为能够从多点乘法运算输出中去除掩蔽,以便获得未掩蔽的多点乘法运算结果为了做到这一点,根据本发明的方法使用单个掩蔽来掩蔽要在相同的多点乘法运算中使用的所有随机数。通过这样做,可以从多点乘法运算输出中因式分解该掩蔽,并且可以通过单个运算容易地去除掩蔽。
以下段落更详细地描述了根据本发明的安全计算多点乘法运算结果的方法的步骤,如图2所描绘的。
在第一步S1中,密码设备生成掩蔽值iRand。这样的值可以例如由密码设备中包括的伪随机数生成器PRNG 108随机生成。
在第二步骤S2中,密码设备用所生成的掩蔽值iRand对每个预定标量值di进行乘法掩蔽,以获得掩蔽标量di′,其中i在{1,...,n}中:di′=iRand*di mod N。
在第三步骤S3中,密码设备计算掩蔽的多点乘法运算结果 其中i在{1,...,n}中。这个结果R′的计算是要计算的结果/>的计算,除了每个预定标量值di已经被它的掩蔽值di′代替。
在第四步骤S4中,密码设备通过解掩蔽所述掩蔽的多点乘法运算结果R′来获得所述多点乘法运算结果R。由于使用相同的掩蔽值iRand来掩蔽所有项di.Pi,因此可以容易地将其因式分解并消除。
在一个实施例中,在第一步骤S1中,生成掩蔽值iRand包括生成随机值Rand,并通过反转随机值Rand来计算掩蔽值iRand:iRand=1/Rand mod N。这种随机值可以具有例如32比特或64比特的大小。
在这样的实施例中,在第四步骤S4中,解掩蔽所述掩蔽的多点乘法运算结果R′包括将所述掩蔽的多点乘法运算结果R′乘以所生成的随机值Rand。实际上,
以这种方式对掩蔽的多点乘法运算结果R′解掩蔽并使用受限大小的随机值Rand,最小化了在第四步骤执行的运算的成本,并确保了良好的性能。
以下段落描述了用于在第三步骤S3中计算掩蔽的多点乘法运算结果R′的示例性实施例。该实施例的思想是通过掩蔽的预定标量di′的预定长度w比特的块来计算结果,并且预先计算所有可能的块,以避免在请求多点乘法计算时执行任何点乘法。
在第一子步骤S31中,预先计算所有可能的总和ai在[0,2w-1]中,其中w是预定整数w>=1。换句话说,为数组(a1,...,ai,...,an)的每个可能值计算总和Rk,其中每个ai(i在{1,...,n}中)可以等于[0,2w-1]中的任何值。预先计算的总和Rk的数量等于2n*w
这种预先计算可以在执行该方法的任何其他步骤之前执行,因为它不依赖于预定标量值di。它可以由密码设备本身来执行,或者由诸如服务器之类的另一设备来执行,并且所计算的总和可以被传送到密码设备。
在第二子步骤S32中,密码设备在无穷远点处初始化中间值A。
在第三子步骤S33中,密码设备:
·将中间值A乘以2w
A=2w.A
·在预先计算的可能总和Rk中选择总和Rm,使得:
其中dij是掩蔽的预定标量di′的第j比特。
在该公式中,(dij|...|dij+w-1)表示以2为基数的字符串的数学评估,该字符串是通过拼接以2为基数表达的di′的比特j到j+w-1而形成的。在第一次执行该步骤时,索引j等于0。
·将所选的总和Rm与中间值A相加
A=A+Rm
·将j增加w。
对于索引j的新值重复该子步骤S33,直到j达到|B|-w,这是对其执行子步骤的j的最后值,B是di′的比特数。当|B|不是w的倍数时,当j变得大于|B|-w时,在用|B|-j代替w之后该子步骤被重复最后一次。这使得当剩下的要考虑的比特少于w比特时,能够考虑预定标量的最后比特。
图3示出了当n=2和w=1时的实现示例。
在这种情况下,要获得的多点乘法结果是R=d1.P1+d2.P2
在第一子步骤S31中,预先计算所有可能的总和ai在[0,1]中。在这种情况下,这意味着预先计算对于(a1;a2)=(0;0)、(0;1)、(1;0)和(1;1)的总和,这仅仅相当于计算P1+P2,因为对于其他组合的总和已经是已知的。
在第一步骤S1中,密码设备生成随机值Rand,并通过反转随机值Rand来计算掩蔽值iRand。
在第二步骤S2中,密码设备用生成的掩蔽值iRand对预定标量值d1和d2进行乘法掩蔽,以获得掩蔽标量d1′=iRand*d1 mod N和d2′=iRand*d2 mod N。
在第三步骤S3中,密码设备通过对{0,…,B-1}中j的每个值重复第三子步骤S33,并依赖于比特dij的值在每次迭代时选择要加到中间值A的预先计算值,来计算掩蔽的多点乘法运算结果
在第四步骤S4中,密码设备将掩蔽的多点乘法运算结果R′与所生成的随机值Rand相乘,以获得多点乘法运算结果R。
结果,上述方法使得能够安全地计算多点乘法运算,而不会将用作点乘法标量的随机数暴露给侧信道攻击。

Claims (7)

1.一种用于保护椭圆曲线密码过程的执行免受侧信道攻击的方法,所述椭圆曲线密码过程包括计算多点乘法运算结果的多点乘法运算,其中n是整数,n>=1,di是预定标量值,Pi是由参数(F,E,G,N)连同点加法法则一起定义的有限域上的椭圆曲线的点,其中F是在其上定义曲线的域,E是曲线的方程,G是F上E中的基点,并且N是基点G的阶,
所述方法由密码设备(100)执行并且包括:
一生成(S1)掩蔽值iRand,
-用所生成的掩蔽值iRand对每个预定标量值di进行乘法掩蔽(S2),以获得掩蔽标量di′,其中i在{1,…,n}中,
-计算(S3)掩蔽的多点乘法运算结果其中i在{1,…,n}中,
-通过解掩蔽所述掩蔽的多点乘法运算结果R′来获得(S4)所述多点乘法运算结果R。
2.根据权利要求1所述的方法,
-其中生成掩蔽值iRand包括生成随机值Rand,并通过反转随机值Rand来计算掩蔽值iRand(iRand=1/Rand mod N);并且
-其中解掩蔽所述掩蔽的多点乘法运算结果R′包括将所述掩蔽的多点乘法运算结果R′乘以所生成的随机值Rand。
3.根据权利要求1或2所述的方法,其中计算掩蔽的多点乘法运算结果R′包括:
-预先计算(S31)所有可能的总和ai在[0,2w-1]中,其中w是预定的整数w>=1,
-在无穷远点处初始化(S32)中间值A,
-对于步长为w的从0到|B|-w的整数j,B为预定标量值的比特数,进行以下步骤:
a.将所述中间值A乘以2w
b.在所预先计算的可能总和Rk中选择总和Rm,使得:
其中dij为di′的第j比特,
c.将所选择的总和Rm与所述中间值A相加。
4.根据权利要求2至3中任一项所述的方法,其中所述随机值大小为32或64比特。
5.一种可直接加载到至少一个计算机的存储器中的计算机程序产品,包括当所述产品在计算机上运行时用于执行根据权利要求1至4中任一项的步骤的软件代码指令。
6.一种存储可执行计算机代码的非暂时性计算机可读介质,当由包括具有至少一个硬件处理器的处理***的密码设备(100)执行时,所述计算机代码执行根据权利要求1至4中任一项的步骤。
7.一种密码设备(100),包括:
-具有至少一个硬件处理器(101)的处理***,所述至少一个硬件处理器(101)被配置成执行根据权利要求1至4中任一项的步骤,
-至少一个非易失性存储器(105)和/或只读存储器(104)。
CN202280009694.8A 2021-01-11 2022-01-11 保护多点乘法运算免受侧信道攻击的方法 Pending CN116803051A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP21305022.2 2021-01-11
EP21305022.2A EP4027574A1 (en) 2021-01-11 2021-01-11 Method for securing a multiple point multiplication operation against side-channel attacks
PCT/EP2022/050455 WO2022148884A1 (en) 2021-01-11 2022-01-11 Method for securing a multiple point multiplication operation against side-channel attacks

Publications (1)

Publication Number Publication Date
CN116803051A true CN116803051A (zh) 2023-09-22

Family

ID=75426535

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280009694.8A Pending CN116803051A (zh) 2021-01-11 2022-01-11 保护多点乘法运算免受侧信道攻击的方法

Country Status (4)

Country Link
EP (2) EP4027574A1 (zh)
JP (1) JP2024502190A (zh)
CN (1) CN116803051A (zh)
WO (1) WO2022148884A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115129297B (zh) * 2022-08-30 2022-12-13 北京象帝先计算技术有限公司 多点乘运算***、方法、图形处理器、电子装置及设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2119101B1 (en) * 2007-03-06 2011-10-05 Research In Motion Limited Elliptical scalar multiplication method for countering power-analysis attacks
US10181944B2 (en) * 2015-06-16 2019-01-15 The Athena Group, Inc. Minimizing information leakage during modular exponentiation and elliptic curve point multiplication

Also Published As

Publication number Publication date
JP2024502190A (ja) 2024-01-17
EP4275322A1 (en) 2023-11-15
EP4027574A1 (en) 2022-07-13
WO2022148884A1 (en) 2022-07-14

Similar Documents

Publication Publication Date Title
CN112002210B (zh) 用于测试并且加固软件应用的方法
JP4632950B2 (ja) 個人鍵を用いた耐タンパ暗号処理
CN110235409B (zh) 使用同态加密被保护的rsa签名或解密的方法
JP5412274B2 (ja) サイドチャネル攻撃からの保護
Medwed et al. Template attacks on ECDSA
US8391477B2 (en) Cryptographic device having tamper resistance to power analysis attack
JP4086503B2 (ja) 暗号演算装置及び方法並びにプログラム
CN107040362A (zh) 模乘设备和方法
Hutter et al. A cryptographic processor for low-resource devices: Canning ECDSA and AES like sardines
RU2579990C2 (ru) Защита от пассивного сниффинга
JP2019515353A (ja) 暗号化べき乗アルゴリズムへのセーフ−エラーフォールトインジェクション攻撃に対する対策
JP2011510578A (ja) 非対称暗号のための防護方法およびデバイス
CN116803051A (zh) 保护多点乘法运算免受侧信道攻击的方法
WO2017114739A1 (en) System and method for hiding a cryptographic secret using expansion
EP2738973A1 (en) System and method for cryptography using multiplicative masking using simultaneous exponentiation techniques
US7983415B2 (en) Method for performing iterative scalar multiplication which is protected against address bit attack
KR20080012634A (ko) 고속 몽고메리 전력 래더 알고리즘에서 사용되는 폴트 검출동작을 구현하기 위한 이진 유한 영역에서의 포인트 덧셈방법 및 덧셈 연산 장치
Schindler Exclusive exponent blinding is not enough to prevent any timing attack on RSA
EP4199410A1 (en) Method secured against side-channel attacks performing a cryptographic algorithm comprising a polynomial operation
EP4343537A1 (en) Method for securing an operation using a private key against side-channel attacks
EP4372548A1 (en) Protecting cryptographic operations againt horizontal side-channel analysis attacks
Janani et al. A secured key management scheme for mobile ad hoc networks with modified montgomery modular arithmetic
EP4258594A1 (en) Method for performing polynomial multiplication operations
WO2024056778A1 (en) Method for performing polynomial multiplication operations
Komano et al. Integrative Acceleration of First-order Boolean Masking for Embedded IoT Devices

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination