利用八位数据传输操作的集成电路卡芯片及其验证方法

文档序号:6612567阅读:298来源:国知局
专利名称:利用八位数据传输操作的集成电路卡芯片及其验证方法
技术领域
本发明涉及一种集成电路(IC)卡芯片及一种集成电路卡芯片的验证方法。尤其是,本发明涉及使用8位(一个字节)数据传输操作的集成电路卡芯片及使用8位数据传输操作对集成电路卡芯片进行验证的方法。
目前,为防止商品假冒,已采用集成电路卡芯片作为商品的防伪标记。现有的方法利用64位的数据传输操作来实现对商品上的防伪芯片的验证。这种传统验证方法的具体过程如下首先,将读写设备(下称“识别器”)与贴附在商品上的防伪芯片接触并上电,然后开始进行验证。
接着,识别器向芯片输入含有第一组64位密钥KN1和随机数RAND11的64位数据(KN1+RAND11)。芯片在接收到此输入数据后把它与芯片内原存的64位密钥KN1进行逐位比较、处理,得到随机数RAND11;接着芯片向识别器输出含有随机数RAND11和芯片内原存的随机数RAND2的64位数据(RAND2+RAND11)。识别器在接收到该数据后对其进行加密算法处理,产生64位系统密码SP。
接着,识别器再次向芯片输入含有第二组64位密钥KN2和随机数RAND12的64位数据(KN2+RAND12)。类似地,芯片在接收到此输入数据后把它与芯片内原存的64位密钥KN2进行逐位比较、处理,得到随机数RAND12;接着芯片向识别器输出含有随机数RAND12和芯片内原存的制造商代码CM的64位数据(CM+RAND12)。识别器接收到该数据后对其进行加密算法处理,产生64位的新的制造商代码CM2。
随后,识别器将由以上操作中产生的64位系统密码SP和随机数RAND11及新的随机数RAND13组成的64位数据(SP+RAND11+RAND13)再次送入芯片。芯片通过把该输入数据与随机数RAND11及芯片内原存的64位系统密码SP进行比较、处理,得到随机数RAND13。然后,芯片向识别器输出含有随机数RAND13和芯片内原存的64位商品代码MN的64位数据(RAND13+MN),供识别器鉴别认可。
最后,识别器将以上操作中产生的64位的新制造商代码CM2写入芯片,覆盖芯片中原来的制造商代码CM。
至此,操作结束。
在如上所述的验证过程中,64位数据传输操作一次性传输64位数据。传统上认为验证过程中所使用的密钥的位数越大,则其安全系数2N(N为所使用数据的位数)越高。然而,要完成一次性传输64位数据的数据传输操作,需要在芯片中设计64位的传输线、64位的寄存器和64位的锁存器。因此,所需的一次性传输数据量大、一次性传输时间长、芯片面积大且成本高。
如上所述,已有技术所存在的缺陷是为了保证验证的安全性,所使用的密钥的位数(通常为64位)必须较大,然而,如果一次性数据传输量过大,则数据更易受到外来干扰的影响,增大了数据传输的差错率,从而造成不能进行准确的验证。并且,所传输数据的位数越长,则所需的传输线和寄存器的面积也相应增加,从而难以缩小芯片面积和降低成本。
因此,本发明的一个目的在于提供一种使用8位数据传输操作的集成电路卡芯片及一种使用8位数据传输操作对集成电路卡芯片进行验证的方法,其中把64位的数据分成8次传输,每次按顺序传输所述数据的一个字节。
依据本发明的一个方面,提供了一种使用8位数据传输操作的集成电路卡芯片,所述芯片包括逻辑控制电路、指令译码电路、时序控制电路、地址寄存器、数据寄存器、地址解码器,所述芯片还包括地址比较电路,用于对来自芯片的逻辑控制电路的前一数据传输操作的地址和将要进行的数据传输操作的地址进行比较,以在地址不相同时,控制芯片的输入/输出端口执行将要进行的数据传输操作,而在地址相同时,禁止后续操作;以及顺序控制电路,用于根据来自芯片的控制电路中与各数据对应的使能信号和来自芯片的地址解码器中与各数据对应的地址,控制芯片的输入/输出端口传输数据的顺序。
依据本发明的另一个方面,提供了一种使用8位数据传输操作对集成电路卡芯片进行验证操作的方法,该方法包括(a)读写设备与集成电路卡芯片接触,上电;(b)读写设备将含有密钥(KN)和随机数(RAND)的8×N位数据(KN+RAND)的第一字节输入芯片,芯片在接收后把所述第一字节与芯片内原存的密钥(KN)的第一字节进行比较处理,得到所述随机数(RAND)的第一字节,然后芯片向读写设备输出含有所述随机数(RAND)和芯片内原存的密码(MN)的8×N位数据(RAND+MN)的第一字节供读写装置认可;以及(c)重复步骤(b),直到芯片向读写装置输出所述数据(MN+RAND)的第N字节供读写装置认可,在这里N为正整数。
从以下对本发明较佳实施例的描述并结合附图,将使本发明的目的、特征、优点变得更加明显起来,其中

图1是示出已有技术和本发明的数据传输操作中的命令格式的示意图;图2是示出依据本发明一个实施例使用8位数据传输操作对本发明的芯片执行“写”操作的流程图;图3是示出依据本发明一个实施例使用8位数据传输操作对本发明的芯片执行结束指令(END)操作的流程图;图4是示出依据本发明一个实施例使用8位数据传输操作对本发明的芯片执行“读”(验证)操作的流程图;图5是示出依据本发明一个较佳实施例使用8位数据传输操作对本发明的芯片执行“读”(验证)操作的流程图;图6是示出依据本发明一个实施例的集成电路卡芯片中的地址比较电路的示意图;图7是示出依据本发明一个实施例的集成电路卡芯片中的顺序控制电路的操作的流程图;图8是示出依据本发明一个实施例的集成电路卡芯片中的地址比较电路的电路图;图9是示出依据本发明一个实施例的集成电路卡芯片中的顺序控制电路的电路图;以及图10是示出依据本发明一个实施例的集成电路卡芯片中的顺序控制电路的方框图。
以下参考这些附图来详细地描述依据本发明的较佳实施例。
图1是示出已有技术和本发明的数据传输操作中的命令格式的示意图。如图1所示,在本发明的8位数据传输操作中,已有技术的操作命令位保持不变,而将64位的数据位分为8次传输,每次传输8位数据位。因此,避免了因数据位过长而造成的传输差错率,提高了验证过程的可靠性。由于采用8位数据传输操作,所以在芯片设计中无需采用64位传输线、64位寄存器和64位锁存器,在减小芯片面积的同时降低了成本。
如上所述,虽然在图1示出所传输的数据总共为64位,但应理解,本发明不限于传输64位的数据,它可适用于传输8×N位的数据,即可把8×N位的数据分为N次传输,每次传输一个字节(8位),这里N为8位数据传输的循环次数,N等于任意正整数。在以下描述中,为了描述得更清楚,仅说明传输64位数据的情况,但本领域内的技术人员完全可以将本发明用于传输其位数为8的整数倍的数据。
以下参考图2来描述使用8位数据传输对依据本发明的集成电路卡芯片所执行的“写”操作。
如图2所示,首先,在步骤101处,识别器与芯片接触、上电。在识别器对芯片进行“写”操作前,先执行个人密码SCP的8字节验证过程(如步骤102-104所示)。首先,如步骤102所示,操作人员通过识别器把64位个人密码SCP的第一个字节输入芯片。然后,芯片把该字节与芯片中原存的个人密码SCP的第一个字节相比较。如果这两个字节相同,则第一字节的验证通过。类似地,再对密码SCP的其余字节进行验证,总共循环进行8次。在步骤103,如果八个字节中任一个字节的验证不通过,则说明该操作人员未经许可,因而不能对芯片进行任何操作(如步骤104所示),需要重新输入新的密码。反之,如果这八个字节的验证都通过,则允许对芯片进行随后的步骤,例如图2所示的写操作(步骤105)。
然后,识别器将有关的64位数据写入芯片,每一数据的写操作都分8次进行,每次仅写入8位数据,即需要循环8次才能完成每个64位数据的写操作(如步骤105所示)。这些64位的数据在本领域内是公知的,诸如个人密码SCP、芯片代码SN、密钥(KN1,KN2)、随机数RAND2、系统密码SP、制造商代码CM和商品代码MN等,但不限于此。在这一操作中,不允许读出芯片内的任何信息。此外,写入芯片的数据的位数不限于64位,而可以是8的整数倍。
在以上的写操作前设置密码SCP验证过程的作用是为了确认对芯片进行写操作的操作人员的身份,这样做可以防止任何未经许可的人对芯片进行写操作。当然,本领域内的技术人员可以理解,这一过程不是必需的,即可直接对芯片进行写操作。
以下参考图3来描述使用8位数据传输操作对依据本发明的集成电路卡芯片所执行的结束指令(END)的操作。
与图3所示的“写”操作相类似,在识别器与芯片接触、上电以后,图3所示的结束指令操作同样先进行8字节的个人密码SCP验证过程(步骤202-204)。每次操作命令验证一个字节,循环进行8次。如果验证不通过,则不能对芯片进行任何操作。如果验证通过,则识别器就可向芯片输入“END”(结束)指令(步骤205)。当芯片接收此结束指令以后,识别器就不能对芯片进行任何写操作,而只能对芯片进行读操作。至此,结束指令操作完成。同样,可以理解,这一个人密码验证过程也不是必需的。
以下参考图4来描述使用8位数据传输操作对依据本发明的集成电路卡芯片所执行的“读”操作,即验证操作。
首先,在识别器与芯片接触、上电以后,先进行与图2和3中所示相同的8字节的个人密码SCP验证(步骤302-304)。每个操作命令验证一个字节,循环进行8次。验证不通过的话同样也不能对芯片进行任何操作(如步骤304)。应理解,这一验证过程不是必需的。
如果验证通过,则如步骤305所示,识别器首先读出64位的芯片代码SN供识别器鉴别。同样,此芯片代码SN也是分8次读出的,每次读出芯片代码SN的一个字节。读出芯片代码SN的目的是为了对芯片进行初步确认,无需在此步骤中进行任何判断。应理解,这一初步确认过程增加了操作的可靠性,但这不是必需的。
在识别器读出芯片代码SN后,识别器与芯片做以下操作(步骤306)识别器向芯片输入含有密钥KN和随机数RAND的64位数据(KN+RAND)的第一个字节,芯片在接收后把该字节与芯片内原存的密钥KN的第一个字节进行比较处理,得到随机数RAND的第一个字节;然后,芯片向识别器输出含有输入随机数RAND和芯片内原存的64位商品代码MN的64位数据(MN+RAND)的第一个字节供识别器认可。接着,识别器向芯片输入含有密钥KN和随机数RAND的64位数据(KN+RAND)的第二个字节,并且接收芯片输出的含有输入随机数RAND和64位商品代码MN的64位数据(MN+RAND)的第二个字节供识别器认可。如此循环8次,就把原来的64位数据分为8次,每次输入输出一个字节(8位),从而完成64位数据的验证。至此“读”操作结束。可以理解,此读操作中所传输的数据的位数不限于64位。
如上所述,芯片内原先存储了密钥KN和商品代码MN,但本领域内的技术人员可以理解,芯片内原先可存储任何密钥和密码,例如,如写操作中所述的密钥KN1和KN2及随机数RAND2、系统密码SP和制造商代码CM等。
此外,例如步骤306还可如此变化,例如识别器向芯片输入含有密钥KN1和随机数RAND11的64位数据(KN+RAND11)的第一个字节,芯片在接收后把该字节与芯片内原存的密钥KN1的第一个字节进行比较处理,得到随机数RAND11的第一个字节,然后,芯片向识别器输出含有输入随机数RAND11和芯片内原存的64位密码PW1的64位数据(RAND11+PW1)的第一个字节,识别器接收后,经加密算法处理后产生系统密码SP的第一个字节。然后,识别器向芯片输入含有系统密码SP和随机数RAND11及新的随机数RAND13的64位数据(SP+RAND11+RAND13)的第一个字节,芯片接收后将该字节与芯片内原存的系统密码SP和先前得到的RAND11的第一个字节进行比较处理,得到RAND13的第一个字节。接着,芯片向识别器输出含有输入随机数RAND13和64位密码PW2的64位数据(RAND11+PW2)的第一字节,供识别器认可。接着,如上所述循环8次,直到读出PW2的第八个字节。这里,PW1和PW2可以是如上所述的随机数RAND2、商品代码MN和制造商代码CM中的任一个,但不限于此。此外,系统密码SP可以通过对由输入随机数与芯片内原存的任何密码构成的数据进行加密算法处理来得到。
以下参考图5来更详细地描述使用8位数据传输操作对依据本发明的集成电路卡芯片所执行的验证操作的一个较佳实施例。
首先,在识别器与芯片接触、上电以后,先进行与图2到图4中所示相同的8字节的个人密码SCP验证(步骤402-404)。每个操作命令验证一个字节,循环进行8次。验证不通过的话同样也不能对芯片进行任何操作(如步骤404)。应理解,这一验证过程不是必需的。
如果验证通过,则如步骤405所示,识别器首先读出64位的芯片代码SN供识别器鉴别。同样,此芯片代码SN也是分8次读出的,每次读出芯片代码SN的一个字节。读出芯片代码SN的目的是为了对芯片进行初步确认,无需在此步骤中进行任何判断。应理解,这一初步确认过程增加了操作的可靠性,但这不是必需的。
在识别器读出芯片代码SN后,识别器与芯片做以下操作如步骤406所示,识别器向芯片输入含有密钥KN2和随机数RAND12的64位数据(KN2+RAND12)的第一个字节,芯片在接收后把该字节与芯片内原存的密钥KN2的第一个字节进行比较处理,得到随机数RAND12的第一个字节;然后,芯片向识别器输出含有输入随机数RAND12和芯片内原存的64位随机数RAND2的64位数据(RAND12+RAND2)的第一个字节。接着,识别器向芯片输入含有密钥KN2和随机数RAND12的64位数据(KN2+RAND12)的第二个字节,并且接收芯片输出的含有输入随机数RAND12和随机数RAND2的64位数据(RAND12+RAND2)的第二个字节。
如此循环8次,直到输出64位数据(RAND2+RAND12)的所有字节。这样把原来的64位数据分为8次,每次输入输出一个字节(8位)。
接着,如步骤407所示,识别器向芯片输入含有密钥KN1和随机数RAND11的64位数据(KN1+RAND11)的第一个字节,芯片接收后将该字节与芯片内原存的密钥KN1的第一个字节进行比较处理,得到输入随机数RAND11的第一个字节;然后向识别器输出含有输入随机数RAND11和芯片内原存的制造商代码CM的64位数据(RAND11+CM)的第一个字节。识别器接收后,经加密算法处理后产生系统密码SP的第一个字节。
如步骤408所示,识别器向芯片输入含有系统密码SP和随机数RAND11及新的随机数RAND13的64位数据(SP+RAND11+RAND13)的第一个字节,芯片接收后将该数据与芯片内原存的系统密码SP和RAND11的第一个字节进行比较处理,得到随机数RAND13的第一个字节;紧接着,如步骤409到425所示,芯片再向识别器输出含有输入随机数RAND13和64位商品代码MNi的64位数据(RAND13+MNi)的第一个字节,供识别器认可,这里i=0,1,2...F(对应于16×8=128个字节的情况)。然而,可以理解,这里i的值不限于此,可以根据需要把它设定为等于0或任意正整数。
在上述三阶段操作(如步骤407-425)结束后,开始第二个字节的操作的三步循环,即识别器向芯片输入含有密钥KN1的数据(KN1+RAND11)的第二个字节,芯片输出数据(CM+RAND11)的第二个字节,输出数据(RAND13+MNi)的第二个字节。如此循环8次,就把原来的64位数据分为8次,每次输入输出一个字节(8位),从而完成64位数据的验证。至此“读”操作结束。
如上所述,先分别读出芯片内原存的随机数RAND2的八个字节,然后再依次分别得到制造商代码CM、随机数RAND13和商品代码MN0~MNF的八个字节。然而,本领域内的技术人员可以理解,还可以其它顺序来进行本发明的验证操作。例如,分别依次获得制造商代码CM、随机数RAND2、随机数RAND13和商品代码MN0~MNF的八个字节,但不限于此。但较佳的方法是连续执行含有相同操作数(例如,RAND11)的步骤,以减少来往于识别器与芯片之间的输入输出操作的数目,但这不是必需的。
此外,如上所述,先输入KN2加随机数而读出芯片中原存的随机数RAND2,然后再输入密钥KN1加随机数而读出芯片中原存的制造商代码CM,但不限于此。可根据需要来设定这些密钥,例如先输入KN1加随机数而读出RAND2,后输入KN2加随机数而读出CM等。
以下依据如图5所示的较佳实施例更详细地描述对芯片进行验证所使用的命令。
操作说明1 从识别器向芯片输入带密钥KN2的随机数,然后接收芯片产生的带有原存随机数RAND2和该随机数的数据。
命令输入“KN2R12”,输入(KN2+RAND12),即密钥KN2和随机数RAND12的8位异或信号的输入。
芯片操作首先选择芯片内的KN2,然后8位逐位做异或操作〖KN2+(KN2+RAND12)〗,芯片便得到输入随机数RAND12存入芯片。接着芯片把输入随机数RAND12与原存的随机数RAND2逐位异或后产生的数据(RAND12+RAND2)输出给识别器。
上述操作循环8次,每次输入输出一个字节(8位),同样能达到验证64位数据的目的。
操作说明2从识别器向芯片输入带密钥KN1和随机数的数据,并且接收芯片原存的制造商代码CM。然后再从识别器向芯片输入带系统密码SP和随机数RAND11及RAND13的数据,接收芯片产生的带有商品代码(MN0~MNF)和随机数的数据。
第一步命令输入“KN1R11”,输入(KN1+RAND11),即密钥KN1和随机数RAND11的8位异或信号的输入。
芯片操作首先选择芯片内密钥KN1,然后8位逐位做异或操作〖KN1+(KN1+RAND11)〗,芯片便得到输入随机数RAND11存入芯片。
接着芯片把输入随机数RAND11与原存的制造商代码CM逐位异或后产生新的数据(RAND11+CM)输出给识别器。识别器接收后,经过加密算法处理,产生系统密码SP的第一个字节。
第二步命令输入“SPR11R13”,输入(SP+RAND11+RAND13),即系统密码SP和随机数RAND11、随机数RAND13的8位异或信号的输入。
芯片操作首先选择芯片内原存的系统密码SP和随机数RAND11的第一个字节,然后8位逐位做异或操作〖SP+RAND11+(SP+RAND11+RAND13)〗后,芯片便得到输入随机数RAND13存入芯片。
第三步命令输入“R13MNi”,读出(RAND13+MNi),即随机数RAND13和商品代码(MNi)的8位异或信号的输出,这里i=0,1,2...F。
芯片操作首先芯片把输入随机数RAND13与芯片内原存的商品代码(MN0)的第一个字节逐位异或后输出给识别器鉴别;然后再把输入随机数RAND13与芯片内原存的商品代码(MN1)的第一个字节逐位异或后输出给识别器鉴别。依此类推,最后把输入随机数RAND13与芯片内原存的商品代码(MNF)的第一个字节逐位异或后输出给识别器鉴别。
上述第一到第三步操作循环8次,每次输入输出一个字节(8位),从第一个字节到第八个字节,同样也能达到验证64位数据的目的。
为了实现将64位的数据分成8次传输(每次传输8位)的操作,在依据本发明一个实施例的芯片中设计了地址比较电路和顺序控制电路。
如图6所示,其中示出依据本发明一个实施例的集成电路卡芯片中的地址比较电路的示意图。为了保证验证的安全性,要求在验证过程中不能重复对同一地址进行操作,因此在芯片中设置了地址比较电路。在该地址比较电路中包括用于比较将要进行的8位数据传输操作的地址与前一8位数据传输操作的地址是否相同的八个一位比较单元以及对地址比较电路的输出进行控制的输出控制器。
以下说明此地址比较电路的操作。如图6所示,当地址比较电路的工作条件即起始条件均满足时,地址比较电路在诸如控制信号和时钟信号等信号的作用下,对将要进行的8位数据传输操作的地址与前一8位数据传输操作的地址进行比较。如果这两组地址不相同,则地址比较电路的输出为0,芯片认为可以进行后续的操作。如果这两组地址相同,则地址比较电路的输出为1,即芯片禁止后续的操作。当然,本领域内的技术人员可以理解,可设定在地址比较电路的输出为1时芯片可进行后续的操作,而在其输出为0时禁止后续的操作。
依据本发明,将64位数据分成8次传输,每次传输一个字节,但是这样很容易出现8次传输后得到的64位数据与原先所传输的数据不同的情况。为了避免这个问题,本发明通过在芯片中加入地址比较电路,防止了对同一地址进行数据传输操作,从而避免了重复传输同一64位数据的同一字节或64位数据的八个字节前后颠倒的情况,保证了传输的准确性。
除了地址比较电路以外,在依据本发明的芯片中,还设置了顺序控制电路。以下参考图7并结合图5的流程图来描述依据本发明的顺序控制电路的操作。如图7所示,其中示出依据本发明一个实施例的集成电路卡芯片中的顺序控制电路的操作。顺序控制电路在工作时先将制造商代码使能信号CMEN、系统密码使能信号SPEN及商品代码使能信号MNEN预置为1,当开始工作后,随机数RAND2的地址打开,随机数RAND2的数据读取电路开始读数据RAND2,并将制造商代码使能信号CMEN置为0。读完随机数RAND2后,制造商代码CM的地址打开,制造商代码CM的数据读取电路开始读数据CM,并将系统密码SPEN置为0。读完制造商代码CM后,系统密码SP的地址打开,系统密码SP的数据读取电路开始读系统密码SP数据,并将商品代码MNEN置为0。读完系统密码SP后,商品代码MN0~MNF的地址打开,商品代码MN0~MNF的数据读取电路开始读商品代码(MN0~MNF)数据,并将输出置为0。
如上所述,顺序控制电路的设计是为了严格控制数据从RAND2→CM→SP→MN的读取过程的顺序,任何其它的读取方式都将使输出置为1,从而禁止任何后续的操作。当然,本领域内的技术人员可以理解,可设定在输出置为0时禁止后续操作。此外,以上就如图5所示的实施例来描述顺序控制电路的操作,但可以理解,顺序控制电路的操作依据芯片所要读取的数据而改变。例如,在如图4所示的实施例中,顺序控制电路在工作时先将商品代码使能信号MNEN预置为1,当开始工作后,随机数RAND2的地址打开,随机数RAND2的数据读取电路开始读数据RAND2,并将商品代码使能信号MNEN置为0。读完随机数RAND2后,商品代码MN0~MNF的地址打开,商品代码MN0~MNF的数据读取电路开始读商品代码(MN0~MNF)数据,并将输出置为0。作为另一个例子,可RAND2、CM、SP和MN可以其它顺序来读出,例如先读CM、再读RAND2等。
以下参考图8来更详细地描述地址比较电路的一个实施例的结构。如图8所示的地址比较电路包括八个一位地址比较器(0~7)及一输出控制器,每个地址比较器连有一对锁存器,每对锁存器分别用于锁存前后数据传输操作中每一位的地址(为了清楚,图8省略了比较器1~6及与其对应的锁存器)。
在同一64位数据的前一传输操作的时钟1和后一传输操作的时钟2的作用下,地址比较电路把来自芯片中逻辑控制电路的前一数据传输操作中每一位的地址和后一数据传输操作中每一位的地址分别输入每对锁存器。然后,每对锁存器把锁存的地址分别传送到与其相连的每个一位地址比较器进行比较。每个一位地址比较器把比较结果传送到输出控制器,从而输出控制器根据这些结果控制芯片的输入/输出端口,以在地址不相同时进行数据传输或在地址相同时终止后续操作。
以下参考图10并结合图5来描述顺序控制电路的一个实施例的结构。如图10所示,该顺序控制电路包括分别用于控制芯片中的随机数RAND2、制造商代码CM、系统密码SP和商品代码(MN0~MNF)的读取的四个触发器及其一控制顺序控制电路的输出的输出控制器。此顺序控制电路在接收到来自芯片中控制电路的复位信号及控制信号后,在各使能信号CMEN、SPEN及MNEN的控制下,根据来自地址解码器的RAND2地址、CM地址、SP地址和MN0~MNF地址控制芯片的输入/输出端口依次输入/输出RAND2、CM、SP和MN0~MNF。如图10所示的结构是就图5所示的操作过程而言的,然而,本领域内的技术人员应理解,该顺序控制电路可依据芯片中所需传输的数据而改变。例如,应用于图4所示验证操作的一个实施例的顺序控制电路可只包括用于控制芯片中的随机数RAND和商品代码MN的读取的两个触发器,而其它结构不变。或者,如果输入/输出RAND2、CM、SP和MN0~MNF的顺序有变化,则可相应地调整各对应触发器的位置来适应这种变化。
在图9所示的电路中,更详细地示出依据本发明一个实施例的顺序控制电路的电路图。从图9可看出,图10所示的触发器可由RS触发器来构成,且输出控制器可由一与非门来实现。但本领域内的技术人员也可以其它公知的电路来实现与9中所示触发器和输出控制器相同的功能。
如上所述,由于本发明以8位数据传输替代64位数据传输,所以本发明在原有的传输协议不变的框架下,通过增加逻辑控制电路来实现防伪芯片与读写接口设备之间的数据传输,而且所增加的逻辑控制电路的面积远小于64位数据传输线、寄存器和锁存器的面积。因而既保证了不影响商品验证的安全性,又可提高验证过程的可靠性,减小芯片面积,降低成本。
在采用本发明的8位数据传输操作后,一次数据传输由64位缩短为8位,因此提高了验证过程的可靠性。芯片的面积由原来的2.4mm2缩小为1.2mm2,减小了50%,因而降低了芯片生产的难度,提高了芯片生产的合格率。芯片成本降低了60%,增加了产品的市场竞争力。
此外,为了保证验证的安全性,要求在验证过程中不能重复对同一地址进行操作。因此芯片内设计了一组“地址比较电路”。
为了确保商品验证的可靠性,要求在验证过程中严格按照操作流程顺序进行,决不允许出现颠倒或者跳跃操作。因此芯片内设计了一组“顺序控制电路”。
以上就本发明的较佳实施例对本发明进行了描述,但应理解,本发明不限于以上所述的实施例,可对本发明进行各种修改而不背离本发明所要求的范围。
权利要求
1.一种使用8位数据传输操作对集成电路卡芯片进行验证操作的方法,其特征在于所述方法包括(a)读写设备与集成电路卡芯片接触,上电;(b)读写设备将含有密钥(KN)和随机数(RAND)的8×N位数据(KN+RAND)的第一字节输入芯片,芯片在接收后把所述第一字节与芯片内原存的密钥(KN)的第一字节进行比较处理,得到所述随机数(RAND)的第一字节,然后芯片向读写设备输出含有所述随机数(RAND)和芯片内原存的密码(MN)的8×N位数据(RAND+MN)的第一字节供读写装置认可;以及(c)重复步骤(b),直到芯片向读写装置输出所述数据(MN+RAND)的第N字节供读写装置认可,在这里N为正整数。
2.如权利要求1所述的方法,其特征在于所述步骤(b)还包括以下步骤在输入所述密钥(KN)前,读写装置进行8×N位个人密码(SCP)的验证过程,即把由读写装置输入的个人密码(SCP)的第一字节与芯片内原存的个人密码(SCP)的第一字节相比较,如果这两个字节相同,则验证通过,然后类似地对个人密码(SCP)的其余字节进行验证,总共循环N次,如果八个字节中任一个字节的验证不通过,则不允许对芯片进行任何操作;反之,则进行随后的步骤。
3.如权利要求1或2所述的方法,其特征在于所述步骤(b)还包括以下步骤(b1)读写装置向芯片输入含有密钥(KN2)和随机数(RAND12)的8×N位数据(KN2+RAND12)的第一字节,芯片在接收后将所述字节与芯片内原存的密钥(KN2)的第一个字节进行比较处理,得到所述随机数(RAND12)的第一字节,然后向读写装置输出含有所述随机数(RAND12)和芯片内原存的随机数(RAND2)的8×N位数据(RAND12+RAND2)的第一字节,读写装置向芯片输入所述数据(KN2+RAND12)的第二字节,并且接收芯片输出的所述数据(RAND12+RAND2)的第二字节,重复这一步骤,直到读写装置接收芯片输出的所述数据(RAND12+RAND2)的第N字节,供读写装置鉴别认可;(b2)读写装置向芯片输入含有密钥(KN1)和随机数(RAND11)的8×N位数据(KN1+RAND11)的第一字节,芯片在接收后将所述字节与芯片内原存的密钥(KN1)的第一个字节进行比较处理,得到所述随机数(RAND11)的第一字节,然后向读写装置输出含有所述随机数(RAND11)和芯片内原存的制造商代码(CM)的数据(RAND11+CM)的第一字节,读写装置接收后,经加密算法处理,产生系统密码SP的第一字节;(b3)读写装置向芯片输入含有所述步骤(b2)产生的系统密码(SP)和随机数(RAND11)及新的随机数(RAND13)的8×N位数据(SP+RAND11+RAND13)的第一字节,芯片接收后将所述字节与芯片内原存的系统密码SP和如所述步骤(b2)得到的输入随机数(RAND11)的第一个字节进行比较处理,得到所述随机数(RAND13)的第一字节;随后,芯片向读写装置输出含有所述随机数(RAND13)和芯片内原存的商品代码(MNi)的8×N位数据(RAND13+MNi)的第一字节,供读写装置鉴别认可,这里i为0或任意正整数;以及(b4)重复步骤(b1)到(b3),直到芯片向读写装置输出所述数据(RAND13+MNi)的第N字节,供读写装置鉴别认可。
4.如权利要求中1或2所述的方法,其特征在于在所述步骤(b)前还包括读写装置依次读出芯片内原存的8×N位芯片代码(SN)的N个字节的步骤。
5.如权利要求中3所述的方法,其特征在于在所述步骤(b)前还包括读写装置依次读出芯片内原存的8×N位芯片代码(SN)的N个字节的步骤。
6.一种利用权利要求1所述的方法来验证的集成电路卡芯片,所述芯片包括逻辑控制电路、指令译码电路、时序控制电路、地址寄存器、数据寄存器、地址解码器,其特征在于所述芯片还包括地址比较电路,用于对来自芯片的逻辑控制电路的前一数据传输操作的地址和将要进行的数据传输操作的地址进行比较,以在地址不相同时,控制芯片的输入/输出端口执行将要进行的数据传输操作,而在地址相同时,禁止后续操作;以及顺序控制电路,用于根据来自芯片的控制电路中与各数据对应的使能信号和来自芯片的地址解码器中与各数据对应的地址,控制芯片的输入/输出端口传输数据的顺序。
7.如权利要求6所述的集成电路卡芯片,其特征在于所述地址比较电路包括八个一位地址比较器及对它们的比较结果进行控制的一输出控制器,每个一位地址比较器连有一对锁存器,所述每对锁存器分别用于锁存所述前后数据传输操作中每一位的地址。
8.如权利要求6所述的集成电路卡芯片,其特征在于所述顺序控制电路包括多个触发器及对顺序控制电路的输出进行控制的一输出控制器,所述触发器用于根据来自芯片的控制电路中与各数据对应的使能信号和来自芯片的地址解码器中与各数据对应的地址,控制芯片的输入/输出端口传输数据的顺、序。
9.如以上权利要求6-8中任一项所述的集成电路卡芯片,其特征在于所述使能信号包括制造商代码使能信号、系统密码使能信号及商品代码使能信号。
全文摘要
本发明揭示一种用于集成电路卡芯片的验证方法,该方法利用8位数据传输操作,在所述集成电路卡芯片与读写设备之间传输64位的数据时,所述方法把所述64位的数据分成8次传输,每次按顺序传输所述数据的一个字节。本发明还提供一种利用8位数据传输操作来验证的集成电路卡芯片,在该芯片中设计了地址比较电路和顺序控制电路。
文档编号G06K19/073GK1316721SQ00115338
公开日2001年10月10日 申请日期2000年4月3日 优先权日2000年4月3日
发明者马犁 申请人:上海贝岭股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1