具有通过密钥再分进行存取保护的便携式数据存储介质的制作方法

文档序号:6629347阅读:282来源:国知局
专利名称:具有通过密钥再分进行存取保护的便携式数据存储介质的制作方法
技术领域
本发明涉及一种数据存储介质,该数据存储介质具有存储和处理秘密数据的半导体芯片。
包含芯片的数据存储介质在大量不同的应用中使用,例如应用于实现金融交易、货物或服务付款、或作为用于控制出入检查的识别装置。在所有这些应用中,通常受到保护以防止未授权的第三方访问的秘密数据必须在数据存储介质芯片内进行处理。芯片的内部结构非常小,结果访问该结构以获得经该结构处理的数据是非常困难的,由此可以确保保护数据。为了使数据访问更加困难,芯片可以嵌入在一非常安全的粘着化合物中,如果试图从该化合物中取出该半导体晶片将导致其毁坏,或者至少存储在其上的秘密数据被擦除。也可以在半导体晶片生产过程中为其提供保护层,除非毁坏半导体晶片否则不能将保护层移开。
使用尽管极其昂贵但一般在市面上可以得到的适当技术设备,攻击者可以使芯片的内部结构暴露并对其进行研究。例如,通过特殊的蚀刻方法或通过适当的研磨处理可以使芯片的内部结构暴露。为了确定芯片结构内的信号波形,使用微探针来接触,或者使用其他方法来研究通过诸如互接方式暴露的芯片的结构。这样可以使用检测的信号从数据存储介质中确定秘密数据,如密匙,以便用于操纵目的。这样也可以通过微探针试图故意地改变暴露的结构中的信号波形。
此外,近来通过测量加密处理(“Diffie-Hellman、RSA、DSS和其他系统实现的计时攻击(Timing attacks on implementation of Diffie-Hellman,RSA,DAA,and other Systems)”,保罗.克歇尔(Paul C.Kocher),斯普瑞格出版社(Springer Verlag)1998;WO 99/35782)的电流消耗或计时以推导出秘密数据,尤其是密钥的方法已经众所周知。
该类型的一种简单攻击是“简单的能量分析(SPA)”。在这个分析方法中,例如,使用密钥d加密已知的信息M,即形成加密的文本Y=Mdmod n。在求模取幂处理期间,如果在指数d中存在“1”,则用中间结果执行平方运算,并用M执行乘法运算,然而如果在d中存在“0”,则仅使用中间结果执行平方运算。如果M是已知的,通过在运算期间观察电流和/或计时可以确定信息M。因为在d中存在“1”的情况下一直使用信息M,所以密钥可以毫无问题地推导出。
仅通过在信息M或密钥d中进行改变可以很容易反击这种攻击。从保罗.克歇尔(Paul C.Kocher)的“Diffie-Hellman、RSA、DSS和其他系统实现的计时攻击(Timing attacks on implementation of Diffie-Hellman,RSA,DAA,andother Systems)”(斯普瑞格出版社(Springer Verlag),1998年)以及国际专利申请WO 99/35782可以进一步了解到分析方法,其中即使信息或密钥被修改,即被加密,通过记录大量的测量集成电路的电流响应的测量曲线也可以推导出密钥(“微分能量分析(Differential Power Analysis)”(DPA)或更高阶的DPA)。
所谓的“指数消隐(blinding)”已经被作为保密措施而提出,其中不直接使用密钥d。
首先,取代密钥d,对于加密处理使用了d+r*Φ,其中r是随机数以及Φ是欧拉PHI函数。具体地,对于RSA算法n=p*q,其中p和q是质数,因此Φ=(p-1)*(q-1)。使用欧拉定理Mdmodn=Md+r*Φmodn。
如果针对每次计算使用不同的随机数r,即使是执行大量系列的分析处理也不可能推导出密钥d。
或者,密钥d可以分解成d1*d2 mod Φ,所以,对于加密处理,Y=Md1*d2 modΦmodn=(Md1)d2modn。
但是这种保护选择的缺点在于,由于缺乏存储空间,所以质数p和q或Φ通常不存储在智能卡中。
密钥d也可以分解成d1与d2的和。则d=d1+d2,并且对于加密处理Y=Md1+d2modn=Md1*Md2modn=(Md1modn*Md2modn)modn。
为了获得足够高的保密等级,对于每次计算必须选择新的随机d1/d2对以将指数分解成d=d1+d2或d=d1*d2 mod Φ。由于随机数的产生通常非常慢,这种方法不适用于智能卡。此外,求模取幂处理的计算复杂性显著地增加,从而这种方法也不适宜使用在智能卡中。
因此,本发明的一个目的是保护包含在便携式数据存储介质的芯片中的秘密数据,防止未授权的存取,其目标在于确保数据仍然可以如以前一样有效地使用。
以权利要求1、7和12前序部分为基础,通过各个权利要求的特征部分可以实现该目的。
本发明提供了一种具有半导体芯片的数据存储介质,该半导体芯片至少具有一个存储有包含多个指令的运算程序的存储器,其中每个指令产生可以从半导体芯片外部检测到的信号。
根据本发明,数据存储介质经过设计以便将秘密数据分解成至少三个数据部分,其中该秘密数据存储在半导体芯片中以便执行保密相关或安全相关的运算,或者由该半导体芯片生成。数据存储介质包括计算单元或运算单元,用于计算随机数并将秘密数据除以随机数。第一数据部分包括除法运算的整数结果,第二部分由除法运算的余数产生,而第三数据部分是随机数本身。
根据本发明的一个有利改进,秘密数据包括加密信息的密钥,最好该密钥用作计算不对称加密法中(公用密钥方法,例如椭圆曲线、RSA等)的群运算或者模运算的指数。
本发明的进一步改进规定了将要选择的随机数,从而对于不同的随机数,随机数的长度以及随机数的汉明权近似为常数。这意味着不能从求模取幂处理的时间段中推导出秘密数据,时间段与指数的长度以及指数的汉明权成比例。
根据本发明的方法规定密钥将要除以比较小的随机数。除余数之外的除法结果作为密钥的第一部分,余数作为密钥的第二部分,而随机数作为第三部分。
为了加密信息M,Y=Mdmodn。密钥分解成d1、d2和r,其中d1=d/r(r是随机数),不包括余数。除法运算的余数是密钥d的第二部分d2,所以d2=d mod r,并且对于密钥d,d=r*d1+d2。
这导致加密文本Y=Mdmodn=Mr*d1+d2modn=(Mr)d1*Md2modn=((Mr)d1modn *Md2modn)modn

图1说明了形成加密的文本Y的过程。
首先,在步骤1形成随机数r。在步骤2,通过除以由先前获得的随机数r从密钥d中计算出第一密钥部分d1。通过执行d mod r而获得密钥的第二部分d2。
加密文本的计算开始于步骤4,首先计算Mrmod n。在下一个步骤5中计算D1=(Mr)d1mod n,而在步骤6中计算D2=Md2mod n。
当然,在某些情况下各个计算操作的顺序也可以在时间上互换。因此可以首先计算Md1mod n,然后计算(Md1)rmod n,因为(Mr)d1mod n=(Md1)rmod n。
在最后的步骤7中,中间结果D1和D2相互相乘,并且进行模数n运算。因此D1*D2 mod n=Mdmod n=Y。
本发明具有以下优点不需要在卡上存储用于形成Φ的质数p和q,并且避免了生成需要花费很长计算时间的长随机数。求模运算的计算复杂性也保持在合理的限度内,因此根据本发明的解决方法可以既安全又有效地使用在智能卡中。此外,对于所述的方法,不需要修改数据存储介质的非易失性存储器中的数据,因为这个耗费时间的过程将会导致非易失性存储器老化。
因为求模取幂需要与指数的长度和指数的汉明权成比例的时间段,如果使用一种r的长度和r的汉明权是常数的方法来产生随机数r,可以实现在安全上的进一步改进。
本发明可以用于大量的加密系统。例如,可以用于RSA加密、基于ElGamal的加密、DSA和椭圆曲线系统等。
权利要求
1.一种具有半导体芯片的数据存储介质,该半导体芯片至少具有一个存储有包含多个指令的运算程序的存储器,其中每个指令生成可以从半导体芯片外部检测到的信号,其特征在于,该数据存储介质经过设计以便将秘密数据划分解成至少三个数据部分,该秘密数据存储在半导体芯片中以便执行保密相关或安全相关的运算或者由该半导体芯片生成,该数据存储介质包括运算器以便计算随机数并除以随机数,除法运算得出的整数值作为第一数据部分,除法运算的余数作为第二部分,以及随机数本身作为第三部分。
2.如权利要求1所述的数据存储介质,其特征在于,秘密数据是用于加密信息的密钥。
3.如权利要求1和2所述的数据存储介质,其特征在于,在不对称的加密方法中,使用秘密数据作为计算群运算的指数。
4.如权利要求1至3中任一项所述的数据存储介质,其特征在于,使用秘密数据作为计算求模运算的指数。
5.如权利要求1至3中任一项所述的数据存储介质,其特征在于,使用秘密数据作为计算求模运算的指数。
6.如权利要求1至5中任一项所述的数据存储介质,其特征在于,选择随机数以使随机数的长度和随机数的汉明权对于不同的随机数近似为常数。
7.一种用于保护在具有半导体芯片的数据存储介质中的秘密数据的方法,该半导体芯片至少包括一个存储有多个指令的运算程序的存储器,其中每个指令产生可以在半导体芯片外部检测到的信号,其特征在于,秘密数据被分解成至少三个数据部分,该秘密数据存储在半导体芯片中以便执行保密相关或安全相关的运算或者由该半导体芯片产生,该方法首先计算随机数,并且由将秘密数据除以随机数的整数结果得到第一数据部分,除法运算的余数作为第二部分,而随机数本身作为第三部分。
8.如权利要求7所述的方法,其特征在于,秘密数据是用于加密信息的密钥。
9.如权利要求7或8所述的方法,其特征在于,在不对称加密方法中,使用秘密数据作为计算群运算的指数。
10.如权利要求7或8所述的方法,其特征在于,使用秘密数据作为计算模运算的指数。
11.如权利要求7或8所述的方法,其特征在于,使用密钥作为计算求模运算的指数。
12.如权利要求7至11中任一项所述的方法,其特征在于,选择随机数以便随机数的长度和随机数的汉明权对于不同的随机数近似为常数。
13.一种用于在系统中形成加密信息以验证系统元件或形成特标记的方法,其特征在于形成随机数r;通过将密钥d除以先前获得的随机数r来计算出第一密钥部分d1;通过执行d mod r来获得密钥的第二部分d2;通过计算Mrmod n以开始计算加密的文本;计算D1=(Mr)d1mod n和D2=Md2mod n;和互乘中间结果D1和D2并且形成模n。
14.如权利要求13所述的方法,其特征在于,首先计算Md1mod n,接着计算(Md1)rmod n,以便计算D1。
全文摘要
本发明涉及具有半导体芯片的数据载体,所述半导体芯片至少具有一个存储有运算程序的存储器,所述运算程序包含多个指令,由此每个指令可以通过能够从半导体芯片外部检测到的信号得出。本发明的目的是用于通过“微分能量分析”(DPA)或更高阶的DPA来保护在数据载体的芯片中提供的秘密数据。在这个方面,本发明所提供的是,为了在半导体芯片中实现保密相关的运算,数据载体经设计用于将秘密数据分解成至少三个部分,所述秘密数据存储在数据载体中或由数据载体产生,由此其中包括用于计算随机数并除以该随机数的运算单元,由此第一数据部分是除法运算的整数结果,第二部分是除法运算的余数,而第三部分是随机数本身。
文档编号G06F12/14GK1415147SQ00817950
公开日2003年4月30日 申请日期2000年12月20日 优先权日1999年12月28日
发明者赫曼·德雷克斯勒, 哈拉尔德·瓦特 申请人:德国捷德有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1