对数据处理装置的访问控制的制作方法

文档序号:6679420阅读:183来源:国知局
专利名称:对数据处理装置的访问控制的制作方法
技术领域
本发明总体涉及到电子数据处理装置,通过秘密代码(也被称作密码或口令)去访问其功能或相关的业务,处置装置通常都是在其接受装置中的键盘的输入之后,会接收到这种密码。
例如,数据处理装置可以是微控制器卡,它也被称作集成电路卡或智能卡,例如用于银行终端的信用卡,或者用于电子售货点(POS)终端或例如配备附加读卡器的移动无线电话终端等任意其它终端的电子货币卡,或者移动无线电话终端内的SIM(用户身份模块)识别卡。
更加具体而言,本发明涉及到利用智能卡接收到的秘密代码,并将其与智能卡相关并且目前预存储于其中的隐秘秘密代码进行比较,从而可以去控制针对智能卡功能的访问的安全性。
妄图能够得知智能卡的隐秘秘密代码的恶意攻击者,通过把电压测量设备连接到智能卡与其接受终端之间的电子接口,就能够进行单一功率分析(SPA)。
在现有技术的智能卡中,在对验证智能卡真正持卡人过程中出现的任意秘密代码进行校验期间,需要处理预存储在智能卡的非易变存储器中的隐秘秘密代码。特别是,卡内的处理器从非易变存储器中读取隐秘代码,并且将其与暂时存储在智能卡RAM存储器内的接收到的代码进行比较。
因此,当前智能卡存在由记录智能卡的能量消耗特性而造成的信息泄漏的可能性。
本发明的目的在于提高由例如智能卡等数据处理装置所接收到的秘密代码校验的安全性,并且避免在数据处理装置内,进行隐秘代码的任意处理。
为了做到这一点,用于访问与隐秘秘密代码相关并且通过将一个由接受装置给出的秘密代码应用于其上而可以被访问的数据处理装置的方法,其特征在于其中包含如下步骤—首先,在处理装置中实现代码变换函数,然后根据变换函数把隐秘代码变换为变换隐秘代码,并且在处理装置内存储变换隐秘代码;以及
—在每次使用处理装置时,在处理装置内执行如下操作根据变换函数把展现代码变换为变换展现代码,并且在处理装置内比较变换隐秘代码以及变换展现代码。
因此,在例如智能卡等处理装置的使用期间,其中不存储隐秘代码,并且因此在展现秘密代码的任何出现期间,在卡内都不会进行处理隐秘代码。
如随后的细节可以看到,变换函数可以是不可逆转的,例如散列,或展现代码每次出现时,与卡生成时的固定随机数相关或者取决于第二随机数变量,或根据展现代码以前出现的次数进行迭代地应用,或预定的代码部分置换,或者同态函数。其中这些变换函数特性中的特定部分可以相互组合。
通过参考相应的附图,阅读本发明的多个优选实施例的随后描述,可以更加明显地得到本发明的其它特征和好处,附图中包括—

图1是给出用于在智能卡环境中,实施本发明的访问控制方法的系统的概要框图;以及—图2是根据本发明的多个实施例,说明访问控制算法的主要步骤。
根据图1中说明的实施例,电子数据处理装置由智能卡(芯片卡)CA构成,其中的“芯片”中包括微控制器。概要来讲,微控制器中包括中央处理单元CPU,该单元由如下部件构成微处理器PR;包含卡操作系统OS并且特别包含特定通信和认证应用算法在内的ROM型存储器MO;可编程并且可擦除型非易变存储器MNV(例如EEPROM存储器),其中包括与持卡人和卡提供商特别相关的数据;以及用于特别接收来自针对卡接受终端TE的特定数据的RAM型存储器MA。所有元素PR、MO、MNV和MA都通过内部总线BU相互连接。
例如银行终端或电话终端等的接受终端TE配备有键盘CL,使得可以键入提交给卡的秘密代码CP,也可以被称作提交代码。在终端TE的读卡器LE内部,存在卡CA被插入的部分,其包含微控制器,并且当插入卡是触点型卡时,还要典型地承载读卡器LE与卡CA内部的总线BU之间的电子链路LI的八个电子触点。
现在参考图2,针对图1所示智能卡CA的优选实施例的访问控制方法中基本上包含七个步骤E1到E7。
在卡提供商处,当卡制造时以及当随后获得卡CA时,例如订购卡功能所能访问的业务时,首先执行第一步骤E1到E3。
当卡制造时,在卡的存储器MO内实施预定的秘密代码变换函数FT,用于随后把卡内的展现秘密代码CP变换为变换展现代码CPT,这将在随后给出。由卡制造商把实施变换函数FT的卡CA提供给提供商。特别根据卡制造商的数据,卡提供商为卡CA分配最好是经过加密的例如具有四个数字的隐秘秘密代码CS,在步骤E1对所述CS进行解密。
卡的处理器PR立即根据预定的变换函数FT,把隐秘秘密代码CS变换为变换隐秘代码CST=FT(CS),在剩余的说明中将要详细描述多个实例。在步骤E3,变换隐秘代码CST将被写入卡CA的非易变存储器MNV内。这样,隐秘代码CS不被以明文保存在卡中。
因此,在为卡提供任意展现代码CP之前,就要执行从隐秘秘密代码到变换隐秘代码CST的变换,因此在非易变存储器MNV中存储变换隐秘代码CST,而不是隐秘代码,而现有技术的智能卡中,该隐秘秘密代码固定被包含在非易变存储器中。
在卡CA被插入接受终端TE的读卡器LE中,并且因此由电子链路LI和内部总线BU连接到卡CA微控制器之后,执行步骤E4到E7。
每次使用卡时,为了在卡CA中校验展现代码,需要在步骤E4内,在终端TE的键盘CL上键入展现代码CP,该代码通常必须与隐秘代码相同。或者输入展现代码的数字(例如四个数字),或者将其作为整体,终端TE通过链路LI与总线BU,向卡CA发送展现代码CP,使得在步骤E5内,可以将其写入RAM存储器MA。
在随后的步骤E6内,处理器PR根据卡CA内实施的变换函数FT,把记录在存储器MA内的展现代码CP变换为变换展现代码CPT。
最终在步骤E7,处理器PR从存储器MNV中读取变换隐秘代码CST,并且将其与刚刚确定的变换展现代码CPT相比。如果比较代码CST和CPT相同,则能够访问卡CA的功能,例如访问例如付费业务或电话业务等业务。否则,当比较代码CST和CPT不同时,可以尝试键入有限次的其它展现代码。
根据第一实施例,代码变换函数FT是散列H。例如,秘密代码CS和CP的四个数字中每个数字的四比特码字(或更通用的是每个字符的字节)通过散列被变换为多个字节(典型地为几十个字节),而且变换代码CST和CPT中包含四组这样大小为几十个字节的组。
而且,散列函数H没有逆函数,也就是不可逆转的。这种函数也被称作“单向函数”,它相对易于计算,但是很难进行逆操作。换句话说,不存在函数H-1,或者很难找到函数H-1,使得CF=H-1[H(CF)],其中CF表示任意秘密代码。
因此散列函数的单向特性可以防止对存储在卡CA内的变换代码CST=H(CS)进行解密而发现原始的隐秘代码CS。
散列还可能特别避免逐字符地,即逐字节查找秘密代码。一个散列字符的知识不能推导出隐秘代码的其它字符。
根据第二实施例,代码变换功能FT被用于秘密代码CS、CP以及随机数NA。变换函数可以例如是逻辑函数,例如异或函数(XOR)。
把各个秘密代码CS、CP和随机数NA应用于变换函数FT,可以得到变换代码CST、CPT。在生成卡CA时,在步骤E1内分配并且写入隐秘代码CS时,可以通过与处理器PR相关的随机生成器,一次性地生成随机数NA。在步骤E2,处理器PR把隐秘代码CS变换为变换隐秘代码CST=FT(CS,NA),使得在存储器MNV内可以存储该CST和随机数NA。
例如,变换函数FT可以是秘密代码CS、CP和随机数NA的组合。随机数NA可以是隐秘代码CS的多样化元素。
在步骤E6,处理器PR不仅从存储器MA内读取展现代码CP,而且还从存储器MNV内读取随机数NA,使得可以生成变换展现代码CPT=FT(CP,NA)。
根据该第二实施例,与相同隐秘秘密代码相关的智能卡可以与不同的随机数相关。两个卡具有先验不同的两个随机数,处理这些随机数的结果不能被用于提取卡的特征。这是因为智能卡的单一功率分析不能以明文表示隐秘代码,而只能表示根据攻击者公认已知的变换进行变换的隐秘代码。由于攻击者不能得知多样化元素NA,因此从变换隐秘代码CST中不能得到隐秘代码CS的信息。
优选地,对应于每个隐秘代码CS,可以存在各自的随机数NA。因此有利的是,当与卡相关的隐秘代码被修改时,随机数NA也被修改。例如,如果隐秘代码的两个数字被颠倒,则对应于这两个隐秘代码的两个随机数也是不同的。这种变化使得可能避免通过对与第一卡相同的秘密代码相关的另一卡内的随机数进行处理,去识别第一卡内的随机数。
根据第三实施例,在开始时生成随机数NA,而且每次对展现代码CP进行校验时,在展现代码CP的变换之前,第二随机数NA’由卡CA内的处理器PR相关的随机生成器产生。如图2所示,由步骤E6a和E7a来代替步骤E6和E7。一方面,把变换函数用于以前存储的变换隐秘代码CST,并且把变换函数应用于第二随机数NA’,使得可以确定第二变换隐秘代码CST’=FT(CST,NA’)。另一方面,变换函数第一次被用于接收到的展现代码CP以及以前生成的第一随机数NA,使得可以产生一个过渡变换展现代码CPT’=FT(CP,NA),并且第二次把变换函数应用于过渡变换展现代码CPT和第二随机数NA’,使得可以生成变换展现代码CPT’=FT(FT(CP,NA),NA’)=FT(CPT,NA’)。则在步骤E7a比较CST’和CPT’。
本发明方法的第三实施例能够确保在智能卡内,绝对不存在相同的变换秘密代码CST’值,而且因此在智能卡CA内,绝对不会以相同的方式执行展现秘密代码CP的校验。
例如,变换函数FT可以是简单的数学操作符号,例如加法,即CST’=CST+NA’,其中CST=CS+NA,而且NA存储在MNV中,而且CPT=(CP+NA)+NA’。
通过比较变换隐秘代码CST=FT(CS)和变换展现代码CPT=FT(CP),对展现代码CP进行第一次校验之后,接近于上述最后一种变化的第四实施例中包括存储变换隐秘代码CST,并且在每次展现代码出现时,把代码变换函数FT应用于以前存储的变换隐秘密码。因此对第二次出现,处理器PR比较被存储的变换代码CST2=FT(CST)以及CPT2=FT(CPT),然后在第二次肯定的校验之后,当第三次出现时,比较所存储的变换代码CST3=FT(CST2)以及CPT3=FT(CPT2)=FT(FT(CPT))=FT(FT(FT(CP)))等等,在每次展现代码出现时,存储经过变换的隐秘代码CSTi,并且与由以前应用所得到的变换展现代码CPTi=FTi(CP)比较。在每次校验之后,存储在存储器MNV内的变换隐秘代码不同于前一次校验中所存储的取值。
在第四实施例中,如图2所示,从第二次出现开始,步骤E6b和E7b去代替步骤E6和E7,当卡CA内第i次出现代码CP时,处理器PR把函数FTi次应用到展现代码CP,这可能会花费比较长的时间;例如函数FT可以是模质数P的函数。
为了减小函数FTi的计算时间,函数FT可以是指数函数模预定整数P。因此,当每次出现展现代码时,在处理器PR内,把变换函数先对于展现代码CP的先前应用可以被如下操作替换,即把变换函数用于最后一次展现代码CPTi以及展现代码CP,使得可以生成变换展现代码CPTi=FT(CPTi-1,CP)=FT[(CPT)i-1,CP]模P,而不是把函数FTi次应用于展现代码CP。然后在比较(步骤E7b)结束时,经过比较的变换代码CSTi和CPTi相同,后者被存储在存储器MNV内,替换先前存储的CSTi-1和CSPi-1。
根据另一个实例,代码变换函数FT可以是简单的算数函数,例如模P的加法,CPTi=(CP+CPTi-1)模P。
在一种变化中,可以不存储变换展现代码CPTi,变换函数应用于展现代码CP可以由下列操作来替换,即为了产生变换展现代码CPTi,变换函数被等效用于第i次变换函数的迭代FTi。因此,这种变化考虑直接根据序号i和展现代码的函数FTi。例如,函数FT是随机数NA的加法,即CSTi=CSTi-1+NA以及CPTi=CP+i.NA在两次变换结束之后,迭代序号i以及由以前应用得到的变换展现代码CPTi被存储在存储器MNV内,并且比较变换展现代码CPTi以及所存储的变换隐秘代码CSTi。
由于每次出现代码CP时都生成随机数,因此确定变换代码CPTi和CSTi的方式不同于以前出现时确定变换代码CPTi-1和CSTi-1的方式,从而不可能从取决于展现代码出现次数的以前变换代码中推导得到变换代码。因此每次出现展现代码时,存储的变换代码不同于以前出现时所存储的变换代码。
根据第五实施例,每个代码被认为分割成多个部分,例如四个字节。方法开始时,通过应用于其上一个代码变换函数FT,对隐秘代码CS进行变换,使得可以改变这些字节的连续顺序,例如通过如下的预定置换,得到变换隐秘代码CST=FT[CS(OS1,OS2,OS3,OS4)]=(OS2,OS4,OS1,OS3)
当第一次出现展现代码CP时,通过改变其字节OP1到OP4的顺序,对代码CP进行相同的置换CPT=FT[CP(OP1,OP2,OP3,OP4)]=(OP2,OP4,OP1,OP3)在步骤E7进行第一次比较期间,比较第二字节OS2和OP2,然后比较第四字节OS4和OP4,比较第一字节OS1和OP1,并且最后比较第三字节OS3和OP3。如果四个字节中有一个比较结果为否,则拒绝对卡的业务进行访问。
在卡第一次使用后,当对展现代码进行第二次校验时,变换函数FT再次修改变换字节的顺序,以第四字节OS4开始。因此在该第二次出现时,变换隐秘代码变为如下形式CST=FT[CST(OS2,OS4,OS1,OS3)]=(OS4,OS3,OS2,OS1)展现代码然后经过两种置换,使得可以获得如下变换展现代码CPT=FT[FT[CP(OP1,OP2,OP3,OP4)]]=(OP4,OP3,OP2,OP1)因此,当每次出现展现代码CP时,对最后一次出现而得到的变换隐秘代码CST进行置换,而且也对展现代码CP进行置换,但是次数等于展现代码以前的置换/出现的次数。成对比较经过置换的隐秘和展现代码CST的相应部分,并且当比较的代码CST和CPT相同时,经过置换的隐秘代码CST被存储在卡CA内。
在展现代码的连续两次校验中,决不以相同的顺序处理隐秘代码CS的字节OS1到OS4。
为了增加安全性,在步骤E2隐秘代码CS应用于其上以及在步骤E6a CST应用于其上,或者根据前一实施例,在步骤E6b任意其它变换隐秘代码CSTi-1应用于其上的变换函数,是函数FT的同态函数,此后表示为FT’,在步骤E6或步骤E6a展现代码CP应用于其上,或者在步骤E6b中CPTi-1应用于其上。
每个卡提供商能够选择其自己的变换函数FT,其是预定函数FT’的同态函数,或者一对函数[FT,FT’],用于保护其不受攻击。
根据第一实例,函数FT和FT’是秘密代码和随机数NA之和的平方。在步骤E2或E62,当卡被在业务中使用时,或者与卡相关的隐秘密码被修改时,隐秘代码CS经过如下变换FTCST=FT(CS,NA)=CS2+2CS.NA+NA2也就是说,通过随后的连续计算,可以得到变换的隐秘代码CST计算CS的平方,计算2倍的CS.NA,计算NA的平方,然后把上述三个乘积相加。
应用于展现代码CP的函数FT’也是这一代码与随机数NA之和的平方。然而,变换展现代码CPT的计算过程遵循不同于通过变换FT隐秘代码的计算过程。因此,根据下式对展现代码CP进行计算CPT=FT’(CP,NA)=(CP+NA)2从计算CP+NA之和开始,然后该和与自己相乘,获得展现代码CPT。
这样,在步骤E6计算展现代码CPT的过程不同于在步骤E2计算隐秘代码CST的过程,因此对应于这两种变换的小波是不同的。
根据第二实例,用于隐秘代码CS的函数FT可以例如是CST=NBCS*NBNA,也就是说,通过计算数值NB与自己相乘CS次的乘积,以及NB与自己相乘NA次的乘积,然后把上述两个乘积相乘。根据公式CPT=FT’(CP,NA)=NBCP+NA,计算变换展现代码CPT,也就是说,计算NB与自己相乘CP+NA次的乘积。NB表示任意数值,它与隐秘代码CS和随机数NA一起,被发送到卡CA,使得在步骤E3内可以存储在存储器MNV内。
在上述描述中,应该可以理解到智能卡覆盖所有公认已知类型的智能卡,也被称作微控制器卡,例如带有触点的卡或通过非限制性实例下述给出的非接触卡信用卡(visa卡)、付费卡、电话卡、SIM卡、“充值(add-on)”卡、购物中心卡、游戏卡等等。更加一般而言,本发明不仅涉及到智能卡,而且还涉及到其它等效由电子数据处理装置指定的便携式电子设备,例如电子助理或资源组织器、电子钱包、代币、口袋计算器等。
电子数据处理装置的接受终端可以例如是计算机类型的终端、个人计算机(特别是便携式计算机)、银行终端、电子售货点终端、无线电话终端、用于控制访问房屋或保险库的设备,等等。接受装置可以远离数据处理装置,可以通过任意数据传输装置进行连接。
从本发明的意义来讲,在特定上下文环境中,秘密代码也被称作密码或隐秘代码,或其它PIN(个人标识码)或CHV(持卡人校验)或特别用于无线电话终端SIM卡的PTI(个人通信标识符)。
接收到的秘密代码一般是字母代码。它可以通过公认已知的代码输入装置(而不是按键键盘),例如通过语音和语音识别,或者通过生物签名(例如至少是指纹)的识别,被应用于数据处理装置,智能卡或便携式电子物体。
权利要求
1.用于访问一种数据处理装置(CA)的方法,该数据处理装置与隐秘秘密代码(CS)相关,并且通过将一个由接受装置(TE)给出的秘密代码(CP)应用于其上而可以访问该数据处理装置,所述方法的特征在于其中包含如下步骤—首先,在处理装置(CA)中实现(E1)代码变换函数(FT),然后根据变换函数(FT)把隐秘代码(CS)变换(E2)为变换隐秘代码(CST),并且在处理装置内存储(E3)变换隐秘代码(CST);以及—在每次使用处理装置(CA)时,在处理装置内执行如下操作根据变换函数把展现代码(CP)变换(E6)为变换展现代码(CPT),并且在处理装置内比较(E7)变换隐秘代码与变换展现代码。
2.根据权利要求1的方法,其中变换函数是不可逆转的。
3.根据权利要求1或2的方法,其中变换函数是散列。
4.根据权利要求1到3中任意一个的方法,其中每个变换代码(CST,CPT)都是通过把相应的秘密代码(CS,CP)和随机数(NA)应用于变换函数(FT)而得到的,随机数(NA)以及变换隐秘代码(CST)都被预存储在处理装置(CA)当中。
5.根据权利要求4的方法,其中与相同隐秘秘密代码(CS)相关的两个数据处理装置(CA)分别与不同的随机数(NA)相关。
6.根据权利要求4或5的方法,其中当与处理装置(CA)相关的隐秘代码(CS)被修改时,随机数(NA)也要被修改。
7.根据权利要求1到3中任意一个的方法,其中通过把隐秘代码(CS)和第一随机数(NA)应用于变换函数(FT)而得到以前存储的变换隐秘代码(CST),在每个展现代码变换之前,在处理装置(CA)内生成(E6a)第二随机数(NA’),然后通过把所存储的变换隐秘代码(CST)和第二随机数(NA’)应用于变换函数(FT),则可以确定第二变换隐秘代码(CST’),而且通过把展现代码(CP)和第一随机数(NA)应用于变换函数(FT),使得可以生成过渡变换展现代码(CPT),并且把过渡变换展现代码(CPT)和第二随机数应用于变换函数(FT),从而可以确定变换展现代码(CPT’),比较第二变换隐秘代码(CST’)与变换展现代码(CPT’)。
8.根据权利要求1到6中任意一个的方法,其中在每次出现展现代码时,执行如下步骤—把变换函数(FT)用于(E6b)以前存储的变换隐秘代码(CSTi-1);—把变换函数(FT)用于(E6b)展现代码(CP),其应用次数等同于展现代码以前出现的次数;—比较变换隐秘代码(CSTi)以及由以前应用得到的变换展现代码(CPTi);以及—在处理装置(CA)中存储变换隐秘代码(CSTi)。
9.根据权利要求8的方法,其中把变换函数应用于展现代码(CP)可以被如下操作替换应用等效于变换函数(FT)第i次迭代的变换函数,使得可以生成变换展现代码(CPTi),然后与变换隐秘代码(CSTi)比较(E7b),而且在存储装置(CA)中存储迭代次数i以及由以前应用得到的变换隐秘代码(CPTi)。
10.根据权利要求1到3中任意一个的方法,其中变换函数(FT)中包括把每个代码(CS,CP)分割为若干部分,并且对代码的各个部分实施预定的置换,并且在此基础上,当每次出现展现代码(CP)时,把置换用于由最后出现得到的变换隐秘代码(CST)中,置换被用于展现代码的次数等于展现代码以前置换的次数,被置换隐秘和展现代码(CST,CPT)的相应部分成对比较,而且在处理装置(CA)内存储经过置换的隐秘代码(CST)。
11.根据权利要求1到10中任意一个的方法,其中隐秘代码(CS)应用于其上的变换函数(FT)是展现代码(CP)应用于其上的变换函数(FT’)的同态函数。
全文摘要
本发明涉及通过应用于展现代码,以禁止在例如智能卡(CA)等数据处理装置内实施隐秘代码处理为目的的方法。用于访问卡的功能的方法中包括在处理装置(CP)内实现(E1)码变换函数(FT)之前,在卡内把隐秘代码(CS)变换(E2)为变换隐秘代码(CST)。每次使用卡时,都要提供根据所实现的变换函数,把展现代码(CP)变换为变换展现代码(CPT),并且在卡内比较(E7)变换隐秘代码和变换展现代码。
文档编号G07F7/10GK1437739SQ0181143
公开日2003年8月20日 申请日期2001年6月20日 优先权日2000年6月20日
发明者C·比丹, P·吉拉尔, P·古特曼, D·纳卡希, L·鲁索 申请人:格姆普拉斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1