采用密钥的数据处理的制作方法

文档序号:6679418阅读:206来源:国知局
专利名称:采用密钥的数据处理的制作方法
技术领域
本发明大体上涉及任何电子数据处理装置,其中,数据必须通过秘密密钥来进行处理。
例如,数据处理涉及根据预定的加密算法对数据进行加密。对数据逐块加密。对于每个数据块,秘密密钥构成加密密钥,并与数据块一起用于算法中,以便产生加密数据。
数据处理装置一般为例如包含在终端或智能卡中的微控制器,它包含只读存储器,在制造处理装置时在只读存储器中预先存储了加密密钥。
为了认识被加密的数据,众所周知,攻击者、即不怀好意的人设法读取处理装置中的加密密钥,或者在可访问时通过将电压测量仪连接到处理装置与外界之间的电气接口或者处理装置内部的总线上,设法对电气消耗进行分析。
因此,为了预防这种攻击,已知如何将第一随机数和加密密钥代入预定的逻辑函数,以便产生处理密钥,从而采用该处理密钥执行加密算法。因此,每次要加密一个数据块时,均产生第一随机数,并且产生与先前加密所用的加密密钥不同的加密密钥。这种加密方法使攻击者查找加密密钥会困难得多,因为每次加密中所用的处理密钥本来就是随机的。
但是,这种已知方法以明码的方式对处理装置的存储器中的加密密钥进行操作。
本发明的目的是对数据处理装置中秘密密钥的脆弱性进行补救,以便使其难以获取。
为此,一种用于采用数据处理装置中的第一密钥来处理数据的方法的特征在于,它包括以下步骤对于所有的数据处理,预先并且一次将秘密密钥和第一随机数运用于第一函数,以便在处理装置中产生第一密钥;以及在处理装置中预先存储第一密钥和第一随机数。
虽然用于数据处理的第一密钥取决于秘密密钥和第一随机数,但秘密密钥并不是存储在处理装置中的,而且预先存储所产生的第一密钥。因此,在每次数据处理中,不会以明码的形式来使用或转换秘密密钥。
例如,所述第一和第二函数是“异或”函数,而所述数据处理是数据加密。
根据本发明的第一最佳实施例,对于每次数据处理,该方法包括产生第二随机数;将第一密钥和所产生的第二随机数运用于第二函数,以便产生第二密钥;以及将第二密钥和预先存储的第一随机数运用于第一函数的反函数,以便产生用于数据处理的第三密钥。
根据本发明的第二最佳实施例,该方法对于密码的验证特别有利,所述密码构成提供给数据处理装置、如智能卡的待处理数据。然后,在与第一密钥有关的运用的同时,把提供密码和所产生的第二随机数运用于第二函数,以便产生转换后的提供代码,数据处理包括第三密钥与转换后的提供代码的比较。
通过阅读以下参照相应附图对本发明的若干最佳实施例进行的描述,本发明的其它特征和优点会更加明显。


图1是根据本发明的数据处理方法的主要步骤的算法;图2是与图1相似的方框图,详细说明根据本发明的第一实施例、用于加密的数据处理;图3是与图1相似的方框图,详细说明根据本发明的第二实施例、在智能卡作为电子数据处理装置的情况下对密码进行的数据处理;以及图4是示意方框图,说明根据本发明、在智能卡的情况下用于实现数据处理方法的系统。
从图1可以看到,根据本发明的最佳实施例的数据处理方法包括预先初始化步骤I1至I3,用于确定作为秘密密钥K的函数、要存储在电子数据处理装置DTD中、称作处理密钥的第一密钥K1;以及每当要在装置DTD中处理数据时(如图1中的初始步骤E0所示)进行的循环数据处理步骤ET。例如,如果数据处理装置是智能卡,则在获得智能卡时,例如在订购可访问该卡功能性的业务时,或者在制作智能卡本身时,数据处理装置的供应商可以在售卡处自行执行初始步骤I1至I3。
事先,已经注意到,在第一步骤I0,在处理装置的存储器中实现代表本发明特征的处理算法AL和函数F1。
在初始步骤I1,例如根据数据处理装置DTD的制造商所建立的数据,确定秘密密钥K并将其写入该装置的随机存取存储器RAM。紧接着在随后的步骤I2中,产生第一随机数R1,并与所确定的秘密密钥K一起运用于第一函数F1,以便产生处理密钥K1。
在步骤I3的初始化结束时,处理密钥K1和第一随机数R1存储在数据处理装置DTD的非易失性存储器、例如EEPROM存储器中。
因此,只有处理密钥K1而不是秘密密钥K被存储在装置DTD的存储器中,而按照先有技术的方法,秘密密钥K持续地包含在数据处理装置的存储器中。在接下来的步骤ET中的数据处理绝不以明码的方式使用秘密密钥K,它没有存储在装置DTD中。
根据图2所示的第一实施例,处理步骤ET涉及到数据的编码或加密、或者其它类似的处理。步骤ET包括数据处理步骤E1至E4的循环,每当装置DTD中要在步骤E4根据处理算法AL1来处理数据时,如初始步骤E0所指示,都要执行步骤ET。例如,每当装置DTD要将处理后的数据块BD向外界发送、例如在装置DTD是智能卡的情况下向主机终端发送时,或者无论何时要对数据块执行操作时,就执行步骤E1至E4。
当构成数据处理装置的中央处理单元的处理器在步骤E0中决定处理数据时,在步骤E1,产生第二随机数R2,并且将步骤I3中已经预先存储的第一密钥K1读入非易失性存储器。所读出的第一密钥K1和所产生的第一随机数R1被运用于第二函数F2,以便在随后的步骤E2中产生结果K2=F2(K1,R1)。在初始步骤I0,采用装置DTD的存储器中的第一函数F1来实现第二函数F2。这次运用的结果K2构成输入到装置DTD内部的寄存器中的第二密钥K2。
然后读取第二密钥K2和预先存储的第一随机数R1,以便将其运用到第一函数F1的反函数F1-1,从而产生第三密钥K3=F1-1(K2,R1),等于F1-1(F2(K1,R2),R1)=F1-1(F2(F1(K,R1),R2),R1)即K3=F2(K,R2)。
最后,在步骤E4,待处理的数据块BD被读取,并与以前所产生的第三密钥K3一起运用于数据处理算法AL1。例如,数据处理算法AL1是一种数据加密算法,比如已知的算法DES(数据加密标准)、RSA(Rivest,Shamir,Adleman)、压缩算法或者用于装置DTD的鉴权算法。
因此,根据密钥K3通过算法AL来处理数据块BD,其中,密钥K3只是秘密密钥K和处理装置中产生的第二随机数R2的函数,因此与随后的一种数据处理BD不同,使得这个用于正确处理数据的第三密钥无法直接从第一密钥K1来推算,而只有第一密钥K1永久地存储在装置DTD中。
作为一种变型,如图2中与步骤E3并行执行的步骤E5所示,待处理的数据块BD和作为处理器所产生的不同于第二随机数R2的先验值的第三随机数R3被运用于第三函数F3,第三函数F3也是在步骤I0预先在装置DTD中实现的。函数F3产生修改的数据DM=F3(BD,R3),在根据图2的步骤E4中,这些数据根据产生的第三密钥K3,按照处理算法AL1进行处理,或者更一般地,在根据图1的步骤ET中按照处理密钥K1的处理来进行。
通过简单的实例,第一、第二和第三函数F1、F2、F3是简单的逻辑函数,如“异或”,对于这些函数,与函数F1-1对应的反函数也是“异或”。因此,在步骤3结束时,有K3=(KR1)R2)R1,即K3=KR2。
根据另一个实例,函数F1和F2是加法,函数F1的反函数F1-1是减法。
根据图3所示的本发明的第二实施例,采用处理密钥的方法用于提高密码、比如秘密密钥的控制的安全性,所述秘密密钥与作为数据处理装置的芯片卡CA、也称作微控制卡或集成电路卡(智能卡)相关联,以便防止对智能卡中的秘密密钥进行任何操作。
下面参照图4来简要地说明,智能卡CA包括微控制器,其中包含由微处理器PR所构成的中央处理器CPU;ROM类型的存储器MO,其中包含智能卡的操作系统OS,具体地说,包含特定通信应用程序及鉴权算法,在本例中为根据本发明的数据处理方法的数据处理算法AL以及函数F1和F2;可编程可擦写类型的非易失性存储器MNV、如EEPROM存储器,它包含与智能卡处理器以及卡供应商有关的具体数据;以及RAM类型的存储器MA,用于接收具体来自卡接收终端TE的数据。所有部件PR、MO、MNV以及MA都通过内部总线BU连接在一起。
主机终端TE、如银行终端或电话终端配备了小键盘CL,专门用于键入要提供给卡的密码CP、也称为秘密代码。在终端TE的读出器LE中有卡CA的插入部分,卡中包含微控制器,并且在该卡是接触式的情况下,通常支持读出器LE和智能卡CA内部总线BU之间的电气连接LI的八个电气触点。
参照图3,图中给出了已经说明过的数据处理步骤E1至E3,这些步骤之前是根据图1的初始步骤I0至I3。
在将卡C1插入主机终端TE的读出器LE从而将它通过内部总线BU的电气连接LI与智能卡CA的微控制器相连之后紧接的初始步骤E01之后,执行这些步骤E1至E3。
在智能卡的情况中,每当对应于卡的每次使用而在本发明的意义之内进行数据处理时,在步骤E0,在终端TE的小键盘CL上键入通常必须与从不以明码形式保存在卡中的秘密密钥K相同的提供密码CP,以便验证卡CA中提供的代码,随后按下确认键。当键入所提供代码的数字,例如四位数或者是码组的形式时,终端TE将构成根据图2的数据块BD的提供密码CP通过连接LI和总线BU传送给卡CA,使其写入RAM存储器MA,这是在步骤E0。
将提供密码CP写入RAM存储器MA的确认会触发随后的步骤E1至E3。
具体地说,在步骤E2中,第一密钥K1和所产生的第二随机数R2被运用于第二函数F2,与此同时,在步骤E51中,处理器PR将包含在存储器MA中的提供密码CP以及所产生的第二随机数R2运用于第二函数F2,以便产生并存储经转换的提供代码CPT=F1(CP,R2)。数字R2通过与处理器PR关联的伪随机发生器来产生。
最后,在步骤E4,处理器将刚才在步骤E3中确定的第三密钥K3=F2(K,R2)以及读入存储器中的转换后的提供代码CPT=F2(CP,R2)运用于处理算法AL1,根据第二实施例,其中包括对第三密钥K3和转换后的提供代码CPT的比较。如果密钥K3与转换后的提供代码CPT相同,则卡CA的功能性可通过终端TE访问,例如以便访问某项业务,例如付费业务或电话业务。否则,当密钥K3不同于代码CPT时,则可以在小键盘CL上在有限次数内尝试键入另一个提供代码。
因此,根据本发明,秘密密钥K没有存储在智能卡中,因而每次验证提供密码CP时,都不会在卡中对秘密密钥K进行操作。另外,尽管秘密密钥K最初与第一随机数R1组合,第一随机数R1在与秘密密钥相关的卡的整个使用过程中保持不变,但用于比较的密钥K3在每次验证时均有所不同,其中,为每次验证产生一个随机数R2。这就保证了绝不会在智能卡中以同样的方式来执行对提供代码CP的验证。
最好是两个智能卡、或者广义地说是两个与相同的秘密密钥相关的数据处理装置与不同的第一随机数R1相关联。随机数R1是对于两个卡不同的先验值,这些随机数的处理结果不能作为这些卡的特征。
最好是,相应的第一随机数R1对应于各个秘密密钥K。因此,最好是,当修改与卡相关的秘密密钥时,第一随机数R1也被修改。例如,如果秘密密钥的两个数字被反转,则与这两个秘密密钥版本对应的前两个随机数是不同的。这种变化能够避免由于在与第一个卡通用的秘密密钥相关联的另一个卡中操作随机数而识别第一个卡中的第一随机数。
在以上说明中,应当知道,智能卡涵盖所有已知类型的智能卡,也称作微控制卡,诸如通过下列非限定性实例给出的接触式或非接触式卡信用卡(签证卡)、缴费卡、电话卡、SIM(用户标识模块)卡、i°additionali±卡、中心购物卡、游戏卡等。更广义地说,本发明不仅涉及智能卡,而且还涉及一般用作电子数据处理装置或设备的其它便携式电子产品,诸如电子助理或管理器、电子钱包、代用币、袖珍计算器等。
例如,接受电子数据处理装置的终端类型可以包括计算机终端、个人计算机、特别是便携式计算机、银行终端、销售点终端、无线电话终端、控制进入某个房间或保险箱的装置等。接受装置可以远离数据处理装置,它们通过任何数据传输方式进行连接。本发明意义之内的秘密密钥在某些情况下还称为密码、口令、秘密代码或者是具体用于无线电话终端的SIM卡的个人识别号码PIN或CHV(持卡人验证)或PTI(个人电信标识符)。
提供密码一般是字母数字代码。它可以通过除小键盘以外的任何已知代码输入方式,例如通过语音和语音识别,或者通过生物签名、如至少一个指纹的识别,加到数据处理装置、智能卡或便携式电子产品中。
权利要求
1.一种用于采用数据处理装置(DTD)中的第一处理密钥(K1)来处理数据(BD)的方法,其特征在于,它包括对于所有的数据处理,预先并且一次通过在所述处理装置(DTD)中产生所述第一密钥(K1),将秘密密钥(K)和第一随机数(R1)运用于(I2)第一函数(F1);以及在所述处理装置中预先存储(I3)所述第一密钥和所述第一随机数。
2.如权利要求1所述的方法,其特征在于根据所述方法,与相同的秘密密钥(K)相关的两个数据处理装置(DTD)与不同的第一随机数(R1)关联。
3.如权利要求1或2所述的方法,其特征在于根据所述方法,与所述处理装置(DTD)相关的所述秘密密钥(K)被修改时,所述第一随机数(R1)也被修改。
4.如权利要求1至3中任一项所述的方法,其特征在于对于每次数据处理(E4)均包括产生(E1)第二随机数(R2);将所述第一密钥(K1)和所产生的所述第二随机数(R2)运用到(E2)第二函数(F2),以便产生第二密钥(K2);以及将所述第二密钥(K2)和预先存储的所述第一随机数(R1)运用到(E3)所述第一函数的反函数(F1-1),以便产生用于所述数据处理(E4)的第三密钥(K3)。
5.如权利要求4所述的方法,其特征在于根据所述方法,所述第一和第二函数(F1,F2)是“异或”函数。
6.如权利要求4或5所述的方法,其特征在于根据所述方法,所述数据处理(E4)是数据加密。
7.如权利要求4至6中任一项所述的方法,其特征在于根据所述方法,待处理的所述数据(BD)和第三随机数(R3)被运用于第三函数(F3),以便产生经过修改的数据(DM),它根据所述第三密钥(K3)或所述第一密钥(K1)的处理(ET)来进行处理(E4)。
8.如权利要求4所述的方法,其特征在于根据所述方法,待处理的所述数据包括提供(E01)给所述数据处理装置(DTD)的密码(CP),所述提供密码(CP)和所产生的所述第二随机数(R2)被运用于(E51)所述第二函数(F2),以便产生转换后的提供代码(CPT),以及所述数据处理包括将所述第三密钥(K3)和所述转换后的提供代码(CPT)进行比较(E4)。
全文摘要
在一种数据处理装置(DTD)中,根据秘密密钥(K)产生第一密钥(K1),以便决不以明码方式使用秘密密钥。在初始步骤中,把秘密密钥(K)和随机数(R1)运用于(I2)函数(F1)以产生第一密钥(K1)。第一密钥和随机数预先存储(I3)在装置中。例如,对于每次数据(BD)处理(ET),第一密钥和另一随机数(R2)运用于(E2)另一函数(F2)以产生第二密钥(K2),并把第二密钥和存储的数(R1)运用于(E3)函数(F1)的反函数(F文档编号G07F7/10GK1437808SQ01811332
公开日2003年8月20日 申请日期2001年6月20日 优先权日2000年6月20日
发明者P·古特尔曼 申请人:格姆普拉斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1