CN110495133A - 用于生成用于密码应用的素数的方法 - Google Patents

用于生成用于密码应用的素数的方法 Download PDF

Info

Publication number
CN110495133A
CN110495133A CN201880012780.8A CN201880012780A CN110495133A CN 110495133 A CN110495133 A CN 110495133A CN 201880012780 A CN201880012780 A CN 201880012780A CN 110495133 A CN110495133 A CN 110495133A
Authority
CN
China
Prior art keywords
prime number
determination
cardinal
candidate
test
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.)
Granted
Application number
CN201880012780.8A
Other languages
English (en)
Other versions
CN110495133B (zh
Inventor
A.贝尔扎蒂
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 DIS France SA
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 DIS France SA filed Critical Thales DIS France SA
Publication of CN110495133A publication Critical patent/CN110495133A/zh
Application granted granted Critical
Publication of CN110495133B publication Critical patent/CN110495133B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • 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/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/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7204Prime number generation or prime number testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Mathematics (AREA)
  • Signal Processing (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种用于生成素数并在密码应用中使用所述素数的方法,所述方法包括以下步骤:a)确定具有小的大小b=log2(B)比特的至少一个二进制基数B,并且对于每个确定的基数B,确定至少一个小素数pi,使得B mod pi=1,其中i是整数,b)选择素数候选者YP,c)在所述确定的二进制基数中选择的基数B中分解选择的素数候选者YP,d)计算来自针对所述选择的基数的候选者YP的残差yPB,使得,e)测试所述计算的残差yPB是否可被在针对所述选择的基数B的所述确定的小素数中选择的一个小素数pi整除,f)当所述计算的残差yPB不能被所述选择的小素数整除时,迭代地重复上述步骤e),直到在步骤e)处执行的测试证明所述计算的残差yPB不能被针对所述选择的基数B的所述确定的小素数中的任何确定的小素数整除为止,g)当所述计算的残差yPB不能被针对所述选择的基数B的所述确定的小素数中的任何确定的小素数整除时,针对所述确定的二进制基数中的每个基数B迭代地重复步骤c)至f),h)当对于所有确定的基数B,针对确定的基数计算的所述残差yPB不能被针对所述确定的基数B的所述确定的小素数中的任何确定的小素数整除时,对所述候选者YP执行已知的严格可能素性测试,并且当已知的严格可能素性测试是成功时,存储所述素数候选者YP,并在所述密码应用中使用所述存储的素数候选者YP

Description

用于生成用于密码应用的素数的方法
技术领域
本发明涉及用于密码应用的素数生成以及相关联的密码设备的领域,并且更具体地,涉及使用不需要任何GCD计算的共素性测试的快速素数生成。
背景技术
诸如加密或密码密钥生成之类的密码应用通常依赖于素数。因此,执行这样的密码应用的设备,诸如比如智能卡的安全设备,必须生成素数,这是嵌入在这样的设备上的最消耗资源的操作之一。通常使用严格的可能素性测试(诸如Miller-Rabin测试)来测试候选者数的素性。这样的测试是非常昂贵的,可以通过测试候选者与一些已知的小素数的共素性来预先排除候选者。
这样的共素性测试通常基于最大公约数(GCD)计算。然而,这样的GCD计算本身可能是非常昂贵的,尤其是对于具有有限处理能力的设备和/或不包括任何快速除法器的CPU。密码应用的帧中的GCD计算还可能引起安全风险,因为GCD计算泄露可能被用于检索诸如RSA私钥之类的秘密密钥。
因此,存在对能够在不需要GCD计算的情况下安全地生成素数并且具有有限的处理能力要求的密码应用和相关联的设备的需要。
发明内容
为此目的并且根据第一方面,本发明因此涉及一种用于生成素数并在密码应用中使用所述素数的方法,包括以下步骤:
a)经由包括至少一个硬件处理器、测试素性电路和存储器电路的处理系统确定具有小的大小b = log2(B)比特的至少一个二进制基数B,并且对于每个确定的基数B,确定至少一个小素数pi,使得B mod pi = 1,其中i是整数,
b)经由所述硬件处理器选择素数候选者YP
c)经由所述硬件处理器,在所述确定的二进制基数中选择的基数B中分解选择的素数候选者YP
d)经由所述硬件处理器计算来自针对所述选择的基数的候选者YP的残差yPB,使得
e)经由所述测试素性电路测试所述计算的残差yPB是否可被在针对所述选择的基数B的所述确定的小素数中选择的一个小素数pi整除,
f)当所述计算的残差yPB不能被所述选择的小素数整除时,经由所述测试素性电路迭代地重复上述步骤e),直到在步骤e)处执行的测试证明所述计算的残差yPB不能被针对所述选择的基数B的所述确定的小素数中的任何确定的小素数整除为止,
g)当在步骤e)处执行的测试已经证明所述计算的残差yPB不能被针对所述选择的基数B的所述确定的小素数中的任何确定的小素数整除时,针对所述确定的二进制基数中的每个基数B迭代地重复步骤c)至f),
h)当对于所有确定的基数B,在步骤e)处执行的测试已经证明针对确定的基数计算的所述残差yPB不能被针对所述确定的基数B的所述确定的小素数中的任何确定的小素数整除时,经由所述测试素性电路对所述候选者YP执行已知的严格可能素性测试,并且当已知的严格可能素性测试是成功时,将所述素数候选者YP存储在所述存储器电路中,并经由密码处理器在所述密码应用中使用所述存储的素数候选者YP
这使得能够高效地测试候选者素数与多个素数的共素性,而无需计算该候选者素数和多个素数之间的任何GCD;并且最后以较低的成本确定素数以便然后在密码应用中使用所述素数。
根据第一方面的方法可以包括:
-在步骤f)中,当所述计算的残差yPB可被所述选择的小素数整除时,经由所述测试素性电路迭代地重复上述步骤e),直到已经针对对于所述选择的基数B的所有所述确定的小素数测试了所述计算的残差yPB可整除性为止,
-在步骤g)中,当所述计算的残差yPB可被所述选择的基数B的所述确定的小素数之一整除,并且已经针对对于所述选择的基数B的所有所述确定的小素数测试了所述计算的残差yPB可整除性时,针对所述确定的二进制基数中的每个基数B迭代地重复步骤c)至f)。
这使得能够使候选者素数的测试过程的执行时间恒定,无论它是否是素数。
根据第一方面的方法可以包括以下步骤:
i)当所述计算的残差yPB可被选择的小素数整除时,或者当已知的严格可能素性测试是失败时,针对新的素数候选者迭代地重复步骤d)至h),直到所述已知的严格可能素性测试是成功为止,其中,对于新的素数候选者YP和选择的基数B,通过以预定的增量递增先前针对另一个素数候选者和所述选择的基数B计算的残差来计算所述残差y PB
在候选者素数已经被丢弃之后,这使得能够继续测试新的候选者素数,直到最终找到素数为止。
在所述密码应用中使用所述存储的素数候选者Y P 可以包括以下各步骤中的至少一个:经由所述密码处理器执行所述密码应用以使用所述存储的素数候选者Y P 来保护数据,和/或经由所述密码处理器使用所述存储的素数候选者Y P 生成密码密钥。
可以以随机顺序执行用于残差计算的总和计算。
使用随机顺序使得能够避免向攻击者泄露关于要测试的候选者素数的信息。
可以确定所述基数以便最大化不同的确定的小素数的数量。
这使得能够在执行严格可能素性测试之前最大化检测候选者素数不是素数的机会,而不增加确定的基数的数量,并因此不增加要执行的候选者素数的分解的数量。
可以基于处理系统的字大小来确定所述基数。
这样的确定基数的方法提高了该方法的步骤的实现的效率。
可以使用Barrett模块化约简来执行测试所述计算的残差yPB是否可被一个小素数pi整除。
这样的约简以乘法运算取代了字除法运算,并且因此降低了这样的测试的成本。
对于确定的基数B,所述确定的小素数pi可以包括3和541之间的所有素数,使得Bmod pi = 1。
针对所确定的素数选择这样的小值降低了测试当在基数B中分解素数候选者时素数候选者字的总和是否可被所确定的素数整除的成本。
所述确定的二进制基数可以具有在16、24、28、32、36、44、48、52、60、64中的大小。
所述已知的严格可能素性测试可以包括Miller-Rabin测试或Fermat测试。
根据第二方面,本发明涉及一种可直接加载到至少一台计算机的存储器中的计算机程序产品,包括用于当所述产品在计算机上运行时执行根据第一方面的方法的步骤的软件代码指令。
根据第三方面,本发明涉及一种存储可执行计算机代码的非暂时性计算机可读介质,当由包括处理系统和密码处理器的密码设备执行时,该可执行计算机代码执行根据第一方面的方法。
根据第四方面,本发明涉及一种密码设备,包括:
-处理系统,其具有至少一个硬件处理器、测试素性电路和被配置用于存储所述素数候选者Y P 的存储器电路,
-密码处理器,
所述处理系统和密码处理器被配置成执行根据第一方面的方法的步骤。
为了实现前述和相关目的,一个或多个实施例包括在下文中充分描述并在权利要求中特别地指出的特征。
附图说明
以下描述和附图详细阐述了某些说明性方面,并且仅指示其中可以采用实施例的原理的各种方式中的一些。当结合附图考虑时,根据以下详细描述,其他优点和新颖特征将变得显而易见,并且所公开的实施例旨在包括所有这样的方面及其等同物。
•图1是根据本发明的实施例的密码设备的示意图示;
•图2示意性地图示了根据本发明的实施例的用于生成素数并在密码应用中使用所述素数的方法。
具体实施方式
在下面详述的描述中,参考了附图,所述附图通过图示的方式示出了其中可以实施本发明的具体实施例。足够详细地描述这些实施例以使得本领域技术人员能够实施本发明。要理解,本发明的各种实施例虽然不同,但不一定是相互排斥的。例如,在不脱离本发明的精神和范围的情况下,本文中结合一个实施例描述的特定特征、结构或特性可以在其他实施例中实现。此外,要理解,在不脱离本发明的精神和范围的情况下,可以修改每个公开的实施例中的各个元件的位置或布置。因此,以上详细的描述不是要以限制的意义来理解,并且本发明的范围仅由适当解释的所附权利要求连同权利要求所享有的等同物的全部范围来限定。
在下面的描述中,x^yx y 形式下的符号两者都被用于求幂运算。
本发明旨在提供一种用于密码应用的方法和相关联的密码设备,包括没有任何GCD计算的快速素数生成。
根据第一方面,本发明涉及如关于图1描绘的这样的密码设备。这样的密码设备1可以包括被配置成生成素数的处理系统2。处理系统2可以包括测试素性电路3,所述测试素性电路3根据这里下面描述的方法测试候选者素数与已知的小素数的共素性。处理系统2还可以包括执行在所述方法中生成素数所需的其他处理任务的硬件处理器4以及存储至少所生成的素数的存储器电路5。
这样的密码设备还可以包括密码处理器6,密码处理器6基于由处理系统2生成的素数执行诸如秘密密钥生成之类的密码应用。
处理系统2的硬件处理器4和密码处理器6可以是分离的,或者可以是用于素数生成和密码应用两者的唯一共同处理器。
根据第二方面,本发明涉及一种生成素数并在密码应用中使用该素数的方法,该方法由这样的密码设备1执行。为了以有限资源消耗生成素数,所述方法使用针对已知小素数的共素性测试,如现有方法所做的那样。但是,根据本发明的方法不是计算用于执行这样的共素性测试的GCD,而是利用一些素数的特定数学性质,如以下段落中所述。
让我们考虑大小为b = log2(B)的二进制基数B和素数候选者Y P 。素数候选者Y P 可以在基数B中被表示为。检查素数候选者Y P 与素数pi的共素性相当于测试Y P 是否可被pi整除,即测试是否Y P mod pi = 0。
Y P mod p i 可以使用以下公式以不同的形式来表示:
看起来对于一些二进制基数,存在一个或多个素数pi,使得B mod pi = 1。在那种情况下,Y P mod p i可以被表示为。因此,测试Y P 是否可被素数pi整除使得B mod pi = 1,可以通过仅计算当Y P 在基数B中被分解时Y P 字的总和,并且然后测试该总和是否可被这样的素数pi整除来实现。
结果,通过这样的总和计算,可以比通过计算所述素数候选者和所述素数之间的GCD快的多地测试素数候选者和素数之间的共素性,所述素数候选者和素数针对某个二进制基数验证性质B mod pi = 1。
为了以利用这样的性质的方式生成素数并在密码应用中使用该素数,根据本发明的第二方面的方法可以包括这里按照图2描述和关于图2描绘的步骤。
在确定步骤a)中,处理系统2可以确定具有小的大小b = log2(B)比特的至少一个二进制基数B,并且对于每个确定的基数B,确定至少一个小素数pi,使得B mod pi = 1,其中i是整数。
在第一实施例中,在确定步骤a)期间,处理系统可以执行计算,以便针对素数验证B mod pi = 1的各种基数进行验证,并且选择处理系统已经针对其验证了B mod pi = 1的至少一个二进制基数B和至少一个小素数pi
在第二实施例中,可以在执行确定步骤a)之前可能由除处理系统2之外的另一系统执行这样的验证,并且可以将使得B mod pi = 1的基数B和小素数pi存储在处理系统2的存储器电路中。在该情况下,在确定步骤a)期间,处理系统简单地在存储器电路中读取存储的基数B和与基数B中的每一个相关联的小素数。
如这里以上示出的那样,由于性质B mod pi = 1,因此通过在素数候选者在基数B中被分解时仅计算素数候选者字的总和,并且然后测试该总和是否可被这样的素数pi整除,可以以比素数候选者和这样的确定的素数之间的GCD计算的成本低得多的成本来确定素数候选者和确定的素数中的每个的共素性。
作为说明性示例,所确定的二进制基数可具有16、24、28、32、36、44、48、52、60和64中的大小b。可以基于处理系统的字大小来确定基数。
在实施例中,确定二进制基数以便最大化不同确定的小素数的数量。期望限制基数B的数量,对于该基数B,测试了验证B mod pi = 1的素数候选者与至少一个素数的共素性。这样的测试实际上需要分解每个基数B中的素数候选者,这有一定的成本。不幸的是,不同的二进制基数B可以共同具有验证B mod pi = 1的一个或多个素数。因此,为了能够针对给定数量的二进制基数B测试素数候选者与尽可能多的素数的共素性,可以仔细选择二进制基数B,以便针对选择的基数最大化验证B mod pi = 1的确定的素数的数量。
由于素数候选者可被素数整除的概率随着该素数的增加而降低,因此应首先测试候选者素数被最小素数的可整除性。作为示例,对于确定的基数B,所述确定的小素数pi可以包括一百个第一素数,即3和541之间的所有素数,使得B mod pi = 1。
作为另一个示例,与具有在16和32之间的大小b的所述确定的二进制基数相关联的确定的小素数可以在以下值中:
对于b = 16,为-3、5、17、257,
对于b = 18,为-3、7、19、73,
对于b = 20,为-3、5、11、31、41,
对于b = 21,为-7、127、337,
对于b = 22,为-3、23、89、683,
对于b = 23,为-47,
对于b = 24,为-3、5、7、13、17、241,
对于b = 25,为-31、601、1801,
对于b = 26,为-3、2731,
对于b = 27,为-7、73,
对于b = 28,为-3、5、29、43、113、127,
对于b = 29,为-233、1103、2089,
对于b = 30,为-3、7、11、31、151、331,
对于b = 32,为-3、5、17、257。
在选择步骤b)中,处理系统2的硬件处理器4可以选择素数候选者Y P
在分解步骤c)中,硬件处理器可以在所述确定的二进制基数中选择的基数B中分解所选择的素数候选者Y P
然后,在计算步骤d)中,硬件处理器可以计算来自针对所选择的基数的候选者Y P 的残差y PB ,使得。如由该公式表示的那样,这样的残差是当Y p 在选择的基数b中被分解时Y p 字的总和。为了避免向攻击者泄露信息,针对残差计算的总和计算可以以随机顺序来执行。
然后在测试步骤e)中,测试素性电路3测试所述计算的残差yPB是否可被针对所述选择的基数B在所述确定的小素数中选择的一个小素数pi整除。由于所选择的小素数pi和所选择的基数B验证B mod pi = 1,因此对残差的这样的测试相当于测试候选者素数YP是否与所选择的小素数pi共素性。
当测试步骤e)的结果是残差yPB不能被所选择的小素数pi整除时,这意味着候选者素数YP与所选择的小素数pi共素性。在该情况下,候选者素数YP仍然是有效候选者素数,并且应该测试候选者素数YP与针对基数B选择的其他小素数的共素性。
该方法然后可以包括第一重复步骤f),在该步骤f)期间在所述计算的残差yPB不能被所述选择的小素数整除时,测试素性电路可以迭代地重复上述步骤e),直到在步骤e)处执行的测试证明所述计算的残差yPB不能被针对所述选择的基数B的所述确定的小素数的任何小素数整除为止。通过这样做,在测试步骤e)的每次重复时,测试计算的残差yPB被在所述针对选择的基数B的所述确定的小素数中选择的新的小素数pi的可整除性。候选者素数YP与针对所选择的基数B确定的小素数pi的共素性因此被一个小素数接一个小素数地测试,直到找到可被所确定的小素数之一整除的候选者素数YP为止,并且候选者素数YP因此不是素数,或者直到找到与针对基数B选择的所有小素数pi共素性的候选者素数YP为止。
当在步骤e)处执行的测试已经证明所述计算的残差yPB不能被针对所述选择的基数B的所述确定的小素数中的任何小素数整除时,候选者素数YP仍然是有效的候选者素数,并且应该测试候选者素数YP与其他小素数的共素性,所述其他小素数与其他基数验证Bmod pi = 1。该方法然后可以包括第二重复步骤g),在该步骤g)期间,对于所述确定的二进制基数中的每个基数B,迭代地重复步骤c)至f)。通过这样做,在分解步骤c)和计算步骤d)的每次迭代时,在所确定的二进制基数中的新基数B上分解素数候选者,并且针对该新基数计算素数候选者的残差。步骤e)和f)然后使得能够一个小素数接一个小素数地测试候选者素数YP与针对新选择的基数B确定的小素数pi的共素性。
当对于所有确定的基数B,在步骤e)处重复进行的测试已经证明,针对确定的基数计算的所述残差yPB不可被针对所述确定的基数的所述确定的小素数的任何小素数整除,则候选者素数Y P 是与针对所有确定的基数的所有确定的小素数共素性。该方法然后可以包括执行步骤h),在该步骤h)期间,测试素性电路对所述候选者Y P 执行已知的严格可能素性测试。这样的严格的可能素性测试可以是例如Miller-Rabin测试或Fermat测试。
当已知的严格可能素性测试是成功时,执行步骤h)还可以包括将素数候选者Y P 存储在处理系统2的存储器电路5中,并且经由密码处理器6在所述密码应用中使用所述存储的素数候选者Y P
作为示例,在密码应用中使用所述存储的素数候选者Y P 可以包括以下各步骤中的至少一个:经由所述密码处理器执行所述密码应用以使用所述存储的素数候选者Y P 来保护数据,和/或经由所述密码处理器使用所述存储的素数候选者Y P 生成密码密钥。
因此,上述步骤a)至h)使得能够以降低的成本高效地测试素数候选者与多个小素数的共素性,而不计算素数候选者和所述小素数之间的任何GCD。
为了甚至更多地降低在测试步骤e)中执行的共素性测试的成本,测试所述计算的残差yPB是否可被一个小素数pi整除可以使用Barrett模块化约简来执行。这样的约简确实以乘法运算取代了字除法,乘法运算通常具有低得多的成本。
在测试步骤e)的一些迭代时,可以找到可被所选择的小素数pi整除的计算的残差yPB。在执行步骤h)时,已知的严格可能素性测试也可能是失败。在两种情况下,测试的素数候选者实际上不是素数。然后,期望测试新的候选者素数。该方法然后可以包括第三重复步骤i),在该步骤i)期间,对于新的素数候选者迭代地重复步骤d)至h),直到所述已知的严格可能素性测试是成功为止。对于这样的新的素数候选者,针对每个确定的基数B最终需要新的素数候选者的残差。
在第一实施例中,如在分解步骤c)中那样,通过在每个基数中分解新素数候选者并计算在每个基数中表示的新候选者素数的字的总和,可以计算这样的残差,如在上面解释的那样。
在第二实施例中,对于新的素数候选者YP和所选择的基数B,可以通过以预定的增量递增先前针对另一个前素数候选者和所述选择的基数B计算的残差来计算残差y PB 。这样的预定增量应该等于在前素数候选者和新的素数候选者之间在所述选择的基数B中表示的差的字的总和。这样做使得能够通过在所选择的基数B中仅分解两个候选者素数之间的差来计算残差(这可能是小的),而不是分解整个新的素数候选者(这可能是昂贵的)。
当在测试步骤e/中找到可被所选择的小素数整除的计算的残差yPB时,素数候选者实际上不是素数。在第一实施例中,该方法然后可以停止或跳转到上述第三重复步骤i/,以便测试新的候选者素数。这具有以下缺点:让监视方法的执行的攻击者仅通过查看执行时间就知道测试的候选者素数不是素数。
因此,在第二实施例中,无论在测试步骤e)处执行的测试的结果如何,都针对所有确定的基数测试与所有确定的小素数的共素性。为此:
-在第一重复步骤f)中,当所述计算的残差yPB可被所述选择的小素数整除时,测试素性电路可以迭代地重复上述步骤e),直到已经针对对于所述选择的基数B的所有所述确定的小素数测试了所述计算的残差yPB可整除性为止,以及,
-当所述计算的残差yPB可被针对所述选择的基数B的所述确定的小素数之一整除并且已经针对对于所述选择的基数B的所有所述确定的小素数测试了所述计算的残差yPB可整除性时,第二重复步骤g)可以包括对所述确定的二进制基数中的每个基数B迭代地重复步骤c)至f)。
这样做使得能够具有步骤e)至g)的恒定执行时间,无论候选者素数的素性如何。
根据另一方面,本发明涉及一种可直接加载到至少一台计算机的存储器中的计算机程序产品,包括当所述产品在计算机上运行时用于执行这里上面描述的步骤a)至h)的软件代码指令。
根据另一方面,本发明涉及一种存储可执行计算机代码的非暂时性计算机可读介质,当由包括处理系统和密码处理器的计算系统执行时,所述可执行计算机代码执行这里上面描述的步骤a)至h)。

Claims (14)

1.一种用于生成素数并在密码应用中使用所述素数的方法,包括以下步骤:
a)经由包括至少一个硬件处理器(4)、测试素性电路(3)和存储器电路(5)的处理系统(2)确定具有小的大小b = log2(B)比特的至少一个二进制基数B,并且对于每个确定的基数B,确定至少一个小素数pi,使得B mod pi = 1,其中i是整数,
b)经由所述硬件处理器(4)选择素数候选者Y P
c)经由所述硬件处理器,在所述确定的二进制基数中选择的基数B中分解选择的素数候选者Y P
d)经由所述硬件处理器计算来自针对所述选择的基数B的候选者Y P 的残差y PB ,使得
e)经由所述测试素性电路(3)测试所述计算的残差yPB是否可被在针对所述选择的基数B的所述确定的小素数中选择的一个小素数pi整除,
f)当所述计算的残差yPB不能被所述选择的小素数整除时,经由所述测试素性电路迭代地重复上述步骤e),直到在步骤e)处执行的测试证明所述计算的残差yPB不能被针对所述选择的基数B的所述确定的小素数中的任何确定的小素数整除为止,
g)当在步骤e)处执行的测试已经证明所述计算的残差yPB不能被针对所述选择的基数B的所述确定的小素数中的任何确定的小素数整除时,针对所述确定的二进制基数中的每个基数B迭代地重复步骤c)至f),
h)当对于所有确定的基数B,在步骤e)处执行的测试已经证明针对确定的基数计算的所述残差yPB不能被针对所述确定的基数B的所述确定的小素数中的任何确定的小素数整除时,经由所述测试素性电路对所述候选者Y P 执行已知的严格可能素性测试,并且当已知的严格可能素性测试是成功时,将所述素数候选者Y P 存储在所述存储器电路(5)中,并经由密码处理器(6)在所述密码应用中使用所述存储的素数候选者Y P
2.根据权利要求1所述的方法,包括:
-在步骤f)中,当所述计算的残差yPB可被所述选择的小素数整除时,经由所述测试素性电路迭代地重复上述步骤e),直到已经针对对于所述选择的基数B的所有所述确定的小素数测试了所述计算的残差yPB可整除性为止,
-在步骤g)中,当所述计算的残差yPB可被针对所述选择的基数B的所述确定的小素数之一整除,并且已经针对对于所述选择的基数B的所有所述确定的小素数测试了所述计算的残差yPB可整除性时,针对所述确定的二进制基数中的每个基数B迭代地重复步骤c)至f)。
3.根据权利要求1所述的方法,包括如下步骤:
i)当所述计算的残差yPB可被选择的小素数整除时,或者当已知的严格可能素性测试是失败时,针对新的素数候选者迭代地重复步骤d)至h),直到所述已知的严格可能素性测试是成功为止,其中,对于新的素数候选者YP和选择的基数B,通过以预定的增量递增先前针对另一个素数候选者和所述选择的基数B计算的残差来计算所述残差y PB
4.根据权利要求1所述的方法,其中,在所述密码应用中使用所述存储的素数候选者YP包括以下各步骤中的至少一个:经由所述密码处理器(6)执行所述密码应用以使用所述存储的素数候选者Y P 来保护数据,和/或经由所述密码处理器使用所述存储的素数候选者Y P 生成密码密钥。
5.根据权利要求1所述的方法,其中,以随机顺序执行用于残差计算的总和计算。
6.根据权利要求1所述的方法,其中,确定所述基数以便最大化不同的确定的小素数的数量。
7.根据权利要求1所述的方法,其中,基于处理系统的字大小来确定所述基数。
8.根据权利要求1所述的方法,其中,使用Barrett模块化约简来执行测试所述计算的残差yPB是否可被一个小素数pi整除。
9.根据权利要求1所述的方法,其中,对于确定的基数B,所述确定的小素数pi包括3和541之间的所有素数,使得B mod pi = 1。
10.根据权利要求1所述的方法,其中,所述确定的二进制基数具有在16、24、28、32、36、44、48、52、60、64中的大小。
11.根据权利要求1所述的方法,其中,所述已知的严格可能素性测试包括Miller-Rabin测试或Fermat测试。
12.一种可直接加载到至少一台计算机的存储器中的计算机程序产品,包括用于当所述产品在计算机上运行时执行根据权利要求1所述的方法的步骤的软件代码指令。
13.一种存储可执行计算机代码的非暂时性计算机可读介质,当由包括处理系统(2)和密码处理器(6)的密码设备(1)执行时,所述可执行计算机代码执行根据权利要求1所述的方法。
14.密码设备(1),包括:
-处理系统(2),其具有至少一个硬件处理器(4)、测试素性电路(3)和被配置用于存储所述素数候选者Y P 的存储器电路(5),
-密码处理器(6),
所述处理系统(2)和密码处理器(6)被配置成执行根据权利要求1所述的方法的步骤。
CN201880012780.8A 2017-02-21 2018-02-09 用于生成用于密码应用的素数的方法 Active CN110495133B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17305191.3A EP3364592A1 (en) 2017-02-21 2017-02-21 Method for generating a prime number for a cryptographic application
EP17305191.3 2017-02-21
PCT/EP2018/053247 WO2018153684A1 (en) 2017-02-21 2018-02-09 Method for generating a prime number for a cryptographic application

Publications (2)

Publication Number Publication Date
CN110495133A true CN110495133A (zh) 2019-11-22
CN110495133B CN110495133B (zh) 2023-07-07

Family

ID=58800753

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880012780.8A Active CN110495133B (zh) 2017-02-21 2018-02-09 用于生成用于密码应用的素数的方法

Country Status (7)

Country Link
US (1) US11281433B2 (zh)
EP (2) EP3364592A1 (zh)
JP (1) JP7055142B2 (zh)
KR (1) KR102311943B1 (zh)
CN (1) CN110495133B (zh)
CA (1) CA3053213C (zh)
WO (1) WO2018153684A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113541949A (zh) * 2020-04-17 2021-10-22 瞻博网络公司 用于加密的素数数字生成

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3562092A1 (en) * 2018-04-26 2019-10-30 Thales Dis Design Services Sas Method for generating on-board a cryptographic key using a physically unclonable function

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020186837A1 (en) * 2001-03-26 2002-12-12 Hopkins W. Dale Multiple prime number generation using a parallel prime number search algorithm
CN101107807A (zh) * 2004-12-22 2008-01-16 萨热姆防务安全公司 用于执行密码学计算的方法和装置
US20110142231A1 (en) * 2009-12-11 2011-06-16 Oki Semiconductor Co., Ltd. Prime number generating device, prime number generating method, and computer readable storage medium
CN104067217A (zh) * 2011-12-15 2014-09-24 英赛瑟库尔公司 生成被验证适用于芯片卡的素数的方法
CN105373366A (zh) * 2015-10-12 2016-03-02 武汉瑞纳捷电子技术有限公司 一种生成大素数的方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6445797B1 (en) * 1998-12-16 2002-09-03 Secure Choice Llc Method and system for performing secure electronic digital streaming
JP2003122251A (ja) 2001-10-10 2003-04-25 Sony Corp 暗号情報生成方法と暗号情報生成装置、暗号情報生成プログラム及び記録媒体
JP2005128832A (ja) 2003-10-24 2005-05-19 Sony Corp データ処理装置と剰余演算回路
US20090319804A1 (en) * 2007-07-05 2009-12-24 Broadcom Corporation Scalable and Extensible Architecture for Asymmetrical Cryptographic Acceleration
DE102011117236A1 (de) * 2011-10-28 2013-05-02 Giesecke & Devrient Gmbh Effiziente Primzahlprüfung
US9800407B2 (en) * 2013-08-30 2017-10-24 Qualcomm Incorporated Methods and apparatuses for prime number generation and storage

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020186837A1 (en) * 2001-03-26 2002-12-12 Hopkins W. Dale Multiple prime number generation using a parallel prime number search algorithm
CN101107807A (zh) * 2004-12-22 2008-01-16 萨热姆防务安全公司 用于执行密码学计算的方法和装置
US20110142231A1 (en) * 2009-12-11 2011-06-16 Oki Semiconductor Co., Ltd. Prime number generating device, prime number generating method, and computer readable storage medium
CN104067217A (zh) * 2011-12-15 2014-09-24 英赛瑟库尔公司 生成被验证适用于芯片卡的素数的方法
CN105373366A (zh) * 2015-10-12 2016-03-02 武汉瑞纳捷电子技术有限公司 一种生成大素数的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HOSUNG JO ET AL.: "Fast Prime Generation Algorithms using proposed GCD test on Mobile Smart Devices", 《2016 IEEE》, 31 December 2016 (2016-12-31) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113541949A (zh) * 2020-04-17 2021-10-22 瞻博网络公司 用于加密的素数数字生成

Also Published As

Publication number Publication date
JP7055142B2 (ja) 2022-04-15
CN110495133B (zh) 2023-07-07
US20200057611A1 (en) 2020-02-20
CA3053213A1 (en) 2018-08-30
US11281433B2 (en) 2022-03-22
CA3053213C (en) 2022-05-31
KR102311943B1 (ko) 2021-10-12
KR20190127704A (ko) 2019-11-13
EP3364592A1 (en) 2018-08-22
JP2020509407A (ja) 2020-03-26
EP3586471B1 (en) 2021-01-20
WO2018153684A1 (en) 2018-08-30
EP3586471A1 (en) 2020-01-01

Similar Documents

Publication Publication Date Title
US8472621B2 (en) Protection of a prime number generation for an RSA algorithm
CN107040362B (zh) 模乘设备和方法
US8861718B2 (en) Method of preventing fault-injection attacks on Chinese Remainder Theorem-Rivest Shamir Adleman cryptographic operations and recording medium for storing program implementing the same
US9176707B2 (en) Arithmetic apparatus, elliptic scalar multiplication method of arithmetic apparatus, elliptic scalar multiplication program, residue operation method of arithmetic apparatus, and residue operation program
US9152922B2 (en) Methods, apparatus, and computer program products for quantum searching for multiple search targets
CN104424428B (zh) 用于监视数据处理的电子电路和方法
EP3930252A1 (en) Countermeasures for side-channel attacks on protected sign and key exchange operations
EP3369028B1 (en) Checking a security value calculated for a part of a program code
CN110495133A (zh) 用于生成用于密码应用的素数的方法
CN111737534B (zh) 文件处理方法、装置及设备
US10536262B2 (en) Electronic generation device
EP3166013A1 (en) Modular exponentiation using randomized addition chains
Duta et al. Framework for evaluation and comparison of primality testing algorithms
US9755829B2 (en) Generation of cryptographic keys
CN107533500A (zh) 用于确保程序执行的方法
US9992016B2 (en) Message generation for a cryptographic key generation test
KR102200132B1 (ko) 오일러체를 이용한 소수 검사 방법 및 장치
US20240176883A1 (en) Verifiable computing using computation fingerprint within fully homomorphic encryption (fhe)
US20220400005A1 (en) Generating prime numbers
CN110348246B (zh) 一种验证信息的生成方法、装置、终端设备和介质
Bentley et al. An empirical exploration of the difficulty function
WO2023073041A1 (en) Hardware integrity control of an electronic device
KR101558201B1 (ko) Crt-rsa 암호 연산에서의 오류 주입 공격 방지 방법 및 그 기록매체
CN115643000A (zh) 卡方检验安全外包计算方法、系统以及存储介质
CN115062279A (zh) 源码加解密方法、设备和存储介质

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
TA01 Transfer of patent application right

Effective date of registration: 20230317

Address after: French Meudon

Applicant after: Thales Digital Security France Easy Stock Co.

Address before: French Meudon

Applicant before: Thales Digital Security France

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant