CN1682484B - 受保护的密码计算 - Google Patents

受保护的密码计算 Download PDF

Info

Publication number
CN1682484B
CN1682484B CN03821623XA CN03821623A CN1682484B CN 1682484 B CN1682484 B CN 1682484B CN 03821623X A CN03821623X A CN 03821623XA CN 03821623 A CN03821623 A CN 03821623A CN 1682484 B CN1682484 B CN 1682484B
Authority
CN
China
Prior art keywords
key
crt
pinv
parameter
rsa
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.)
Expired - Fee Related
Application number
CN03821623XA
Other languages
English (en)
Other versions
CN1682484A (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.)
Jiejia De Mobile Safety Co ltd
Original Assignee
Giesecke and Devrient GmbH
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
Priority claimed from DE10250810A external-priority patent/DE10250810A1/de
Application filed by Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Publication of CN1682484A publication Critical patent/CN1682484A/zh
Application granted granted Critical
Publication of CN1682484B publication Critical patent/CN1682484B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • 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
    • G06F7/723Modular exponentiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card
    • 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/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
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • 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/3249Cryptographic 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 RSA or related signature schemes, e.g. Rabin scheme
    • 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/7219Countermeasures against side channel or fault attacks
    • G06F2207/7271Fault verification, e.g. comparing two values which should be the same, unless a computational fault occurred
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Accounting & Taxation (AREA)
  • Mathematical Optimization (AREA)
  • General Business, Economics & Management (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Finance (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Lock And Its Accessories (AREA)
  • Bidet-Like Cleaning Device And Other Flush Toilet Accessories (AREA)
  • Treatment And Processing Of Natural Fur Or Leather (AREA)

Abstract

本发明涉及一种用于受保护地执行密码计算的方法,其中,采用具有至少两个密钥参数(p,q,pinv,sp,dp,sq,dq)的密钥(12),对该密钥(12)执行完整性检验(30,34,40,54),以防止其中通过伪造至少一个第一密钥参数(p,q,pinv,sp,dp,sq,dq)推断出至少一个第二密钥参数(p,q,pinv,sp,dp,sq,dq)的密码攻击。另一种方法用于确定密码计算的、具有至少两个密钥参数(p,q,pinv,sp,dp,sq,dq)的密钥,该密钥用于上述第一种方法。计算机程序产品和便携式数据载体具有对应的特征。本发明使得可以特别有效地保护密码计算免受攻击。

Description

受保护的密码计算
技术领域
本发明总的涉及密码学技术领域,具体地说,涉及用于提高防止密码计算受到攻击的能力的过程。本发明特别用于便携式数据载体中,这种数据载体例如可以按照不同的构造形式配置为智能卡或芯片模块。 
背景技术
公知的例如在美国专利US4405829中描述的用于交换加密和/或签名数据的RSA方法。根据RSA方法,采用公共密钥用于加密或签名验证,以及秘密的私钥用于解密或产生签名。RSA方法的安全性建立在以下公知事实上,即当前尚无有效的方式来确定一个具有n=p·q形式的大数n的质数因子p和q。将所谓的模数n作为公共密钥的一部分公开,而p和q必须保持机密性。 
执行RSA方法所需的计算过程比较复杂。例如,需要在解密或产生签名期间用私钥的参数对要处理的数据进行求幂。因此,特别是对于计算功率有限的便携式数据载体,通常这样来实施用于解密或产生签名的RSA方法,即采用CRT(中文余数法则)并因此也称为RSA-CRT方法。利用RSA-CRT方法,可以将所需的计算花费减小到大约四分之一。 
与复杂的指数计算不同,RSA-CRT方法执行两次简单得多的求幂,然后将其结果组合为解密数据或所产生的签名。只有秘密质数因子p进入第一次计算,只有秘密质数因子q进入第二次计算。 
提出了一些攻击情况,其中两个所述RSA-CRT计算路径中只有一个受到干扰,例如通过加热或辐射的恶意行为或通过电脉冲。如果成功,可以从整个计算结果中推导出计算路径没有被干扰的那个质数因子p、q的倍数。换句话说,可以通过所述攻击推断出私钥。这会产生潜在的灾难性后果,因为不仅是刚执行的解密或签名产生,而且所有用私钥执行的密码操作都受到了威胁。 
上述攻击以名称“默认攻击”或“Bellcore攻击”而公知,并例如描述在美国专利US5991415的第4栏。同样在美国专利US5991415中还描述了一种方法,其中将附加因子j加入计算,以防止发生在密码计算期间的攻击。但是,如下所示,还可能存在其他不能由美国专利US5991415公开的方法防止的攻击。。 
所述攻击可能性尤其在密码计算是由便携式数据载体(例如智能卡或芯片模块)的处理器执行时非常危急。其第一个原因是这种便携式数据载体经常用于安全性很重要的应用,例如金融交易、存取控制或法律文件的签名。其次,在秘密计算执行期间便携式数据载体通常在攻击者手中,因此该攻击者有很多机会影响计算并暗中监视计算结果。 
发明内容
本发明的目的是提供一种特别好地保护密码计算免受攻击的技术。具体地说,应当防止基于类似于上述“Bellcore攻击”的原理的攻击。在优选配置中,优选根据本发明的保护可以与其它保护方法协作。 
根据本发明,该目的是通过一种具有权利要求1所述特征的用于受保护地执行密码计算的方法和具有权利要求15所述特征的用于确定密码计算密钥的方法来全部或部分地实现的。从属权利要求定义优选的发明配置。在权利要求书中列出的方法步骤的顺序不应当解释为对保护范围的限制,而是本发明的这些方法步骤可以全部或部分按照不同的顺序或者全部或部分并行地或者全部或部分交织地执行。 
本发明基于如下基本思想:类似于上述Bellcore攻击的攻击不仅由于在密码计算期间对计算过程的干扰而变得可能,而且通过被提供了错误参数的密码计算而变得可能。例如通过向计算例程发送错误的指针地址,或通过外部改变包含密钥参数的存储字段的内容来达到。发明者已经认识到,可以从按照这种方式被提供了错误参数的密码计算的结果中推导出需要保守秘密的密钥参数。 
根据本发明,为了防止这种攻击,对用于密码计算的密钥进行完整性检验。通过该措施可以识别并防止攻击,其中例如在没有发布结果的情况下就中断密码计算。完整性检验通常不能百分之百地排除对密钥参数的操纵,但是,它为实际应用提供了足够的对所述攻击的防备。这意味着,具有固定下限和固定上限的简单的范围检查不能认为是本发明意义下的完整性检验。 
优选这样配置完整性检验,即用非常接近于肯定的概率(例如大于1-10-3或大于1-10-6或大于1-10-9的概率)识别出按照随机方式破坏受监控的密钥参数的操纵。在很多配置中,完整性检验只包含单个的、尤其是重要的密钥参数,而优选监控需要保持机密性的密钥的所有参数。其中,对于单个参数或参数组来说,在完整性检验期间可以实施不同的检查方法。 
在各种情况下,用于完整性检验的方法都在于识别受监控密钥参数的崩溃。在优选配置中,完整性检验的结果是确定一个密钥参数是否位于一个有效值域内,该值域内由于有多个空隙而是非连续的。该检测类型一般在产生密钥过程中已经从密码计算所需的实际值和一个附加的、本身冗余的安全值中计算出密钥参数时才存在,如在校验和计算中的情况那样。 
虽然可以分别单独检验很多或所有密钥参数,但优选在完整性检验中确定至少两个密钥参数相互之间是否具有预定的关系。该完整性检验可以包括乘法操作,该操作在本发明中包括乘法、除法、求幂、模数计算和整除性测试。 
优选的,检查一个密钥参数或从该密钥参数推导出的值是否能被安全值整除。在这种情况下,优选在密钥产生期间,通过将密码计算实际所需的值乘以该安全值来提取出该密钥参数。该安全值可以是密钥的组成部分或者永久预置。 
本发明的方法适用于所有其中密码攻击通过伪造至少第一密钥参数来推断出至少一个第二密钥参数的密码计算。本发明尤其是用于在RSA方法、优选在RSA-CRT方法中保护解密或签名的产生。在这些情况下,完整性检验涉及私有RSA密钥。对其它密码计算也可能会找到对应的攻击可能,这些同样都能按照本发明的方式来加以防护。 
在优选配置中,在完整性检验中确定求幂运算中采用的指数是否被安全值整除。特别有利的是,本发明的这些实施例可以与国际公开文本WO01/48974A1公开的指数掩蔽方法组合。在另一种优选配置中,RSA方法的指数因子乘以掩蔽参数(除了刚提到的指数掩蔽之外或代替之),使得可以借助对以该遮蔽参数为模的相等性检查来检验该计算结果的正确性。 
根据本发明的计算机程序产品具有实施根据本发明方法的程序命令。这种计算机程序产品可以是物理介质,例如半导体存储器或软盘或CD-ROM,其中存储了用于执行本发明方法的程序。但是,该计算机程序产品还可以是非物理介质,例如通过计算机网络通信的信号。尤其是与智能卡或其它数据载体的生产和/或初始化和/或定制化相联系地提供所述计算机程序产品。 
在优选配置中,所述计算机程序产品和/或便携式数据载体还具有对应于上述特征和/或在从属权利要求中提到的特征。 
附图说明
下面从几个实施例和实施例的变形的详细描述中给出本发明的其它特征、优点和目的。参考附图进行描述。 
图1举例示出用于密钥计算的方法的流程图,其中示出公钥和私钥。 
图2举例示出密码计算方法的流程图。 
图3用修改了的配置举例示出图2方法的详细流程图。 
图4举例示出密码计算方法的另一实施例的流程图。 
具体实施方式
图1所示的方法用于计算为在RSA方法中的使用而配置的公共密钥10和私钥12。点划箭头分别表示在每种情况下由哪一个方法步骤产生哪个密钥参数。和便携式数据载体(例如智能卡)使用密钥对10、12相关联,所述方法可以在安全环境中执行,例如在初始化或定制化该数据载体时进行。然后,将外部计算的密钥对作为部分初始或定制数据发送到数据载体中。或者,还可以由数据载体本身来执行图1的方法,以确定该密钥对。 
作为密钥参数,公共密钥10具有模数n和公共指数e。私钥12用于采用中文余数法则的RSA计算,在此该计算还称为RSA-CRT计算。作为密钥参数,私钥12具有第一和第二质数因子p、q、CRT系数pinv、第一和第二安全值sp、sq,以及受安全防护的第一和第二CRT指数dp、dq。 
图1所示方法以本身公知的方式,在步骤14中以随机选择两个长度例如为1024或2048位的质数开始,并存储在私钥12中作为第一和第二质数因子p、q。在下个步骤16中,公共密钥10的模数n被计算为两个质数因子p、q的积。在步骤18中将公共指数e确定为一个与值(p-1)·(q-1)互质的随机数。由于在本实施例中私钥12被裁剪用于RSA-CRT计算,因此在步骤20中计算p模q的模倒数,并加入私钥12中作为CRT系数pinv。 
在步骤22中,将值d计算为公共指数e模(p-1)·(q-1)的模倒数。在不采用中文余数法则的RSA方法中,作为专有指数的d就是私钥的主要部分。在公知的RSA-CRT方法中采用两个CRT指数d模(p-1)和d模(q-1),而不是采用d。而在本实施例中,私钥12包含从所述CRT指数d模(p-1)和d模(q-1)中通过另一种安全措施推导出的值。该安全措施在这种情况下例如是分别乘以一个安全 值。可以通过整除性检查来检测对安全值的操纵。在实施例的变形中提供了其它安全措施,例如形成检验和或多次传递至少重要的传递参数。 
在步骤24中产生两个长度例为64位(8个字节)的随机数作为安全值sp、sq。在步骤26中根据dp:=(d mod(p-1))·sp来计算受保护的第一CRT指数dp。在步骤28中通过计算dq:=(d mod(q-1))·sq来确定受保护的第二CRT指数dq。所述值全部存储为私钥12的参数。这结束了防止操纵的私钥12的确定。 
在本实施例中,根据Java Card应用编程接口的约定,私钥12实质上以数据结构RSAPrivateCRTKey的形式存在。这些约定描述在文档“Java CardTM 2.1.1Application Programming Interface”,2000年5月18日1.0版中,由SunMicrosystems,Inc.,USA出版,当前可在网址 http://java.sun.com/products/javacard/javacard21.html下找到。那里提供的数据结构具有用于未受保护的CRT指数d模(p-1)和d模(q-1)的字段DP1和DQ1。为了将根据本实施例的私钥12容纳在这种数据结构中,在本实施例中,将值sp和dp一起存储在RSAPrivateCRTKey的字段DP1中,并且将相应的值sq和dq一起存储在字段DQ1中。这在图1中通过点划线表示。在实施例变形中,值sq和dq还可以存储在RSAPrivateCRTKey的其它字段中或存储在该数据结构之外。 
这里描述的实施例与上述JavaCard规范稍有不同,其中在本实施例中p模q的模倒数包含在私钥12中作为CRT系数pinv。另一方面,根据Java Card规范,采用q模p的模倒数作为CRT系数PQ。提供了对这里所述方法的修改,其中对应于Java Card规范的CRT系数PQ是私钥12的组成部分。根据本发明的思想还可以用于这种配置而无需实质上的修改。 
图2示出用于解密或产生签名的受保护RSA-CRT方法的第一配置。该方法由便携式数据载体、特别是智能卡或芯片模块的处理器来执行。为此,该方法按照该处理器的程序命令来实施,存储在数据载体的ROM或EEPROM中。解密或产生签名所需的私钥12同样存储在数据载体的EEPROM中。 
在调用该方法时,将指向私钥12的指针发送到被调用的解密或产生签名的例程中。发明人已经认识到,通过在开始解密或产生签名之前操纵私钥12的各个参数,可以实施密码攻击。这可以例如通过对包含私钥12的EEPROM的恶意行为或通过向RSA-CRT例程发送错误地址来做到。这种攻击可能具有非常不利的结果,因为可以从计算结果中,例如从解密数据或所产生的签名中 推断出密钥参数的值。这可能对用于所有以前和未来的计算的密钥对10、12造成威胁。 
为了防止这种密码攻击,在图2的方法中提供私钥12的完整性检验,其包括一系列局部测试。在图2中,点划箭头表示哪个密钥参数进入相应的局部测试。 
该方法在步骤30中以局部测试包含在私钥12中的CRT系数pinv是否实际上代表第一质数因子p模第二质数因子q的模倒数开始。换句话说,检查是否满足固定关系p·pinv=1 mod q。如果不满足,则发生错误跳转并终止该方法。如果检查成功,则可以假定密钥参数p、q和pinv都没有被操纵并且该方法可以继续。 
在下面的计算模块32中,将第一辅助值y1确定为两个CRT计算途径中第一计算途径的结果。待解密或签名的数据x、第一质数因子p和第一CRT指数d模p-1加入该计算,其中后一个值不能直接获得,必须从受保护的第一CRT指数dp和第一保护值sp中推导出来。 
为了检查两个值sp、dp之一是否已被操纵,首先在步骤34中执行整除性检查。如果受保护的第一CRT指数dp没有被第一保护值sp整除,则再次发生错误跳转并终止程序。相反,如果除法不产生余数,则能以非常接近肯定的概率假定至少两个密钥参数sp和dp之一没有发生随机崩溃。该整除性检查只需要很少的附加计算代价,因为安全值sp只有很小的位长度。当然,采用这里描述的方法不能发现在了解所提供的安全机制的情况下对两个参数sp和dp的恶意操纵;尽管当前无法想象攻击者如何能将这种新值恶意写入数据载体的各个EEPROM单元中。 
如果在步骤34中对参数sp和dp的完整性检查成功,则在步骤36中根据y1:=(x mod p)^(dp/sp)来实际计算第一辅助值y1。对于指数dp/sp,当然通常可以采用已在步骤34中计算的除法结果。由于本实施例中的安全防卫方法只包括乘以第一安全值sp(参见图1的步骤26),因此dp/sp=d mod(p-1)成立,由此y1=(x mod p)^(d mod(p-1))也成立。这是第一CRT计算途径的期望结果。 
第二计算模块38对应于第二CRT计算途径。该方法如在第一计算模块32中那样操作,只是采用第二质数因子q、第二安全值sq和受保护的第二CRT指数dq。在步骤40中,再次对密钥参数sq和dq进行完整性检验,并在步骤42中根据公式y2:=(x mod q)^(dq/sq)计算第二辅助值y2。 
在结束该方法的计算步骤44中,以本身公知的方式通过组合两个CRT辅助值y1和y2来确定整个结果y,也就是解密数据或计算的签名。这里执行的计算可以表示为公式y:=(((y2-y1)·pinv)mod q)·p+y1。当然可以为数据载体处理器执行的计算步骤选择不同的评价序列。通常,步骤36、42和44的RSA-CRT计算的不同变形已在文献中公开,它们之间的不同之处就在于用哪一种方式将中间结果减小到相应的模范围。在本实施例中建议的、根据本发明的完整性检验和乘法保护CRT指数dp和dq的思想可以与所有这些变形进行组合。 
根据本发明的完整性检验的目标尤其是在于防止在RSA计算之前(最迟在向RSA例程传递参数期间)执行的密码攻击。在传递参数期间进行的检验还可以按照简单方式完成,其中除了传递参数之外还例如按照校验和的方式存储与这些传递参数相关的冗余信息,并在参数传递之后将存储的校验和与新的、通过传递的参数计算的校验和进行比较。或者,可以多次传递至少重要的传递参数,并在传递之后检查同一性。 
还公知其它以暗中窥视各个计算步骤以便能推断出要保密的密钥参数为目的的攻击方法。尤其是步骤36和42中的指数形成会被这些攻击使用,因为在求幂运算的一般实施中,在计算运行期间的处理器活动非常依赖于指数的位序列。可以通过测量功率消耗(SPA=简单功率分析或DPA=差分功率分析)或诸如电场强度的其它信号来窥探处理器的活动。 
为了防止这种攻击,在PCT申请WO01/48974A1中提出用一个随机数来除具有余数的指数,并执行3次单独的求幂而不是一次求幂运算,其中整数商、该随机数和在相除过程中确定的余数都用作指数。该方法详细描述在所述专利文献中,其内容完全合并在本申请中。 
本发明的保护方法的特别优点在于,它可以容易地与根据WO01/48974A1的称为“指数遮蔽”的掩蔽方法组合,其中掩蔽方法在任何情况下所需的除法也都可用于本发明的保护方法。本发明的方法可以按照这种方式以非常小的额外代价来实施。 
图3示出计算模块32’的方法步骤,其根据图2的计算模块32进行了修改,其中,计算模块32’附加采用了由WOO1/48974A1公知的指数遮蔽技术。为此,首先在步骤46中,选择一个长度例如为64位(8字节)的随机数r。在步骤48中,执行有余数的除法,将受保护的CRT指数dp分解成因子dp1和r·sp以及余数dp2;其中dp=dp1·r·sp+dp2成立。因此与WO01/48974A1公开的方法相 比,在步骤48中,将值r·sp用作除数,而不是随机数r。 
在步骤50和52中,执行前两次求幂运算,其中基值x模p首先以随机数r为幂,然后,由此获得的中间结果y11以整数商dp1为幂。对于结果y12,y12=((xmod p)^r)^dp1=(x mod p)^(r·dp1)成立。安全值sp还没有进入步骤50和52,因为到此用于保护CRT指数dp的乘法已经在与除法48的关联中被颠倒了。 
在步骤54中类似于图2的步骤34进行整除性检查,以保证密钥参数sp和dp的完整性。但与图2的步骤34相比,不是受保护的CRT指数dp被sp除,而是相除余数dp2被sp整除。由于dp2只与dp相差一个倍数r·sp,并由此也相差一个倍数sp,因此两次检验是等值的。但是,由于被除数dp2更短,因此执行步骤54而产生的计算代价大大低于图2的步骤34中的计算。而且,在下个步骤56中需要整数除法结果dp2/sp。与根据WO01/48974A1的公知方法相比,步骤54中的除法和整除性检查只有附加计算代价。 
如果df2不是sp的整倍数,则该方法在步骤54中由错误跳转终止。否则,在步骤56中根据y13:=(x mod p)^(dp2/sp)计算另一个中间值y13。在步骤58中确定乘积y12·y13作为计算模块32’的结果y1。该结果等于根据图2的步骤36计算的第一辅助值y1,因为下式成立: 
y1=y12·y13 
=((x mod p)^(r·dp 1))·((x mod p)^(dp2/sp)) 
=(x mod p)^((r·dp 1)+(dp2/sp)) 
=(x mod p)^(dp/sp) 
在此描述的保护实施例变形中的整个RSA-CRT方法以图2所示的步骤30中对参数p、q和pinv的完整性检验开始。接着是作为第一CRT计算途径的根据图3的计算模块32’的步骤,以确定第一辅助值y1。图3所示的方法同样可以用于计算第二辅助值y2,当然其中密钥参数p、sp和dp被q、sq和dq取代。随机数r可以从计算模块32’的第一阶段中取出,也可以重新确定。最后,通过如图2的步骤44所示的将两个辅助值y1和y2组合来计算最终结果。 
图4所示的方法提供了另外一个检验步骤,其中采用了另一掩蔽参数j。第一计算块60大致上对应于图2的步骤30。在步骤62中,选择掩蔽参数j作为长度例如为32位(4字节)的随机质数。质数因子p和q分别在步骤64和66中乘以掩蔽参数j,以获得掩蔽质数因子p’或q’。在步骤68中进行测试,以检查密钥参数p、q和pinv的完整性。如果p’·pinv=j mod q’成立,则继续该 方法;否则发生错误跳转。 
在第二计算块70中,根据公式y1:=(x^(dp/sp))mod p’来确定第一辅助值y1。第一辅助值y1实际上对应于图2和图3的实施例中的第一辅助值,但其中将p’而不是p用于模计算。具体地说,在不同的实施例变形中,该计算可以作为图2的计算模块32进行,也可以作为图3的计算模块32’进行。在两种情况下都执行整除性检查,以保证密钥参数sp和dp的完整性。 
第三计算块72对应于第二计算块70,不同之处在于将dq、sq和q’而不是dp、sp和p’用于计算第二辅助值y2。同样,第三计算块72可以象图2中的计算模块38那样配置,也可以象图3中的表示那样配置。密钥参数sq和dq的完整性由第三计算块72中的完整性测试来检验。 
步骤74涉及根据公式y’:=[((y2-y1)·pinv)mod q’]·p+y1来计算中间结果y’。这大致上对应于图2的步骤44。在步骤76中还进行一次测试,以使迄今为止的计算互相关联并识别受干扰的计算流程。要检查以下模j的等式关系是否成立: 
y’mod j=[((x^(dq/sq))mod j-(x^(dp/sp))mod j)·pinv·p 
            +(x^(dp/sp))mod j]mod j 
如果不满足该等式,则发生错误终止。否则,该方法在步骤78中结束,并根据y:=y’mod n获得最终计算结果y,其中n是满足n=p·q的模数。在根据图4的方法中,通过在步骤76中进一步检验计算流程更好地改善了对密码攻击的防护。 

Claims (11)

1.一种受保护地执行用于解密或产生签名的RSA-CRT方法的方法,其中采用具有至少两个密钥参数(p,q,pinv,sp,dp,sq,dq)的私钥(12),所述至少两个密钥参数(p,q,pinv,sp,dp,sq,dq)包括受安全防护的CRT指数(dp,dq)和安全值(sp,sq),其特征在于包括以下步骤:对该私钥(12)执行用于防止其中通过干扰至少一个第一密钥参数(p,q,pinv,sp,dp,sq,dq)而推断出至少一个第二密钥参数(p,q,pinv,sp,dp,sq,dq)的密码攻击的完整性检验(30,34,40,54),其中受安全防护的CRT指数(dp,dq)是用于解密或产生签名的RSA-CRT方法所需的CRT指数乘以一个安全值(sp,sq)所获得的乘积,并且其中所述完整性检验(30,34,40,54)包括整除性检验。
2.根据权利要求1所述的方法,其特征在于,在所述完整性检验(30,34,40,54)中,确定至少一个密钥参数(p,q,pinv,sp,dp,sq,dq)的值是否包含在有效值的范围内,其中,该范围由于有多个空隙而是非连续的。
3.根据权利要求1所述的方法,其特征在于,在所述完整性检验(30,34,40,54)中,确定至少两个密钥参数(p,q,pinv,sp,dp,sq,dq)相互之间是否具有预定的关系。
4.根据权利要求1所述的方法,其特征在于,在所述完整性检验(30,34,40,54)中,检查一个密钥参数(p,q,pinv,sp,dp,sq,dq)是否能被安全值(sp,sq)整除,或者与该密钥参数(p,q,pinv,sp,dp,sq,dq)相差安全值(sp,sq)的倍数的值是否能被该安全值(sp,sq)整除。
5.根据权利要求1所述的方法,其特征在于,在所述完整性检验中,将与密钥参数(p,q,pinv,sp,dp,sq,dq)一起存储的校验和与在传递该密钥参数(p,q,pinv,sp,dp,sq,dq)后重新计算的校验和进行比较。
6.根据权利要求1所述的方法,其特征在于,为了检验完整性,多次传递重要的、要传递的参数并在传递之后检验同一性。
7.根据权利要求1所述的方法,其特征在于,在所述用于解密或产生签名的RSA-CRT方法中进行至少一次求幂运算,并在所述完整性检验(30,34,40,54)中检查,在所述求幂运算中使用的指数是否能被安全值(sp,sq)整除。
8.根据权利要求7所述的方法,其特征在于,在所述用于解密或产生签名的RSA-CRT方法中将指数遮蔽方法用于防止窥视。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述RSA-CRT方法的质数因子(p,q)乘以遮蔽参数(j),并通过以该遮蔽参数(j)为模的等式检验来检验该计算的正确性。
10.一种确定用于解密或产生签名的RSA-CRT方法的私钥的方法,该私钥具有至少两个密钥参数(p,q,pinv,sp,dp,sq,dq),所述至少两个密钥参数(p,q,pinv,sp,dp,sq,dq)包括受安全防护的CRT指数(dp,dq)和安全值(sp,sq),所述私钥用于根据权利要求1至8中任一项所述的方法。
11.根据权利要求10所述的方法,其特征在于,通过将用于解密或产生签名的RSA-CRT方法所需的CRT指数乘以一个安全值(sp,sq)来获得受安全防护的CRT指数(dp,dq)。
CN03821623XA 2002-09-11 2003-09-09 受保护的密码计算 Expired - Fee Related CN1682484B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
DE10242061.0 2002-09-11
DE10242061 2002-09-11
DE10250810A DE10250810A1 (de) 2002-09-11 2002-10-31 Geschützte kryptographische Berechnung
DE10250810.0 2002-10-31
PCT/EP2003/010015 WO2004032411A1 (de) 2002-09-11 2003-09-09 Geschützte kryptographische berechnung

Publications (2)

Publication Number Publication Date
CN1682484A CN1682484A (zh) 2005-10-12
CN1682484B true CN1682484B (zh) 2012-03-21

Family

ID=32070689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN03821623XA Expired - Fee Related CN1682484B (zh) 2002-09-11 2003-09-09 受保护的密码计算

Country Status (7)

Country Link
US (1) US7983414B2 (zh)
EP (1) EP1540880B1 (zh)
CN (1) CN1682484B (zh)
AT (1) ATE320125T1 (zh)
AU (1) AU2003271594A1 (zh)
DE (1) DE50302617D1 (zh)
WO (1) WO2004032411A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4626148B2 (ja) * 2004-01-07 2011-02-02 株式会社日立製作所 復号または署名作成におけるべき乗剰余算の計算方法
US20050152539A1 (en) * 2004-01-12 2005-07-14 Brickell Ernie F. Method of protecting cryptographic operations from side channel attacks
US20060083370A1 (en) * 2004-07-02 2006-04-20 Jing-Jang Hwang RSA with personalized secret
US20070019805A1 (en) * 2005-06-28 2007-01-25 Trustees Of Boston University System employing systematic robust error detection coding to protect system element against errors with unknown probability distributions
DE102005038228A1 (de) * 2005-08-12 2007-02-15 Giesecke & Devrient Gmbh Geschütztes kryptographisches Verfahren
US7822207B2 (en) * 2006-12-22 2010-10-26 Atmel Rousset S.A.S. Key protection mechanism
EP2401734B1 (en) * 2009-02-27 2016-04-20 Certicom Corp. System and method for performing exponentiation in a cryptographic system
US8681973B2 (en) * 2010-09-15 2014-03-25 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for performing homomorphic encryption and decryption on individual operations
FR2975248B1 (fr) * 2011-05-09 2013-06-21 Ingenico Sa Dispositif et procede de generation de cles a securite renforcee pour algorithme de chiffrement pleinement homomorphique.
DE102011117219A1 (de) 2011-10-28 2013-05-02 Giesecke & Devrient Gmbh Bestimmen eines Divisionsrests und Ermitteln von Primzahlkandidaten für eine kryptographische Anwendung
DE102011117237A1 (de) 2011-10-28 2013-05-02 Giesecke & Devrient Gmbh Effiziente modulare Inversion mit Primzahltest
DE102011117236A1 (de) 2011-10-28 2013-05-02 Giesecke & Devrient Gmbh Effiziente Primzahlprüfung
FR3018372B1 (fr) * 2014-03-06 2023-09-29 Oberthur Technologies Generation de message pour test de generation de cles cryptographiques
DE102017006169B4 (de) * 2017-06-29 2019-01-24 Giesecke+Devrient Mobile Security Gmbh Mikroprozessor-Einrichtung mit Schlüssel-Prüfungs-Routine

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1227687A (zh) * 1996-06-05 1999-09-01 西门子公司 在第一计算机单元和集群计算机单元之间基于集群的密码管理方法
US5991415A (en) * 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405829A (en) * 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
EP0216590B2 (en) 1985-09-20 2001-06-06 Btg International Limited Magnetic field screens
DE68926005T2 (de) 1988-08-11 1996-10-17 Ibm Sichere Schlüsselverwaltung mittels Steuervektoren
US4924514A (en) * 1988-08-26 1990-05-08 International Business Machines Corporation Personal identification number processing using control vectors
GB2270446B (en) 1992-09-04 1996-01-24 Ibm Uk Improvements in cryptography
US5390196A (en) * 1992-11-12 1995-02-14 Bull Hn Information Systems Inc. Byte-wise determination of a checksum from a CRC-32 polynomial
FR2704341B1 (fr) * 1993-04-22 1995-06-02 Bull Cp8 Dispositif de protection des clés d'une carte à puce.
JPH09507729A (ja) * 1994-01-13 1997-08-05 バンカーズ・トラスト・カンパニー キー寄託機能付き暗号システムおよび方法
US5675649A (en) * 1995-11-30 1997-10-07 Electronic Data Systems Corporation Process for cryptographic key generation and safekeeping
US5673316A (en) 1996-03-29 1997-09-30 International Business Machines Corporation Creation and distribution of cryptographic envelope
US5796830A (en) * 1996-07-29 1998-08-18 International Business Machines Corporation Interoperable cryptographic key recovery system
FR2759833A1 (fr) 1997-02-19 1998-08-21 Gemplus Card Int Procede de protection d'une cle mere destinee a permettre l'authentification de cartes utilisateurs
US6965673B1 (en) * 1997-09-19 2005-11-15 Telcordia Technologies, Inc. Method of using transient faults to verify the security of a cryptosystem
US7415110B1 (en) * 1999-03-24 2008-08-19 Intel Corporation Method and apparatus for the generation of cryptographic keys
DE19944991B4 (de) * 1999-09-20 2004-04-29 Giesecke & Devrient Gmbh Verfahren zur Sicherung eines Programmablaufs
DE19963408A1 (de) * 1999-12-28 2001-08-30 Giesecke & Devrient Gmbh Tragbarer Datenträger mit Zugriffsschutz durch Schlüsselteilung
US7685423B1 (en) * 2000-02-15 2010-03-23 Silverbrook Research Pty Ltd Validation protocol and system
DE10024325B4 (de) * 2000-05-17 2005-12-15 Giesecke & Devrient Gmbh Kryptographisches Verfahren und kryptographische Vorrichtung
US6959091B1 (en) * 2000-07-28 2005-10-25 Atmel Corporation Cryptography private key storage and recovery method and apparatus
US6914983B2 (en) * 2000-12-19 2005-07-05 International Business Machines Corporation Method for checking modular multiplication
DE10143728B4 (de) * 2001-09-06 2004-09-02 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Exponentiation
FR2830146B1 (fr) * 2001-09-24 2003-10-31 Gemplus Card Int Procede de mise en oeuvre, dans un composant electronique, d'un algorithme de cryptographie et composant correspondant
WO2003032159A2 (en) * 2001-10-11 2003-04-17 Altera Corporation Error detection on programmable logic resources
AU2002340566A1 (en) * 2001-10-17 2003-04-28 Infineon Technologies Ag Method and device for guaranteeing a calculation in a cryptographic algorithm
US20030196096A1 (en) * 2002-04-12 2003-10-16 Sutton James A. Microcode patch authentication

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1227687A (zh) * 1996-06-05 1999-09-01 西门子公司 在第一计算机单元和集群计算机单元之间基于集群的密码管理方法
US5991415A (en) * 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks

Also Published As

Publication number Publication date
AU2003271594A1 (en) 2004-04-23
WO2004032411A1 (de) 2004-04-15
EP1540880A1 (de) 2005-06-15
EP1540880B1 (de) 2006-03-08
ATE320125T1 (de) 2006-03-15
US20060050868A1 (en) 2006-03-09
DE50302617D1 (de) 2006-05-04
US7983414B2 (en) 2011-07-19
CN1682484A (zh) 2005-10-12

Similar Documents

Publication Publication Date Title
CN108833103B (zh) 射频识别标签和读取设备之间进行安全通信的方法和系统
JP4671571B2 (ja) 秘密情報の処理装置および秘密情報の処理プログラムを格納するメモリ
JP4216475B2 (ja) 漏洩抵抗力を有する暗号索引付き鍵の更新方法及びデバイス
CN1682484B (zh) 受保护的密码计算
EP0191324B1 (en) Offline pin cryptographic validation
US8472621B2 (en) Protection of a prime number generation for an RSA algorithm
JP2019527950A (ja) 通信装置、販売時点端末、支払装置、及び方法
JP2008269610A (ja) リモートアプリケーションを対象とした機密データの保護
RU2579990C2 (ru) Защита от пассивного сниффинга
EP3191936B1 (en) System and method for one-time chinese-remainder-theorem exponentiation for cryptographic algorythms
EP1531579A2 (en) RSA public key generation apparatus, RSA decryption apparatus, and RSA signature apparatus
JP2011530093A (ja) 累乗法による暗号化を保護する解決策
JP2004304800A (ja) データ処理装置におけるサイドチャネル攻撃防止
EP3973659A1 (en) Method for securing against fault attacks a verification algorithm of a digital signature of a message
EP1443699A1 (en) Information processing means and IC card
US20140013102A1 (en) Method for verifying the security of a device for generating private and public cryptographic keys
WO2017114739A1 (en) System and method for hiding a cryptographic secret using expansion
Blömer et al. Wagner’s Attack on a secure CRT-RSA Algorithm Reconsidered
US20040184604A1 (en) Secure method for performing a modular exponentiation operation
EP3166013B1 (en) Modular exponentiation using randomized addition chains
KR100954844B1 (ko) 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체
JP3952304B2 (ja) 電子コンポネントにおいて公開指数を求める暗号アルゴリズムを実行する方法
US7760884B2 (en) Cryptographic method and devices for facilitating calculations during transactions
KR101112570B1 (ko) 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체
Liu et al. A CRT-RSA algorithm secure against hardware fault attacks

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

Effective date of registration: 20180223

Address after: Munich, Germany

Patentee after: Jiejia de mobile safety Co.,Ltd.

Address before: Munich, Germany

Patentee before: Giesecke & Devrient GmbH

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120321

CF01 Termination of patent right due to non-payment of annual fee