CN113141255A - 用于在处理设备、对应的处理设备和计算机程序产品中对数据执行密码运算的方法 - Google Patents

用于在处理设备、对应的处理设备和计算机程序产品中对数据执行密码运算的方法 Download PDF

Info

Publication number
CN113141255A
CN113141255A CN202110063631.8A CN202110063631A CN113141255A CN 113141255 A CN113141255 A CN 113141255A CN 202110063631 A CN202110063631 A CN 202110063631A CN 113141255 A CN113141255 A CN 113141255A
Authority
CN
China
Prior art keywords
value
bits
secret key
multiplier
projection format
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
CN202110063631.8A
Other languages
English (en)
Inventor
R·苏塞拉
G·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.)
STMicroelectronics SRL
Original Assignee
STMicroelectronics SRL
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 STMicroelectronics SRL filed Critical STMicroelectronics SRL
Publication of CN113141255A publication Critical patent/CN113141255A/zh
Pending legal-status Critical Current

Links

Images

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes

Landscapes

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

Abstract

一种标量乘法运算包括:在每次迭代对秘密密钥的比特或一组连续比特执行运算集合的迭代过程。乘法运算包括将投影格式坐标的值乘以随机值。随机值是在具有第一值作为结束值的范围上生成的随机数与大于所述第一值的第二值的乘积。第一值是2的字长乘以乘法器值次幂减去一。第二值等于2的坐标的比特数次幂除以第一值。乘法器值是大于或等于一、并且小于所述比特数与字长之比的整数。

Description

用于在处理设备、对应的处理设备和计算机程序产品中对数 据执行密码运算的方法
技术领域
本描述涉及用于在利用给定字长来操作的处理设备中对数据执行密码运算的方法的技术。
例如,所描述的实施例可以针对在使用ECC(椭圆曲线密码术)的给定阶数的有限域上操作的非对称密码过程,诸如通过蒙哥马利阶梯实施点乘法(pointmultiplication)。
各种实施例可以使用加密或数字签名方案来应用于例如智能卡、微控制器、机顶盒。
背景技术
现有技术的描述
密码协议或加密协议是抽象的或具体的协议,它们执行安全相关功能并且应用密码方法,通常作为密码原语的序列。
在免受使用加密算法的设备(例如实施加密算法(诸如ECC或RSA)的微控制器)中的侧信道攻击的保护的领域中,已知垂直侧信道攻击(SCA),其中攻击者可以使用该设备加密任意数据(输入),以便获得由加密算法使用的密码密钥。攻击者在已知输入数据的加密期间记录侧信道信息,该侧信道由电力消耗、电磁辐射或其他类似量表示。
侧信道与被设备处理的数据链接,这些数据是密码密钥以及作为输入被馈送的攻击者的数据,因此其表示已知数据。
攻击者利用不同的已知输入数据和恒定的未知密钥记录许多“痕迹”,对一部分密码密钥的值进行假设,并且使用统计方法,以使用该痕迹验证这样的假设。为了应用这样的统计方法,攻击者需要使用许多痕迹,每个痕迹具有不同的已知输入数据和恒定密钥。
然而,在非对称密码术中,尽管在计算期间使用的数据变化,但还是存在数学方式来为每次执行修改秘密密钥,使得运算结果不改变。因此,由于密钥不再恒定,攻击者无法收集许多痕迹。
为此,当攻击者需要在单个痕迹上工作时,攻击者会部署所谓的水平攻击。
在要保护的设备(例如处理单元或微控制器)中,通常存在存储器、控制器,存储器存储输入/输出数据和中间值,控制器从RAM存储器读取字并且将它们存储到寄存器中,然后“调用”寄存器上的乘法器(例如对存储在寄存器中的操作数执行乘法运算的乘法器单元或电路)。乘法器将操作数相乘并且将结果写入RAM存储器。在这样的情况下,超过95%的计算是在乘法器内完成的。
关于此,在图1中示出了处理单元或核心10,其包括控制器单元或电路11,该控制器单元或电路11从存储器13(例如RAM存储器)读取在图1中以a和b指示的字,并且将它们存储到控制器11中提供的寄存器中,然后对寄存器的内容(字a、b)调用乘法器电路12。乘法器12对存储在控制器11的寄存器中的操作数a、b执行乘法运算。乘法器12将操作数相乘,例如执行模n乘法R=a·b mod n,并且将结果R写入RAM存储器13。
参照常规处理设备架构,控制器11和乘法器12可以对应于诸如CPU等处理电路的控制电路和ALU,而存储器13可以相对于处理设备10位于外部。
在非对称密码术中,可以使用例如涉及实施模幂的乘法循环的RSA(Rivest-Shamir-Adleman,李维斯特-萨默尔-阿德曼)密码术、或者涉及实施椭圆曲线标量乘法的乘法循环的ECC(Elliptic Curve Cryptography,椭圆曲线密码术)。
在ECC密码术中,实施主循环,该主循环实施对应于点P的操作数与秘密密钥k的迭代点乘法,以获得kP,例如如以下一组指令(1)所示,表示每个秘密密钥k比特或一组比特ki的迭代:
L1.如果ki=0:
L2.Q1=Add(Q1,Q0)
L3.Q0=Double(Q0)
L4.否则:
L5.Q0=Add(Q0,Q1)
L6.Q1=Double(Q1)(1)
其中ki是秘密密钥k的第i个比特或连续比特的组,例如字,Q0、Q1分别是第一循环变量和第二循环变量,它们被分配以从控制器单元11的寄存器中的对应地址读取点P的值,例如Q0被设置为零值,并且Q1=P,Add和Double是求和以及乘2运算。Q1、Q0对应于由齐次坐标(X,Y,Z)以投影格式表达的点,其中点(x,y)=X/Z,Y/Z。Q0被设置为零值,该值表示由Z=0表示的齐次坐标的无穷远点。在迭代开始时,将Q0设置为零值,并且Q1=P,然后取决于秘密密钥k的比特,它们在不同的迭代期间采用不同的值。运算L1-L6的集合也称为蒙哥马利阶梯,并且可以用于实施模幂或标量乘法。当定时暴露于执行侧信道攻击的攻击者时,蒙哥马利阶梯可能是有益的。
其他投影格式可以是例如(x,y)=X/Z2,Y/Z3或另一格式,此处描述的解决方案适于具有合适数量的乘法的不同格式。例如,如果投影格式为(x,y)=X/Z2,Y/Z3,则随机化可以是
X=((X*r)mod N)*r mod N
Y=(((Y*r)mod N)*r mod N)*r mod N
Z=Z*r mod N
其中N是椭圆曲线密码术在其上被实施的有限域的阶数或大小。
点乘法的主循环(1)因此包括:
针对秘密密钥k的每个比特或多组连续比特ki,例如每个第i个比特ki
如果这样的比特ki为零,则将被写入与操作数变量相对应的控制器11寄存器的同一地址的第二循环变量Q1设置为等于两个变量Q1、Q0的和,并且将第一变量Q0乘以二,
否则,第一变量Q0等于两个变量Q1、Q0的和,并且将第二变量Q1乘以二。
水平攻击的三个家族通常被标识:
对秘密比特操纵的攻击
对地址的攻击
对数据的攻击
具体地,关于对数据的攻击,可以基于两次迭代的输入和输出值来执行这样的攻击。
例如,在ECC的情况下,如果将在迭代i的Double操作的输出用作步骤i+1的Double操作的输入,则ki=ki+1,并且攻击者可以识别该模式。
已知的解决方案涉及,在每次迭代i,例如针对秘密密钥k的每个比特ki,通过使用具有给定模值N的蒙哥马利乘法将投影格式坐标的这样的值X、Y、Z乘以随机值、定义有限域的阶数或大小(这样的模值N由比特数n表示,比特数n通常等于操作数的比特长度l)来对表示第一变量Q0和第二变量Q1的投影格式坐标的值X、Y、Z执行随机化,ECC密码术的点以投影格式被表达。
例如,它是由整数随机生成函数randint(sv,ev)(在Python、Java或Matlab语言中已知的函数)在从给定起始值sv(例如1)到N-1的结束值ev的范围上生成的随机整数r,N是定义被用于表示操作数的有限域的阶数的值。因此,阶数N可以是例如2256-2224+2192+296-1,它是质数。为了效率起见,可以选择N作为接近字的倍数的质数,略小于2m*WS,WS是字长并且m为倍数值,但是它也可以更小。
r=randint(1,N-1)
整数随机生成函数randint是包括从TRNG(真随机数生成器)或CSPRNG(密码强伪随机数生成器)获得随机比特的运算的示例。
每个新的齐次坐标nX、nY、NZ是通过将当前投影格式坐标的值X、Y、Z乘以随机值r来获得的,其使用以给定模值p利用蒙哥马利乘法过程的乘法:
nX=X*r mod N
nY=Y*r mod N
nZ=Z*r mod N
对于点(x,y)x=nX/nZ=X*r/Z*r=X/Z,结果仍然正确
可以使用这样的方法,但是相对于模乘(modular multiplication),随机化运算必须是快速的。
而且,即使将随机化运算设计得足够快,蒙哥马利乘法的形式也有另一不便之处:
Figure BDA0002903603720000051
其中a是通用的第一蒙哥马利操作数,例如第一循环变量Q0的坐标,b是通用的第二蒙哥马利操作数,例如第二循环变量Q1的坐标,并且N′是由单个字构成的元素。l是表示投影格式坐标的值X、Y、Z的值的给定比特数,并且是蒙哥马利乘法的参数。如果期望执行整数模N的模乘,则给定的比特数l为2的幂且大于N。
以比特表达的参数l取决于实施方式,并且遵守条件l>=比特大小(N)。
假设a和b以2l为界,则计算成本大约是
Figure BDA0002903603720000052
次字乘法,其中WS指示系统字长。即使第二操作数b的值小,值(abN′mod 2l)仍然是大值,即使b的值小,(abN′mod 2l)N的计算成本也是
Figure BDA0002903603720000053
次字乘法,其因为l>=n,至少为
Figure BDA0002903603720000054
发明内容
实施例可以涉及在利用给定字长来操作的处理设备中对数据执行密码运算的技术。在一个实施例中,在具有给定阶数的有限域上操作的非对称密码过程被应用,所述非对称密码过程包括在表示由投影格式坐标表达的曲线点的至少一个操作数与秘密密钥之间执行标量乘法运算,所述标量乘法运算包括:在每次迭代针对秘密密钥的每一个或每组连续比特执行运算集合的迭代过程,所述乘法过程包括:在每次迭代,通过将投影格式坐标的这样的值乘以随机值,来使表示所述至少一个操作数的投影格式坐标的、由给定比特数表示的所述值随机化。
实施例可以提供一种用于在处理设备中对数据执行密码运算的方法,包括使用变量的随机化执行乘法运算,该方法解决了现有技术的缺点,并且特别是快速的并且具有低计算成本。
一个或多个实施例可以涉及一种执行该方法的对应的处理设备以及计算机程序产品,该计算机程序产品可以被加载到至少一个计算机的存储器中并且包括能够在该产品在至少一个计算机上运行时执行该方法的步骤的部分软件代码。如本文所使用的,对这样的计算机程序产品的引用被理解为等同于对包含用于控制处理系统以便协调根据实施例的方法的实施的指令的计算机可读部件的引用。对“至少一个计算机”的引用显然旨在强调以模块化和/或分布式形式实施本实施例的可能性。
根据本文描述的解决方案的实施例,用于在利用给定字长来操作的处理设备中对数据执行密码运算的方法,包括应用在具有给定阶数的有限域上操作的非对称密码过程,所述非对称密码过程包括在表示由投影格式坐标表达的曲线点的至少一个操作数与秘密密钥之间执行标量乘法运算,
所述标量乘法运算包括:在每次迭代针对秘密密钥的每个比特或每组连续比特执行运算集合的迭代过程,
所述乘法过程包括:在每次迭代,以及
通过将投影格式坐标的这样的值乘以随机值,使表示所述至少一个操作数的投影格式坐标的、由给定比特数表示的值随机化,
其中
所述随机化运算包括所述随机值作为随机生成值与第二值的乘积被获取,随机生成值在具有第一给定值作为结束值的范围上被生成,第二值大于所述第一给定值,并且
所述第一给定值是2的字长或字长的倍数次幂减去一,所述第二值等于2的所述给定比特数次幂除以第一值,所述倍数中的字长的乘法器值是小整数,至少小于所述给定比特数与字长之比。
在变型实施例中,针对所述乘法器值的上限是4,具体地所述倍数中的所述乘法器值是1或2。
在变型实施例中,所述随机值被生成为在具有值一作为起始值的范围内所选择的随机值。
在变型实施例中,所述非对称密码过程是ECC程序,至少一个操作数是椭圆曲线上的点,并且乘法运算是ECC标量乘法。
在变型实施例中,所述运算集合表示蒙哥马利阶梯运算。
在变型实施例中,所述迭代过程包括执行所述蒙哥马利阶梯,由至少一个操作数实施秘密密钥的迭代点乘法,分配第一循环变量和第二循环变量,包括执行表示运算集合的所述蒙哥马利阶梯,包括:
对于秘密密钥的每个比特,如果这样的比特为零,则将第二变量设置为等于两个变量的和,并且将第一变量乘以二;
否则,第一变量等于两个变量的和,并且将第二变量乘以二;以及
对表达所述第一变量和第二变量的投影格式坐标执行所述随机化运算。
在变型实施例中,所述迭代过程通过将秘密密钥的比特划分为多组连续比特而被执行,并且包括在每次迭代针对秘密密钥的每组比特执行运算集合。
所描述的实施例还涉及被配置为执行任何前述实施例的方法的步骤的处理设备的实施例。
此处描述的实施例还涉及一种计算机程序产品,该计算机程序产品可以被加载到至少一个计算机的存储器中,并且包括能够在产品在至少一个计算机上运行时执行任何前述实施例的方法的步骤的部分软件代码。
在一个实施例中,一种方法包括在利用字长来操作的处理设备中对数据执行密码运算的方法,包括应用在具有阶数的有限域上操作的非对称密码过程,该非对称密码过程包括在表示由投影格式坐标表达的曲线点的至少一个操作数与秘密密钥之间执行标量乘法运算,该标量乘法运算包括:在每次迭代对该秘密密钥的比特或一组连续比特执行运算集合的迭代过程,该乘法运算包括:在每次迭代,通过将该投影格式坐标的值乘以随机值,来使表示该至少一个操作数的该投影格式坐标的、由比特数表示的该值随机化,其中使值随机化包括:在具有第一值作为结束值的范围上生成随机数,并且将该随机数与大于该第一值的第二值相乘,该第一值是2的该字长乘以乘法器值次幂减去1,该第二值等于2的该比特数次幂除以该第一值,该乘法器值是大于或等于一、并且小于该比特数与该字长之比的整数。在一个实施例中,针对该乘法器值的上限是4。在一个实施例中,乘法器值是1或2。在一个实施例中,范围的起始值是1。在一个实施例中,非对称密码过程是椭圆曲线密码术(ECC)过程,该至少一个操作数是椭圆曲线上的点,并且该乘法运算是ECC标量乘法。在一个实施例中,运算集合表示蒙哥马利阶梯。在一个实施例中,该迭代过程的每次迭代是对该秘密密钥的比特执行的,并且包括:如果这样的比特为零,则将该第二变量设置为等于该两个变量的和,并且将该第一变量乘以二;否则,将该第一变量设置为等于该两个变量的该和,并且将该第二变量乘以二;以及对表达该第一变量和第二变量的该投影格式坐标执行该随机化运算。在一个实施例中,该迭代过程通过将该秘密密钥的该比特划分为多组连续比特而被执行,并且包括在每次迭代针对该秘密密钥的一组比特执行运算集合。
在一个实施例中,一种装置包括:存储器;以及具有字长、并且被耦合至所述存储器的密码电路装置,其中所述密码电路装置在运算中应用在具有阶数的有限域上操作的非对称密码过程,所述非对称密码过程包括在表示由投影格式坐标表达的曲线点的至少一个操作数与秘密密钥之间执行标量乘法运算,所述标量乘法运算包括:在每次迭代针对所述秘密密钥的比特或一组连续比特执行运算集合的迭代过程,所述乘法运算包括:在每次迭代,通过将所述投影格式坐标的值乘以随机值,来使表示所述至少一个操作数的所述投影格式坐标的、由比特数表示的所述值随机化,其中使值随机化包括在具有第一值作为结束值的范围上生成随机数,并且将所述随机数与大于所述第一值的第二值相乘,所述第一值是2的所述字长乘以乘法器值次幂减去1,所述第二值等于2的所述比特数次幂除以所述第一值,所述乘法器值是大于或等于一、并且小于所述比特数与所述字长之比的整数。在一个实施例中,针对乘法器值的上限是4。在一个实施例中,乘法器值是1或2。在一个实施例中,范围的起始值是1。在一个实施例中,非对称密码过程是椭圆曲线密码术(ECC)程序,至少一个操作数是椭圆曲线上的点,并且乘法运算是ECC标量乘法。在一个实施例中,运算集合表示蒙哥马利阶梯。在一个实施例中,迭代过程的每次迭代是对秘密密钥的比特执行的,并且包括:如果这样的比特为零,则将第二变量设置为等于两个变量的和,并且将第一变量乘以二;否则,将第一变量设置为等于两个变量的和,并且将第二变量乘以二;以及对表达第一变量和第二变量的投影格式坐标执行随机化运算。在一个实施例中,迭代过程通过将秘密密钥的比特划分为多组连续比特而被执行,并且包括在每次迭代针对秘密密钥的一组比特执行运算集合。
在一个实施例中,一种非瞬态计算机可读介质,具有内容,该内容将处理设备配置为使用字长对数据执行密码运算,所述执行密码运算包括应用在具有阶数的有限域上操作的非对称密码过程,所述非对称密码过程包括在表示由投影格式坐标表达的曲线点的至少一个操作数与秘密密钥之间执行标量乘法运算,所述标量乘法运算包括:在每次迭代对所述秘密密钥的比特或一组连续比特执行运算集合的迭代过程,所述乘法运算包括:在每次迭代,通过将所述投影格式坐标的值乘以随机值,来使表示所述至少一个操作数的所述投影格式坐标的、由比特数表示的所述值随机化,其中使值随机化包括在具有第一值作为结束值的范围上生成随机数,并且将所述随机数与大于所述第一值的第二值相乘,所述第一值是2的所述字长乘以乘法器值次幂减去1,所述第二值等于2的所述比特数次幂除以所述第一值,所述乘法器值是大于或等于一、并且小于所述比特数与所述字长之比的整数。在一个实施例中,针对乘法器值的上限是4。在一个实施例中,乘法器值是1或2。在一个实施例中,内容包括由处理设备的密码电路装置执行的指令。
附图说明
现在将参照附图仅通过非限制性示例来描述本公开,其中:
图1已经在前面讨论了;以及
图2表示此处描述的方法的实施例的流程图。
具体实施方式
随后的描述图示了旨在深入理解实施例的各种具体细节。可以在没有一个或多个具体细节的情况下或在具有其他方法、组件、材料等的情况下实施实施例。在其他情况下,未详细图示或描述已知的结构、材料或运算,使得实施例的各个方面不会被遮盖。
在本描述的框架中对“实施例”或“一个实施例”的引用旨在指示关于该实施例描述的特定配置、结构或特性被包括在至少一个实施例中。同样地,在本描述的各个点中可能出现的诸如“在一个实施例中”或“在一个实施例中”等短语不一定指一个相同的实施例。此外,在一个或多个实施例中,可以适当地组合特定的构象、结构或特性。
本文使用的引用仅出于方便的目的,因此不限定保护范围或实施例的范围。
此处描述的解决方案涉及一种用于在利用给定字长来操作的处理设备中对数据执行密码运算的方法,包括应用在具有给定阶数的有限域上操作的非对称密码过程,该非对称密码过程包括在表示由投影格式坐标表达的曲线点的至少一个操作数与秘密密钥之间执行标量乘法运算,该标量乘法运算包括:在每次迭代针对秘密密钥的每个比特或每组连续比特执行运算集合的迭代过程,乘法过程包括:在每次迭代,通过将投影格式坐标的这样的值乘以随机值,使表示所述至少一个操作数的投影格式坐标的、由给定比特数表示的值随机化,例如使用点乘法(诸如蒙哥马利乘法),其中随机值是被乘以大整数的小整数,其可以被视为一个或若干字。具体地,随机化运算包括:随机值作为随机生成值与第二值的乘积被获取,该随机生成值是在具有第一给定值作为结束值的范围上生成的,该第二值大于第一给定值。具体地,第一给定值是2的字长或字长的倍数次幂减去一,第二值等于2的所述给定比特数次幂除以第一值,所述倍数中的字长的乘法器值是小整数,至少小于所述给定比特数与字长之比。
因此,在一个实施例中,由整数随机生成函数randint(sv,ev)生成随机整数值r,该函数在从给定起始值sv(例如1)到结束值ev(其为2的字长的值次幂减去一2m*WS-1)的范围上生成随机数,其中m是小整数乘法器数字(例如m=1或m=2)。这里给定有限域阶数N,WS指示字长,并且w是操作数的字的大小,即操作数的字数,操作数诸如ECC点坐标X(Q0)可以通过多项式表示被表示:
Q0=an*2w*WS+an-1*2w-1*WS+...+a1*21*WS+a0
其中an...a0是多项式系数。例如,N的比特大小为1024,字长WS为16比特,并且表示操作数所需的字数w为64。
例如,N是质数,如所提及的,其定义有限域。在又一实施例中,N的比特大小n可以接近值256。值字长WS可以例如是8、16、32或64。
操作数以蒙哥马利表示所表示,并且通过定义,它们小于2l,其中操作数长度l>=比特大小(N)。在大多数情况下,操作数长度等于有限域N的比特大小n,l=n,但是有时操作数长度比比特大小n大例如字长WS,l=n+WS。
表示操作数的字数w为l/WS,操作数位长度l与字长WS之比。
将randint函数的结果乘以大于随机值范围的结束值ev的数字,特别是作为2l-m*WS大得多,2的操作数的所述长度l与字长WS的小倍数即m*WS之间的差次幂。m是乘法器,其是小整数。当被设置为最小值m=1时,乘法器m可以提供最低的计算成本,然而,如果m=2,则计算成本会更大,但随机化会更有效。如以下还指示的,其他选择也是可能的,为了降低计算成本,乘法器m至少应比操作数的长度l与字长WS之比小得多。
因此,乘法器m的值的选择通常可以是1或2。乘法器m可以理想地小于或等于阶数N除以字长WS,m<=N/WS或m*WS<=N
r=randint(1,2m*WS-1)*2l-m*WS
随机值r的最大值通常可以低于2m*WS-1。
因此,通过随机生成函数randint,随机化运算获得随机值r是作为随机生成值与较大(例如比第一值大(的多))的第二值2l-m*WS的乘积被获得的,随机生成值在具有第一给定值2m*WS作为结束值ev的范围上被生成,第一值和第二值是2的幂,其指数的和等于操作数的长度l。
然后,通过使用利用蒙哥马利乘法过程的乘法将当前投影格式坐标的值X、Y、Z乘以随机值r,来获得各个新的齐次坐标nX、nY、NZ:
nX=MM(X,r)
nY=MM(Y,r)
nZ=MM(Z,r)
蒙哥马利乘法仍然是:
Figure BDA0002903603720000121
这允许简化为:
ab=a*randint(1,2m*WS-1)*2l-m*WS,其中a*randint(1,2m*WS-1)的计算需要
Figure BDA0002903603720000131
次字乘法,而(a*randint(1,2(m*WS)-1)和2l-m*WS之间的乘法的计算成本与在蒙哥马利域中执行的乘法次数相比可以忽略不计;以及
abN′mod21=wrd*2l-m*WS,其中wrd是以2m*WS为上限的值,因此(abN′mod21)N=wrd*N*2l-m*WS,因此(abN′mod21)N的计算成本是m*n/WS次字乘法。而且:
wrd=a*randint()*N′mod 2(WS)
从而,该蒙哥马利乘法的总成本为
Figure BDA0002903603720000132
在图2中,示出了此处描述的方法的运算的实施例100的示例性流程图。
该实施例涉及ECC密码术,并且表示已经描述的主循环L1-L6的步骤,其使用循环变量Q1和Q0来实施ECC曲线点P与秘密密钥的迭代点乘法。因此,S0指示如下点:从第一比特(例如i=0)开始,ECC密码术针对秘密密钥k的每个第i个比特ki在该点迭代执行循环的执行。步骤S1是与返回步骤S5一起实施迭代循环的测试,具体地验证是否i=n,针对所有比特ki的所有循环迭代都已被执行。肯定的是,该程序继续进行随机化S2和标量乘法L2-L6。否则,该程序结束S6。然后,对于每次迭代,循环变量Q0、Q1中的齐次坐标X、Y、Z经受随机化S2,通过将投影格式坐标的这样的值X、Y、Z与随机值r相乘,使表示第一变量和第二变量的投影格式坐标的值X,Y,Z随机化。操作S2的这样的值随机r由步骤S3提供,其中通过函数randint获得所述随机值r作为随机生成值与大于第一值的第二值2l-m*WS的乘积,该随机生成值在具有第一给定值2m*WS-1作为结束值ev的范围上被生成,所述第一值和第二值是2的幂,其指数的和等于操作数的长度l,第一值的指数是第二值的因数。具体地,随机值r被生成为在具有2的字长WS的小倍数的值次幂作为结束值ev的范围中所选择的随机值乘以2的如下次幂:操作数的所述长度l与字长WS值的所述小倍数之间的差次幂。因此,步骤S3被示出为从处理设备10的存储器或与处理设备1相关联的另一控制处理器接收起始sv、结束ev、阶数N、长度l、字长WS的值。
然后,步骤S2输出变量Q1、Q0的随机坐标nX、nY、NZ,对该变量Q1、Q0执行点乘法的主循环,例如因此包括例如在步骤L1中针对秘密密钥k的每个比特ki被检查其值。
如果这样的比特ki为零,则将被写入与操作数变量相对应的控制器11寄存器的同一地址中的第二变量Q1设置为等于两个变量Q1、Q0的和,并且将第一变量Q0乘以2(运算L2、L3),否则第一变量Q0等于两个变量Q1、Q0的和,并且将第二变量Q1乘以2(运算L5、L6)。
在这两种情况下,两个变量Q1、Q0的值在每次迭代(操作S4)中都被存储在RAM存储器13中,然后作为最终结果R将被存储在RAM13中,作为迭代结束时乘法的结果,例如当i=n时,密钥k的所有比特ki已被使用,并且迭代标量乘法100结束(操作S6)。在RAM 13中存储S4之后,执行返回步骤S0以递增索引i。
根据此处描述的各种实施例的解决方案有助于获得以下优点。
该解决方案有利地使用与随机字的模乘作为随机化运算,这在计算成本方面降低了成本。
具有单个随机字的标准蒙哥马利乘法将花费
Figure BDA0002903603720000141
次字乘法。本文描述的解决方案涉及
Figure BDA0002903603720000142
次字乘法的计算成本。
有利地,本文没有二次项,只要乘法器m<<l/WS,例如如果l为1024并且WS64,则乘法器m应该远小于16。在变型实施例中,乘法器m的值的上限是4。
由于每次迭代需要至少三次乘法,因此与完整的模乘相比,这大大减少了延迟。
当然,在不损害实施例的原理的情况下,构造和实施例的细节可以相对于仅通过示例的方式在本文中描述和图示的内容大范围地变化,而不脱离本实施例的范围,如随后的权利要求所定义的。
在所描述的实施例中,迭代过程包括在每次迭代针对秘密密钥k的每一个比特ki执行运算集合L2-L6。然而,迭代过程可以被执行,将秘密密钥k的比特划分为多组连续比特,例如比特对(ki,ki+1)或该组中更多的比特数,并且包括在每次迭代针对秘密密钥k的每组比特执行运算集合,当然执行的迭代次数较少,此处用K指示。例如,在这样的情况下,迭代过程可以是:
对于i,从0到K:
Q=2*Q
Q=Q+T[ew]
其中Q是唯一的中间变量,并且T是包含输入点的2W倍数的表格,w是操作数的字长,ew是大小w的k比特的组。
由于攻击者可能会注意到在标量窗口(T[ew])相同的所有迭代中都使用了表格T[ew]来获取关于秘密密钥k的信息,因此提供了加载表格T[ew],并且通过将投影格式坐标的这样的值X、Y、Z乘以随机值r使表示操作数的投影格式坐标的、由给定比特数1表示的值X、Y、Z随机化来将它随机化,通过这样的随机化,操作S2包括获得随机值r作为随机生成值与大于第一给定值2m*WS的第二值2l-m*WS的乘积,该随机生成值在具有第一给定值2m*WS作为结束值ev的范围上被生成,这样的第一值2m*WS是2的字长WS或字长WS的倍数m*WS次幂减去一,第二值2l-m*WS等于2的操作数的长度1次幂除以第一值2m*WS,所述倍数m*WS中的乘法器值m是小整数。
在此处描述的方法中,标量乘法的输入值是整数(秘密密钥k)和点,例如Q0或Q。然后,迭代过程的循环通过执行点加法来在(至少)两个点上计算。如果针对每次迭代处理了密钥k的多于一个比特,则循环将在多于两个点上进行计算。
此外,虽然此处参照椭圆曲线乘法中的点乘法作为蒙哥马利阶梯的实施方式描述了实施例,但是此处描述的方法可以应用于其他标量乘法,诸如Double和Add、加窗方法、滑动窗口方法、w进制(w-ary)非相邻形式(wNAF)方法或其他方法,包括通过将投影格式坐标的这样的值乘以随机值,来使表示至少一个操作数的投影格式坐标的、由给定比特数表示的值随机化的运算,而且在这样的情况下,随机化运算还包括:获得所述随机值作为随机生成值与大于第一给定值的第二值的乘积,该随机生成值在具有第一给定值作为结束值的范围上被生成,第一值是2的字长或字长的倍数次幂,所述第二值等于2的操作数的长度次幂除以第一值,所述倍数中的乘法器值是小整数。
一些实施例可以采取计算机程序产品的形式或包括计算机程序产品。例如,根据一个实施例,提供了一种计算机可读介质,其包括适用于执行上述方法或功能中的一个或多个的计算机程序。介质可以是物理存储介质,诸如例如只读存储器(ROM)芯片,或者可以是磁盘,诸如数字通用光盘(DVD-ROM)、压缩盘(CD-ROM)、硬盘、存储器、网络或由适当的驱动程序或经由适当的连接读取的便携式介质物品,包括以存储在一个或多个这样的计算机可读介质上的一个或多个条形码或其他相关代码编码并且由适当的读取器设备可读的。
此外,在一些实施例中,可以以其他方式来实施或提供一些或全部方法和/或功能性,诸如至少部分地以固件和/或硬件实施,包括但不限于一个或多个专用集成电路(ASIC)、数字信号处理器、离散电路装置、逻辑门、标准集成电路、控制器(例如通过执行适当的指令,并包括微控制器和/或嵌入式控制器)、现场可编程门阵列(FPGA)、复杂可编程逻辑设备(CPLD)等以及采用RFID技术的设备及其各种组合。
可以组合上述各种实施例以提供其他实施例。如果需要采用各种专利、申请和出版物的概念以提供其他实施例,则可以修改实施例的各个方面。
鉴于上面详述的描述,可以对实施例进行这些和其他改变。通常,在以下权利要求中,所使用的术语不应被解释为将权利要求限于本说明书和权利要求中所公开的具体实施例,而是应被解释为包括所有可能的实施例以及这样的权利要求所赋予的等效物的全部范围。因此,权利要求不受本公开的限制。

Claims (20)

1.一种在利用字长来操作的处理设备中对数据执行密码运算的方法,包括应用在具有阶数的有限域上操作的非对称密码过程,所述非对称密码过程包括在表示由投影格式坐标表达的曲线点的至少一个操作数与秘密密钥之间执行标量乘法运算,所述标量乘法运算包括:在每次迭代针对所述秘密密钥的比特或一组连续比特执行运算集合的迭代过程,所述乘法运算包括:在每次迭代,
通过将所述投影格式坐标的值乘以随机值,来使表示所述至少一个操作数的所述投影格式坐标的、由比特数表示的所述值随机化,
其中
使值随机化包括:在具有第一值作为结束值的范围上生成随机数,并且将所述随机数与大于所述第一值的第二值相乘,
所述第一值是2的所述字长乘以乘法器值次幂减去1,
所述第二值等于2的所述比特数次幂除以所述第一值,所述乘法器值是大于或等于一、并且小于所述比特数与所述字长之比的整数。
2.根据权利要求1所述的方法,其中针对所述乘法器值的上限是4。
3.根据权利要求1所述的方法,其中所述乘法器值是1或2。
4.根据权利要求1所述的方法,其中所述范围的起始值是1。
5.根据权利要求1所述的方法,其中所述非对称密码过程是椭圆曲线密码术(ECC)过程,所述至少一个操作数是椭圆曲线上的点,并且所述乘法运算是ECC标量乘法。
6.根据权利要求5所述的方法,其中所述运算集合表示蒙哥马利阶梯。
7.根据权利要求6所述的方法,其中所述迭代过程的每次迭代是对所述秘密密钥的比特执行的,并且包括:
如果这样的比特为零,则将所述第二变量设置为等于所述两个变量的和,并且将所述第一变量乘以二;
否则,将所述第一变量设置为等于所述两个变量的所述和,并且将所述第二变量乘以二;以及
对表达所述第一变量和第二变量的所述投影格式坐标执行所述随机化运算。
8.根据权利要求1所述的方法,其中所述迭代过程通过将所述秘密密钥的所述比特划分为多组连续比特而被执行,并且包括在每次迭代针对所述秘密密钥的一组比特执行运算集合。
9.一种装置,包括:
存储器;以及
具有字长、并且被耦合至所述存储器的密码电路装置,其中所述密码电路装置在运算中应用在具有阶数的有限域上操作的非对称密码过程,所述非对称密码过程包括在表示由投影格式坐标表达的曲线点的至少一个操作数与秘密密钥之间执行标量乘法运算,所述标量乘法运算包括:在每次迭代针对所述秘密密钥的比特或一组连续比特执行运算集合的迭代过程,所述乘法运算包括:在每次迭代,通过将所述投影格式坐标的值乘以随机值,来使表示所述至少一个操作数的所述投影格式坐标的、由比特数表示的所述值随机化,其中
使值随机化包括在具有第一值作为结束值的范围上生成随机数,并且将所述随机数与大于所述第一值的第二值相乘,
所述第一值是2的所述字长乘以乘法器值次幂减去1,
所述第二值等于2的所述比特数次幂除以所述第一值,所述乘法器值是大于或等于一、并且小于所述比特数与所述字长之比的整数。
10.根据权利要求9所述的装置,其中针对所述乘法器值的上限是4。
11.根据权利要求9所述的装置,其中所述乘法器值是1或2。
12.根据权利要求9所述的装置,其中所述范围的起始值是1。
13.根据权利要求9所述的装置,其中所述非对称密码过程是椭圆曲线密码术(ECC)过程,所述至少一个操作数是椭圆曲线上的点,并且所述乘法运算是ECC标量乘法。
14.根据权利要求13所述的装置,其中所述运算集合表示蒙哥马利阶梯。
15.根据权利要求14所述的装置,其中所述迭代过程的每次迭代是对所述秘密密钥的比特执行的,并且包括:
如果这样的比特为零,则将所述第二变量设置为等于所述两个变量的和,并且将所述第一变量乘以二;
否则,将所述第一变量设置为等于所述两个变量的所述和,并且将所述第二变量乘以二;以及
对表达所述第一变量和第二变量的所述投影格式坐标执行所述随机化运算。
16.根据权利要求9所述的装置,其中所述迭代过程通过将所述秘密密钥的所述比特划分为多组连续比特而被执行,并且包括在每次迭代针对所述秘密密钥的一组比特执行运算集合。
17.一种非瞬态计算机可读介质,具有内容,所述内容将处理设备配置为使用字长对数据执行密码运算,所述执行密码运算包括应用在具有阶数的有限域上操作的非对称密码过程,所述非对称密码过程包括:在表示由投影格式坐标表达的曲线点的至少一个操作数与秘密密钥之间执行标量乘法运算,所述标量乘法运算包括:在每次迭代针对所述秘密密钥的比特或一组连续比特执行运算集合的迭代过程,所述乘法运算包括:在每次迭代,
通过将所述投影格式坐标的值乘以随机值,来使表示所述至少一个操作数的所述投影格式坐标的、由比特数表示的所述值随机化,
其中
所述随机值是随机数与第二值的乘积,所述随机数是在具有第一值作为结束值的范围上生成的,所述第二值大于所述第一值,
所述第一值是2的所述字长乘以乘法器值次幂减去1,
所述第二值等于2的所述比特数次幂除以所述第一值,所述乘法器值是大于或等于一、并且小于所述比特数与所述字长之比的整数。
18.根据权利要求17所述的非瞬态计算机可读介质,其中针对所述乘法器值的上限是4。
19.根据权利要求17所述的非瞬态计算机可读介质,其中所述乘法值是1或2。
20.根据权利要求17所述的非瞬态计算机可读介质,其中所述内容包括由所述处理设备的密码电路装置执行的指令。
CN202110063631.8A 2020-01-17 2021-01-18 用于在处理设备、对应的处理设备和计算机程序产品中对数据执行密码运算的方法 Pending CN113141255A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IT102020000000886A IT202000000886A1 (it) 2020-01-17 2020-01-17 Procedimento per eseguire operazioni di crittografia su dati in un dispositivo di elaborazione, corrispondenti dispositivo di elaborazione e prodotto informatico
IT102020000000886 2020-01-17

Publications (1)

Publication Number Publication Date
CN113141255A true CN113141255A (zh) 2021-07-20

Family

ID=70155205

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110063631.8A Pending CN113141255A (zh) 2020-01-17 2021-01-18 用于在处理设备、对应的处理设备和计算机程序产品中对数据执行密码运算的方法

Country Status (3)

Country Link
US (1) US11502836B2 (zh)
CN (1) CN113141255A (zh)
IT (1) IT202000000886A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908635A (zh) * 2019-11-04 2020-03-24 南京大学 基于同源曲线的后量子密码学的高速模乘器及其模乘方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022045614A (ja) * 2020-09-09 2022-03-22 キオクシア株式会社 演算装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100322422A1 (en) * 2007-05-02 2010-12-23 King Fahd University Of Petroleum And Minerals Method for elliptic curve scalar multiplication using parameterized projective coordinates
CN109791517A (zh) * 2016-12-21 2019-05-21 密码研究公司 保护并行乘法运算免受外部监测攻击

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240084B2 (en) 2002-05-01 2007-07-03 Sun Microsystems, Inc. Generic implementations of elliptic curve cryptography using partial reduction
US8781110B2 (en) 2007-06-30 2014-07-15 Intel Corporation Unified system architecture for elliptic-curve cryptography
US9400636B2 (en) 2011-02-11 2016-07-26 Infineon Technologies Ag Apparatus and method for calculating a result in a scalar multiplication
FR3001315B1 (fr) * 2013-01-18 2016-05-06 Inside Secure Procede de cryptographie comprenant une operation de multiplication par un scalaire ou une exponentiation
US9391773B2 (en) * 2014-04-04 2016-07-12 Qualcomm Incorporated Elliptic curve point multiplication procedure resistant to side-channel information leakage
WO2015199675A1 (en) * 2014-06-25 2015-12-30 Umm Al-Qura University System and method for securing scalar multiplication against differential power attacks
EP3704831A4 (en) 2017-10-30 2021-06-02 Stc.Unm SYSTEM AND METHODS FOR SIDE CHANNEL POWER RESISTOR FOR ENCRYPTION ALGORITHMS USING DYNAMIC PARTIAL RECONFIGURATION
EP3503460A1 (en) 2017-12-22 2019-06-26 Secure-IC SAS System and method for boolean masked arithmetic addition
DE102018113475A1 (de) 2018-06-06 2019-12-12 Infineon Technologies Ag Rechenwerk zum rechnen mit maskierten daten
US11983280B2 (en) 2019-01-07 2024-05-14 Cryptography Research, Inc. Protection of cryptographic operations by intermediate randomization
FR3095709B1 (fr) 2019-05-03 2021-09-17 Commissariat Energie Atomique Procédé et système de masquage pour la cryptographie
DE102020102453A1 (de) * 2020-01-31 2021-08-05 Infineon Technologies Ag Integrierte Schaltung zum modularen Multiplizieren von zwei ganzen Zahlen für ein kryptographisches Verfahren und Verfahren zur kryptographischen Verarbeitung von Daten basierend auf modularer Multiplikation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100322422A1 (en) * 2007-05-02 2010-12-23 King Fahd University Of Petroleum And Minerals Method for elliptic curve scalar multiplication using parameterized projective coordinates
CN109791517A (zh) * 2016-12-21 2019-05-21 密码研究公司 保护并行乘法运算免受外部监测攻击

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908635A (zh) * 2019-11-04 2020-03-24 南京大学 基于同源曲线的后量子密码学的高速模乘器及其模乘方法

Also Published As

Publication number Publication date
US20210226789A1 (en) 2021-07-22
IT202000000886A1 (it) 2021-07-17
US11502836B2 (en) 2022-11-15

Similar Documents

Publication Publication Date Title
US8024391B2 (en) Modular multiplication method with precomputation using one known operand
EP1320027B1 (en) Elliptic curve cryptosystem apparatus, method and program
EP0917047B1 (en) Apparatus for modular inversion for information security
US20210243006A1 (en) Integrated circuit for modular multiplication of two integers for a cryptographic method, and method for the cryptographic processing of data based on modular multiplication
JP2008541166A (ja) ランダム化されたモジュラー多項式のリダクション方法およびそのためのハードウェア
EP3115887B1 (en) Method, device and non-transitory computer-readable medium for cryptographic computation
CN113032797B (zh) 在处理设备中执行加密操作的方法
US11502836B2 (en) Method for performing cryptographic operations on data in a processing device, corresponding processing device and computer program product
RU2276465C2 (ru) Криптографический способ и чип-карта для его осуществления
CN101213512A (zh) 保护数据处理设备以抵御攻击或分析的装置和方法
US8417760B2 (en) Device and method for calculating a multiplication addition operation and for calculating a result of a modular multiplication
US8065735B2 (en) Method of securing a calculation of an exponentiation or a multiplication by a scalar in an electronic device
US9042543B2 (en) Method for arbitrary-precision division or modular reduction
JP2009505148A (ja) 暗号化演算における反転操作を行うための回路配置及び方法
JP2006506676A (ja) カバート・チャネル攻撃に対して安全な整数除算法
US8364737B2 (en) Device and method for calculating a result of a sum with a calculating unit with limited word length
US6609141B1 (en) Method of performing modular inversion
CN109299621B (zh) 对迭代计算的防范水平攻击的保护
US20100061547A1 (en) Method of and apparatus for the reduction of a polynomial in a binary finite field, in particular in the context of a cryptographic application
EP3226120B1 (en) Non-modular multiplier, method for non-modular multiplication and computational device
US7590235B2 (en) Reduction calculations in elliptic curve cryptography
US7016927B2 (en) Method and apparatus for modular multiplication
JPH11282351A (ja) セキュリティ技術における逆元演算方法、その方法を使った演算装置、及びその方法を実行するプログラムを記録した記録媒体
JP3779479B2 (ja) Icカード
Knezevic et al. Modular reduction without precomputational phase

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