CN102025501B - 防止边信道攻击的素数生成保护 - Google Patents

防止边信道攻击的素数生成保护 Download PDF

Info

Publication number
CN102025501B
CN102025501B CN201010276008.2A CN201010276008A CN102025501B CN 102025501 B CN102025501 B CN 102025501B CN 201010276008 A CN201010276008 A CN 201010276008A CN 102025501 B CN102025501 B CN 102025501B
Authority
CN
China
Prior art keywords
prime number
numeral
alternative
prime
alternative numeral
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.)
Active
Application number
CN201010276008.2A
Other languages
English (en)
Other versions
CN102025501A (zh
Inventor
弗兰克·库佩斯
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.)
Proton World International NV
Original Assignee
Proton World International NV
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 Proton World International NV filed Critical Proton World International NV
Publication of CN102025501A publication Critical patent/CN102025501A/zh
Application granted granted Critical
Publication of CN102025501B publication Critical patent/CN102025501B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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]
    • 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
    • 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/302Public 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 involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes

Landscapes

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

Abstract

一种保护由电子电路通过检验连续备选数字素性生成至少一个素数的方法,包括对每个备选数字,检验连续素数的至少一个集合的素数的素性,其中所述检验的应用顺序被至少从一个素数的生成修改为另一个素数的生成。

Description

防止边信道攻击的素数生成保护
技术领域
本发明通常涉及电子电路,尤其涉及产生素数的电路,本发明尤其涉及在电子电路中保护素数的产生以防止边信道攻击,例如,对电路功率消耗(SPA——简单功率分析)或其电磁签名的统计分析。
本发明尤其适用于执行RSA型非对称加密算法的电路,尤其是利用质因数分解算法的电路。
背景技术
RSA算法是最常用的非对称加密算法(具有公钥)之一。该算法用于加密/解密数据或者签名数据并认证。这基于使用包括一个公钥和一个私钥的密钥对。在加密/解密模式中,发送器使用该公钥来加密与接收器秘密通信的数据,后者使用其私有(或秘密)密钥来解密该数据。对于认证,发送器使用私钥来签名数据,而接收器使用公钥来认证该签名。
公钥使加密数据的发送器或签名数据的接收器能提取这些数据,相对来说是普遍的。但是,私钥被预留给具有所创建的密钥对的电路。密钥对的持有者可以直接将公钥传送给其它方使其能够处理数据。
公钥及私钥对的产生需要使用两个不同的、相对大的大小(通常为1024或2048比特)的素数“p”和“q”。这些素数的乘积提供加密模数“n”。选择数p和q使得数p-1和q-1与量(quantity)“e”互质,称为公共指数,该公共指数与乘积n(φ(n)=(p-1)(q-1))的欧拉指示符(Eulerindicator)“φ(n)”互质。作为结果,存在一个整数“d”使得e×d的乘积与1模φ(n)一致。n,e对组成公钥,n,d对组成私钥。私有指数d是指数e模(p-1)(q-1)的倒数。素数p和q电路中唯一包含私钥的。
RSA算法的鲁棒性依赖于素数p和q。要基于公钥“破坏”RSA算法,需要能够分解数n,以获得素数p和q。一旦知道了该因式分解,私有指数d就可以由公有指数e(通过计算e模(p-1)(q-1)的倒数计算得到d)计算得出。目前已认识到,通过使用足够大小的模数n(通常为近似1,500比特),当前的算法在合理的时间内不能分解数n。
但是,在电子电路中引入数p和q或它们通过电路运算的结果在安全方面特别关键,因为在电路寿命的时间中黑客的发现给他提供了数字n的因式分解。
生成RSA密钥的第一种技术包括在电子电路外生成这些密钥。量p和q在定制阶段被引入电子电路。由于密钥不是由实际电子电路产生,因此这一技术不响应边信道攻击。
第二种已知技术包括使实际电子电路在安全的环境(实际在一个具有预定访问的保护装置)中生成素数。采用这种技术,在素数产生过程中攻击也不成问题。
但是,更为常见的是,电子电路需要能够在这样的安全环境外生成它们的RSA密钥。例如,这使得当之前的密钥被否定时(假定密钥被攻击)能够重新生成新的密钥。例如在一个不安全的环境中定制电子电路的过程中或初次使用过程中执行该生成。根据一个申请电子护照的例子,一旦护照在持有者手中,要求密钥由包含在护照中的电子芯片生成。这样,该密钥在护照认证期间不能提前使用。
公共指数e可以是公钥基础设施(PKI)的参数并且对所有密钥都是相同的。例如在电子电路的制造过程(在ROM中)或定制过程(在EEPROM中)中引入公钥。
公共指数e可以由电子电路生成,例如,通过选择一个随机数,并发送给电子电路必定会与其通信的元件。
这样公钥(公共指数和加密模数)要么被接收器(签名)得知,要么被发送器(加密)得知,或者被与其通信的(用于每次业务或最后一次)持有该私钥的电子电路得知。公钥进一步通常需要验证。
以时间和计算来讲,大素数的产生是昂贵的。尤其是,使得能够验证与否一个数字的素性的所谓素性检验,通常执行需要相当数量计算(例如,米勒-拉宾(Miller-Rabin)素性检验)的模数乘方。这就是为何要求仅对已经成功通过关于相对小的素数的检验的备选数字执行这类检验。这类检验当于通过相对小的素数的除法或者相当于关于素数表的比较。例如,米勒-拉宾检验可用一个小的基数(例如,2)来执行,或者可执行一个最大通用除法器计算(例如,增加以255为模的字节以获取一个小于255的结果,随后用255对该结果计算最大通用除法器。如果不为1,一个单独的检验能够告知该数字不能被255的三个因数,即3、5、17,除尽)。
当用电子电路在不安全的环境中生成素数时,电路很可能受到边信道攻击(SPA或电磁分析)。尤其是,此类攻击可能发生在素性检验执行除法或用素数表比较的过程中。
发明内容
当通过电子电路利用这些密钥生成这些数字时,需要保护素数的产生并且进而保护使用质因数分解算法的密钥的生成。
本发明一个实施例的一个目标是保护素性检验,尤其是那些执行除法或用表的比较、抵抗边信道攻击的。
为了达到所有的或部分目标及其它的,本发明至少一个实施例提供了一种保护由电子电路通过测试连续的备选数字的素性来生成至少一个素数的方法,包括对每个备选数字的关于至少一个连续素数的集合中的素数的素性检验,其中所述测试的应用顺序被至少从一个素数的生成修改为另一个素数的生成。
根据本发明的实施例,为每个备选数字修改所述顺序。
根据本发明的实施例,所述顺序是顺次的。
根据本发明的实施例,所述顺序是非顺次的。
根据本发明的实施例,所述顺序是随机选择的。
根据本发明的实施例,所述集合包括在第一临界值与第二临界值之间取值的素数。
根据本发明的实施例,每个素性检验是备选数字被所述集合中的素数整除的检验。
根据本发明的实施例,素性检验基于筛选表和初始备选数字进行,所述筛选表包括与所述集合中的素数一样多的元素,所述初始备选数字由小于第一临界值的素数的乘积乘以任意数得到。
本发明的实施例还提供了一种由电子电路通过测试连续的备选数字的素性来生成至少一个素数的方法。
本发明的实施例还提供了一种包括能够执行这些方法的模块的电子电路。
前述的目标、特征及本发明的优点将联系附图在以下具体实施例的非限制性说明中详细讨论。
附图说明
图1是本发明作为一个例子适用类型的集成电路实施例的框图;
图2A概要性地示出了用RSA算法加密;
图2B概要性地示出了用RSA算法解密;
图3是加密数据传送系统的框图;
图4是在执行RSA型算法的电子电路中生成素数的常用步骤的流程图;
图5是提交备选数据做除法检验的常用步骤的流程图;
图6是使用图5的检验的用于保护素数产生的方法的实施例的步骤流程图;以及
图7是采用图4中例子生成素数的方法的另一实施例的步骤的流程图。
具体实施方式
为了清楚起见,给不同附图中相同的元件指定了相同的参考标记。进一步的,仅示出并描述那些有助于理解本发明的步骤和元件。特别地,使用基于素数的密钥的算法的电子电路所用的没有被详述,本发明与任何通常的生成素数的利用(加密、签名计算)相一致。
下文将结合在加密/解密中使用的RSA算法的应用实例详细描述本发明。但是,应注意本发明适用于基于所生成的素数的RSA算法的任何用途,本发明尤其适用于RSA签名。更一般地,本发明适用于任何依赖于一个质因数分解而具有自己的密钥的算法,例如,所谓的拉宾加密系统。
图1以框图的形式结构化地示出了本发明所适用的电子电路1(例如,智能卡)的实例。这样电路包括具有越过一个或几个数据、地址通信功能的处理单元11(PU),以及控制总线12,不同元件间的一个或几个非易失性存储器13(NVM),通常为包含全部或部分程序的ROM及要包含RSA密钥的EEPROM,一个或几个易失性存储器14(典型地为RAM型),以及使得电路1能够与外界通信的输入/输出接口电路15(I/O)。在本发明特别致力于达到的应用中,电路1还包括与单元11相一致的加密或签名计算处理器16(CP-加密处理器)。电路1可能通过由虚线标出的硬件和/或软件元件(块17和18-FCT和PNGEN)执行不同的功能。这些功能之一(块18)是生成RSA型算法中用作密钥的素数的。其它元件和电路按照目标配备给电子电路1。更进一步,会提供电路子集之间的用于交换数据、地址,和/或控制信号的直线(未示出)。
图2A和2B示出了RSA型算法的执行。RSA计算单元在图2A(加密侧)中被标记为块20,在图2B(解密侧)中被标记为块21。计算单元实际上是相同的,为软件或硬件单元。
表现为整数的数据消息M的加密(图2A)被引入RSA计算模块,该模块进一步包含或接收加密模数n和公钥的加密指数e。整数M小于加密模数n。RSA模块计算加密消息C作为模数指数Me模n。
对于持有私钥的(n,d)的电路的解密(图2B),消息C基于指数d和模数n被提交给模数乘方,即单元21提供关于Cd模n的消息M。
图3是示出了关于任何数据内容的数据DATA(块24)从发送器22到接收器23的传送实例的框图。如果接收器不知道公钥,接收器23持有RSA密钥并通过向所述发送器传送它(即因式分解模数n和公共指数e)来发起。这使得发送器22能够加密数据并能以加密消息C的形式传送它们。接收器23使用它的私钥(n,d)来解密这些消息并获取数据DATA(块25)。
传送过程可能会受到意在发现数字n的因式分解的黑客攻击。一旦密钥已经生成,本发明的实施例目的不在于这些攻击,而在于仅发生一次(或者每次生成新的密钥对)的其它可能发生在素数生成过程中的攻击。
一个素数的生成包括修改一个备选数字直到它变成素数。如前所述,在将备选数字提交给适用于大的数字的素性检验之前,用相对小的数字来执行简单的检验来验证备选数字是否是素数。适用于大的数字的检验通常基于费马大定理(Fermattheorem),根据如果“u”是素数,对于任意整数“v”,vu-1模u同余于1,即,除了1和u本身,u不可能被其它整数的因式分解。用于生成素数的最常用的素性检验是所谓的米勒-拉宾检验。该检验执行模幂运算以验证备选数字不能被除1外的其它数字整除,并且,例如,在A.Menezes、P.vanOorshchot和S.Vanstone所作的,1996年出版(CRC出版社)的“HandbookofAppliedCryptograpgy”的第4章4.2.3节第138-140页中有介绍。事实上,素性检验并不完美但出错的机率对于确定备选数字是素数已经足够低了。
图4是生成素数(任意指定为p)的常用方法的步骤流程图,该素数旨在成为RSA因式分解模数的两个素数之一。图4的方法通常被连续执行两次以获得数字p和q。
例如,首先通过随机选择来选取任意数k(块31,随机)。然后,该数字被修改以获得不能被小于第一临界值n1的素数整除的备选数字。
根据一个实例,数字k被乘以(块32,×)小于临界值n1的素数bi(i在1和m1间取值,m1是集合[1,n1]中素数的量)的乘积A1。临界值n1被选择为相当小。例如,如果n1=3,A1=6(m1=3且b1=1,b2=2,b3=3)。如果n1=5,A1=30(m1=4且b1=1,b2=2,b3=3,b4=5)。然后,由计算的乘积加1或减1(块32’,+/-1),这样,在n1=3的实例中,它既不能被2整除也不能被3整除。获得与数字2和3互质的第一备选数字a=kA1±1。
设置数字p和q所需的大小。从而,备选数字a的大小必须与数字p和q所需的大小一致。这样数字k的大小依赖于数字A1的大小。在上述实例中,对于1024比特的数字a和数字为30的A1,数字k被选择为超过1019比特。
根据另一实例,数字k通过执行操作k=k-(kmodA1)被修改使得它能被A1整除。然后,加上从素数表中任意选择一个与A1互质的数字。就获得与小于n1的素数互质的备选数字a。在这一实例中,数字k具有与数字a所需的相同的大小。
在图4的实例中,下一步(块33)包括构造一个筛选表ST,表中的每一项具有备选数字a除以包含在第一临界值n1和第二更高临界值n2之间的素数之一的结果。这相当于用a模bi填充该表,bi在n1和n2之间取值(并且i在m1和m2之间取值)。选择临界值n2以避免该表太大,这样对于每个备选数字,对后续要执行的计算保持比米勒-拉宾检验备选数字更低的能耗(就计算所需的时间和功率来说)。例如,临界值n2等于128或256。为了简化标记,临界值n1被认为既在集合[1,n1]中,又在集合[n1,n2]中,但是实际中由于第一临界值n1通常对应一个素数,因此它是分享检验迭代中的一个单独的值。
一旦筛选表被初始化,只要备选数字a与能执行RSA算法的素数不一致,就执行后续操作。
以验证备选数字与区间[n1,n2]中包含的所有数字互质为开始。这相当于验证(块35,0∈[ST]?)该表不包含零值。零值的出现意味着备选数字a是表中相应素数的倍数。
如果检验块35证实(块35输出N)备选数字与区间[n1,n2]中的所有数字互质,验证备选数字是否适合执行RSA算法。为了实现它,需要验证值a-1是否与e互质。实际中,是检查值a模e(a除以e的余数)是否等于1。如果不等于(块37输出N),备选数字与RSA算法相匹配,即,其符合指数e为与欧拉指示符(p-1)(q-1)互质的整数的条件。
一旦顺利通过检验块37(输出N),备选数字最终被提交给米勒-拉宾检验素性检验(块38,MR检验成功?)的几个操作(通常为几个到几十个操作)。如果成功(块38输出Y),备选数字a作为素数p(块39,p=a)。
只要检验块35、37或38中的一个表明备选数字不匹配(块35和37输出Y或者块38输出N),就选择一个新的备选数字。为了这一目的,以不合格的备选数字增加值A1开始(块36,a=a+A1)。然后,更新筛选表[ST]。这相当于给表中每个元素(通过i来标识)增加A1模bi的量(块34,[ST]+A1modbi),并且该方法返回到步骤35。然后一个将被用于检验块37的包含amode的值的变量也被更新,尽管其并未被示出。
一旦获得第一素数p,就再次执行该方法以生成执行RSA算法所需的第二素数q。那么一个附加步骤包括确定数字p和q互质(图4未示出该步骤)。因为它们是素数,检查它们不相同就足够了。
素数生成步骤的成功对边信道攻击特别敏感。尤其是,为不成功的备选数字执行的检验块35的数字提供关于该数字不与备选数字互质的信息(它对应的数字,为该数字当前的筛选表包含一个0)。边信道攻击能在备选数字被拒绝前确定表中执行的比较的数字(时间和消耗的功率对于所有的比较通常相同),并且这是对于被接受的备选数字之前的所有备选数字(被拒绝的)的。当一个备选数字顺利通过所有检验,每个先前的备选数字得知与先前的备选数字不互质的素数。通过这样监视数字p和q的生成(并且得知模数n),黑客能够确定数字p和q。
图5示出了另一素数生成方法的步骤。这些步骤相当于以备选数字除以取值范围在临界值n1和n2之间的素数的除法检验的形式执行的素性检验。图5的步骤可以取代图4中步骤33、34、35和36。
在图5中检验的开始,可获得一个与m1素数互质的备选数字a(块41,a=PRIME{bi}i∈[1,m1])。临界值m1可能等于1,在这一实例中,先前的步骤(块32和32’,图4)不被执行并且图5的检验适用于随机选择的数字k。
在图5的实例中,检验备选数字a对取值范围在n1和n2之间的所有素数的可除性。为了实现这点,下标i被初始化为m1(块42)。然后,尝试将数字a除以bi(块43,bidiva?)。如果(块43输出N)备选数字不能被当前的素数除尽(即,除法的余数不为0),只要区间[n1,n2]中的所有素数没有被检验,就循环执行可除性检验(块45,i<m2?,以及块46,i=i+1)。只要备选数字被相应的素数除尽没有余数(块43输出Y),并且除法的结果是整数,所述备选数字就不是素数。然后增加乘积A1(块44,a=a+A1)并且新的备选数字再次被提交给素性检验。如果m1=1,块44的增量(图4中的增量34和36)相当于为一个备选数字到下一个均加2。当一个备选数字通过了关于该范围内所有素数的所有可除性检验(块45输出N),在电路的输出处或者为更进一步地检验(出口/进一步地检验)提供,例如,图4中的米勒-拉宾或RSA兼容性检验。
在图5的实例中,边信道攻击可在备选者被拒绝前确定要执行除法的数字(测试43的数字),并且这是对于一个可接受的备选数字之前的所有备选数字。基于这一信息,对于一个可接受的备选数字,能够得知,对所有先前的备选数字(a=a-A1,a-2A1,a-3A1等),能够被素数bi整除。还可得知,该备选数字不能被更小的素数整除。已知p×q(n)的积,为数字p和q收集的这一信息,可以使黑客发现RSA算法的秘密。
2009年9月初在密码硬件和嵌入式系统(CryptographicHardwareandEmbeddedSystems)研讨会的论文中已经公开了该类型的边信道攻击(ProceedingsCHES2009,ANewSide-ChannelAttackonRSAPrimeGeneration,ThomasFinke,MaxGebhardt,WernerSchindler)。
图6是用于保护素数的生成防止通过连续除法的素性检验中边信道攻击的方法的实施例的流程图。该图应与图5比较。
如前所述,它是从备选数字a(块41)开始,该备选数字a与小于临界值n1的素数互质。
提供屏蔽在区间[n1,n2]中连续的素数上执行素性检验的顺序。为了实现它,在集合[n1,n2]的数字上执行的素性检验的顺序至少从一个素数产生被修改到另一个素数产生(数字p和q的产生之间)。
例如,选择一个范围在临界值m1和m2之间的随机数r(块51,m1≤r≤m2)。数字r用作扫描素数集合[n1,n2]的一个初始秩(i=r)。
因此,正如与图5的实例相比,图6中执行的备选数字a的素性检验(块43,bidiva?),从秩r开始,关于素数br,通过检查它能否被该数字整除来执行。如果不能,选择集合(i=r+1直到m2,然后返回从m=1开始)中的下一个素数(块46’,下一个bi),只要列表未完成(块45’结束?)就继续。只要一个素数能除尽备选数字,程序退出循环(块43输出Y)并且转到下一备选数字(块44,a=a+A1)。
其优点来自于一个事实,即上述所讨论的边信道攻击需要知道素数检验的顺序。
该顺序经常可以根据要求的鲁棒性或多或少地被改变。
在图6实线示出的实例中,顺序可为每个新的备选数字改变。块44的输出返回到块41和51之间。
作为变形,该顺序对于所有除法素性检验的备选数字是相同的。在这种情况下,块44的输出返回到检验块43的输入(图6中虚线)。但必须确保对于每个新的备选数字素数扫描重新从i=r开始。例如,对每个新的备选数字下标i被重置为值r(块44’)。
根据另一种变形,该顺序只在数字p和数字q的生成之间改变。这意味着如果后续检验(例如,图4中37和38)拒绝备选数字,将继续保持数字r。素数扫描对于每个新的备选数字也必须重新从i=r开始。只有为新素数的产生才选择数字r。
集合[n1,n2]中的素数通常被存储,小的素数(例如,小于256)表的存储区域相对于用于每个检验的这些素数的动态计算所花的时间是合理的。
可以联想任何其它素数选择方法(连续的或不连续的),该方法对集合中素数所执行的检验的顺序至少对于每个新的生成是不同的。例如,素数表中元素的顺序可以被修改。
图7是适于筛选表(图4)使用的另一实施例的流程图。在该实例中,随机数的选择用于确定将要执行的检验的顺序以验证筛选表的元素之一是否包含零值。
例如,随机数r用于选择筛选表中元素STi扫描的初始位置(秩)。只要发现非零元素(块35’,STi=0?),就浏览筛选表(块45’,结束?以及块46”,下一个STi)。只要发现零元素,就如前所述通过增加乘积A1转到下一备选数字(块36),并随后通过增加乘积A1模相关的素数到其每个元素上来更新筛选表(块34)。当发现一个正确的备选数字(块45’输出Y),其被提交到下一个检验(37,图4)。
如图6中的实施例,对于每个素数生成,可为每个备选数字生成一个新的随机数,等等。
前面已经介绍了不同变形的不同实施例,应注意到所属领域技术人员可以将这些不同实施例和变形相结合。更进一步的,基于前述功能性指示,在所属领域技术人员的能力范围内实际执行本发明,可以为硬件或软件执行。
特别地,对所使用的临界值n1和n2的选择依赖于应用以及素数生成过程中米勒-拉宾检验所需的时间。例如,尽管筛选表最好不基于小于保存计算的第一临界值的素数,这并不是不可缺少的(m1及n1,可等于1)。
更进一步的,尽管本发明已被描述为执行单个筛选表的方法,但可以想象通过在下一表之前插入每个表的素性检验(步骤34和35)来使用几个筛选表,每个表具有验证备选数字相对于相邻的由连续的临界值定义的范围内的素数的素性的功能。为了最佳目标,可以使用这样的变形,如果基于之前的表的素性检验是有效的,那么只更新一个表。在这种情况下,最好为每个表改变素数扫描的顺序。
并且,尽管已经结合生成素数以创建RSA算法的密钥详细描述了本发明,但它通常适合于任何需要保密的素数生成过程。

Claims (10)

1.一种保护用于RSA型非对称加密算法的第一素数和第二素数的生成的方法,所述方法包括使用电子电路以用于:
对于所述第一素数,相对于连续素数的至少一个集合中的素数而测试至少一个第一备选数字的素性;以及
对于所述第二素数,相对于所述连续素数的至少一个集合中的所述素数而测试多个第二备选数字的素性;其中:
相对于所述连续素数的至少一个集合中的所述素数而测试所述至少一个第一备选数字的所述素性的顺序不同于相对于所述连续素数的至少一个集合的所述素数而测试所述多个第二备选数字的所述素性的顺序;并且
测试所述多个第二备选数字的所述素性的所述顺序针对所述多个第二备选数字中的每个备选数字而修改。
2.如权利要求1所述的方法,其中:
所述至少一个第一备选数字包括多个第一备选数字;并且
测试所述多个第一备选数字的所述素性的所述顺序针对所述多个第一备选数字中的每个备选数字而修改。
3.如权利要求1所述的方法,其中所述顺序是顺次的。
4.如权利要求1所述的方法,其中所述顺序是非顺次的。
5.如权利要求1所述的方法,其中所述顺序是随机选择的。
6.如权利要求1所述的方法,其中所述集合包括在第一临界值与第二临界值之间取值的素数。
7.如权利要求1所述的方法,其中每个素性检验是备选数字被所述集合中的素数可整除性的检验。
8.如权利要求5所述的方法,其中素性检验基于筛选表和初始备选数字进行,所述筛选表包括与所述集合中的素数一样多的元素,所述初始备选数字由小于第一临界值的素数的乘积乘以一个任意数得到。
9.一种由电子电路通过测试连续的备选数字的素性来生成第一素数和第二素数的方法,包括:
提供连续的备选数字;以及
通过根据权利要求1所述的保护方法测试所述连续备选数字的素性来生成所述第一素数和所述第二素数。
10.一种包括能够执行权利要求1所述方法的模块的电子电路。
CN201010276008.2A 2009-09-09 2010-09-07 防止边信道攻击的素数生成保护 Active CN102025501B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0956122 2009-09-09
FR0956122A FR2949925A1 (fr) 2009-09-09 2009-09-09 Protection d'une generation de nombres premiers contre des attaques par canaux caches

Publications (2)

Publication Number Publication Date
CN102025501A CN102025501A (zh) 2011-04-20
CN102025501B true CN102025501B (zh) 2016-03-16

Family

ID=42041560

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010276008.2A Active CN102025501B (zh) 2009-09-09 2010-09-07 防止边信道攻击的素数生成保护

Country Status (6)

Country Link
US (2) US8509429B2 (zh)
EP (1) EP2296086B1 (zh)
JP (1) JP5648177B2 (zh)
CN (1) CN102025501B (zh)
AT (1) ATE532128T1 (zh)
FR (1) FR2949925A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2946207A1 (fr) * 2009-05-28 2010-12-03 Proton World Internat Nv Protection d'une generation de nombres premiers pour algorithme rsa
EP2523096A1 (en) * 2011-05-11 2012-11-14 Thomson Licensing Modular exponentiation and device resistant against side-channel attacks
CN102325024A (zh) * 2011-09-26 2012-01-18 飞天诚信科技股份有限公司 一种生成大素数的方法和装置
DE102011117236A1 (de) * 2011-10-28 2013-05-02 Giesecke & Devrient Gmbh Effiziente Primzahlprüfung
JP5848106B2 (ja) * 2011-11-28 2016-01-27 ルネサスエレクトロニクス株式会社 半導体装置及びicカード
US10938563B2 (en) * 2017-06-30 2021-03-02 Intel Corporation Technologies for provisioning cryptographic keys
CN107317671B (zh) * 2017-08-22 2019-12-24 兆讯恒达微电子技术(北京)有限公司 防御旁路攻击的crc运算电路装置和方法
US11251953B2 (en) * 2020-07-15 2022-02-15 Juniper Networks, Inc. Proving prime integers for encryption
KR102554852B1 (ko) * 2020-10-20 2023-07-11 국민대학교산학협력단 인공신경망을 이용한 rsa 암호에 대한 부채널 분석 방법 및 장치
US11930114B1 (en) * 2023-08-02 2024-03-12 Thomas Michael Kremen Message encryption through identification of a sequential prime number

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040025032A1 (en) * 2000-02-18 2004-02-05 Chow Stanley T Method and system for resistance to statiscal power analysis

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000122537A (ja) * 1998-10-16 2000-04-28 Hironobu Hori 素数導出方法、その装置及び記録媒体
JP2000305453A (ja) * 1999-04-21 2000-11-02 Nec Corp 暗号化装置,復号装置,および暗号化・復号装置
JP4678968B2 (ja) * 2001-03-13 2011-04-27 株式会社東芝 素数判定装置、方法及びプログラム
JP4664514B2 (ja) * 2001-03-14 2011-04-06 株式会社東芝 素数生成装置及びプログラム
JP4188571B2 (ja) * 2001-03-30 2008-11-26 株式会社日立製作所 情報処理装置の演算方法および耐タンパ演算攪乱実装方式
US7233663B2 (en) * 2001-10-29 2007-06-19 Safenet, Inc. Key generation performance improvement
US7149763B2 (en) * 2002-09-09 2006-12-12 Gemplus Method for generating a random prime number within a predetermined interval
US8781111B2 (en) * 2007-07-05 2014-07-15 Broadcom Corporation System and methods for side-channel attack prevention
FR2946207A1 (fr) * 2009-05-28 2010-12-03 Proton World Internat Nv Protection d'une generation de nombres premiers pour algorithme rsa

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040025032A1 (en) * 2000-02-18 2004-02-05 Chow Stanley T Method and system for resistance to statiscal power analysis

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A New Side-Channel Attack on RSA Prime Generation;Thomas Finke等;《CHES"09 Proceedings of the 11th International Workshop on Cryptographic Hardware and Embedded Systems》;20090830;第141-155页 *

Also Published As

Publication number Publication date
US20110061105A1 (en) 2011-03-10
JP5648177B2 (ja) 2015-01-07
US8509429B2 (en) 2013-08-13
US20130305361A1 (en) 2013-11-14
CN102025501A (zh) 2011-04-20
JP2011059690A (ja) 2011-03-24
ATE532128T1 (de) 2011-11-15
EP2296086A1 (fr) 2011-03-16
FR2949925A1 (fr) 2011-03-11
EP2296086B1 (fr) 2011-11-02

Similar Documents

Publication Publication Date Title
CN102025501B (zh) 防止边信道攻击的素数生成保护
US8472621B2 (en) Protection of a prime number generation for an RSA algorithm
CN108833103B (zh) 射频识别标签和读取设备之间进行安全通信的方法和系统
US9590807B2 (en) Identity based public key cryptosystem
US20080240443A1 (en) Method and apparatus for securely processing secret data
CN111404952B (zh) 变电站数据加密传输方法、装置、计算机设备和存储介质
CN103999402A (zh) 用于在直接匿名认证中安全地计算基点的方法和系统
EP3038287A1 (en) General encoding functions for modular exponentiation encryption schemes
CN101133593B (zh) 安全地执行rsa型密码术算法的方法及相应部件
US7286666B1 (en) Countermeasure method in an electric component implementing an elliptical curve type public key cryptography algorithm
EP3020159A1 (en) Electronic signature system
CN107104788B (zh) 终端及其不可抵赖的加密签名方法和装置
CN1985458B (zh) 增强的自然蒙哥马利指数掩蔽和恢复的方法和装置
EP3166013B1 (en) Modular exponentiation using randomized addition chains
US7415110B1 (en) Method and apparatus for the generation of cryptographic keys
EP1338955A2 (en) Method for detecting errors in cryptographic calculations
CN101465726B (zh) 用于秘钥的反破解方法及执行此方法的控制器与储存装置
KR100954844B1 (ko) 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체
US7386123B2 (en) Method of implementing in an electronic component a cryptographic algorithm for finding the public exponent
CN113114470A (zh) 群组的签名方法和装置、电子设备和存储介质
EP4297330A1 (en) Method and system for protecting cryptographic operations against side-channel attacks
US20050123131A1 (en) Cryptographic system comprising an encryption and decryption system and a key escrow system, and the associated equipment and devices
CN113965325B (zh) 数据传输认证方法、装置、电子设备及计算机存储介质
Howgrave-Graham et al. Pseudo-random number generation on the IBM 4758 Secure Crypto Coprocessor
CN116527240A (zh) 用于灵活的后量子信任布建和更新的系统和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant